분류 전체보기
상속, 인터페이스, 트레이트 차이점과 어떨 때 사용하나.
상속, 인터페이스, 트레이트 차이점과 어떨 때 사용하나.
2017.06.30상속, 인터페이스, 트레이트의 차이상속과 나머지 두 관계의 가장 큰 차이점은, 인터페이스와 트레이트는 기능 단위라는 것이다.그래서 클래스 사이에 연관 관계가 없어도 기능 단위의 공통점을 가지도록 할 수 있다. abstract추상 클래스를 사용하려면 ``java extends``를 사용해야 하므로, 상속 계층에 연결된다.추상 클래스는 반드시 하나 이상의 추상 메소드를 포함해야 한다. 추상 메소드는 하위 클래스에서 반드시 재정의되어야 한다. interface와 달리 일반 메소드도 포함할 수 있다.상속 계층을 먹고 들어간다는 점, 메소드 재정의 강제는 interface로도 가능하다는 점 때문에 신중하게 써야한다. interface인터페이스에 어떤 메서드가 있는지 알고 있다면, 각 클래스에서 인터페이스를 어떻게..
인증(Authentication)과 인가(Authorization)
인증(Authentication)과 인가(Authorization)
2017.06.28인증 / 인가 인증 / 인가 정보 유지는 세션과 SID를 기반으로 한다. 인증 ( Authentication ) 사용자의 신원을 증명하는 것. e.g., 로그인한 사용자는 인증된 사용자. 인가 ( Authorization ) 특정 리소스에 접근할 수 있는 권한을 부여하는 것. 접근 제어(access control)라고도 볼 수 있다. Identification / Verification / Authentication / Certification https://www.jumio.com/identification-authentication-verification-compared/ certification은 자격(자격증)을 증명한다는 의미임. 신원 증명의 뜻은 아니다. authentication은 인증. 너가..
Brute Force / Replay Attack
Brute Force / Replay Attack
2017.06.28Brute Force최대 로그인 실패 횟수를 기록해 계정을 임시로 정지시키는 방법이 유용하다.로그인에 실패한 사용자가 몇 초 이내에 다시 로그인을 시도하면 무조건 실패로 처리하거나, 성공이든 실패든 몇 초 이후에 다시 시도하라는 메세지를 주는 방법(throttling)도 고려해볼 수 있으나 요즘 잘 쓰이지는 않는 것 같다.보통 패스워드가 틀렸을 때 바로 재입력하기 때문에 시간 제한이 있다면 불편할 듯. Replay Attack정상적인 사용자가 액세스 권한이나 특별한 권한을 얻기 위해 전송한 데이터를 공격자가 캡쳐해두었다가 재전송하는 공격이다. 최선의 방법은 캡쳐를 당하지 않는 것이지만, 그게 항상 가능하지는 않다.이를 막기 위해서는 다음과 같은 경우를 피해야 한다.접근이 제한된 리소스에 대한 엑세스를 유..
[Trend Micro CTF 2017] IoT/OSINT, MISC
[Trend Micro CTF 2017] IoT/OSINT, MISC
2017.06.27이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[Trend Micro CTF 2017] Reversing
[Trend Micro CTF 2017] Reversing
2017.06.27이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[Trend Micro CTF 2017] Forensic
[Trend Micro CTF 2017] Forensic
2017.06.27100 - DNSTunnelDNS query날릴 때 url 앞에 data를 붙여 전송하는 방식으로 조금 씩 데이터를 전송하는 듯.20byte인걸로 봐서 sha1 인 것 같다. decode해봐야... 안된다.마지막만 길이가 다른 것도 이상하고... 뭘까? 아 생각해보니 hash는 아닌 것 같은게 수신 측에서 데이터를 받아 해독해야하는데 hash를 쓸리가 없다.분명 encryption한걸거고, encryption한걸 잘라서 보냈거나, 조금 씩 encryption해서 보냈을 것 같은데... 후자?가 맞지 않을까? DES를 비롯해서 몇몇개 알고리즘에 Key를 gzpgs.trendmicro.co.jp로도 해보고 gzpgs로도 해봤는데 안된다. gzpgs는 ceasar cipher 해독하면 tmctf가 나와서 이것..
[Trend Micro CTF 2017] Analysis-defensive
[Trend Micro CTF 2017] Analysis-defensive
2017.06.27이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
Session & HTTP Session hijacking
Session & HTTP Session hijacking
2017.06.27Session세션 데이터는 세션 데이터 저장소에 보관된다.SID라는 고유 식별자로 세션 데이터 저장소에서 특정 레코드를 식별한다.세션 저장소 경로는 php.ini의 ``session.save_path``에 지정되며 ``php session_save_path()``로 얻거나 설정할 수 있다.이를 이용해 세션 저장소에 직접 접근해서 다른 세션 데이터를 얻어올 수 있다.```php$path = ini_get('session.save_path');$handle = dir($path); while ($filename = $handle->read()) { if (substr($filename, 0, 5) == 'sess_') { $data = file_get_contents("$path/$filename"); if..
Filtering / Escape
Filtering / Escape
2017.06.27입력 필터링입력 필터링 작업은 세 단계로 구분하는 것이 좋다.입력을 구분하는 단계입력을 필터링하는 단계필터링된 데이터와 오염된 데이터를 구별하는 단계 입력을 구분하는 단계세션 데이터 저장소는 서버에 저장되기는 하지만 이를 입력으로 간주하는 것이 안전하며 DB의 데이터도 마찬가지다.일반적으로 사용하는 외부 입력 출처를 정리하면 이 정도가 된다.`` $_GET```` $_POST```` $_REQUEST```` $_COOKIE```` $argv```` php://stdin```` php://input``file IOremote DBremote API 입력을 필터링하는 단계유효하지 않은 데이터는 그냥 버린다.규칙에 맞추기 위해 유효하지 않은 데이터를 수정해서 그대로 사용하면 안된다. 예를 들면 `` ../....
Telnet : raw socket과의 차이
Telnet : raw socket과의 차이
2017.06.27Telnet wikiRFC 854 0xfftelnet에서는 `` 0xff``를 command 중 하나인 IAC(Interpret As Command)로 예약되어 있다.각 command의 끝에 IAC를 붙이는 방식으로 일반 data와 command를 구분하게 되는데, 사용자가 `` 0xff``를 입력하는 경우와 구분하기 위해 telnet 프로세스는 사용자로부터 IAC인 `` 0xff``를 입력 받으면 이를 `` 0xff 0xff``로 변경하여 송신하게 된다.받는 쪽도 telnet이라면, 수신하면서 이를 다시 `` 0xff``로 변환하지만, 수신 측이 raw socket이라면 `` 0xff 0xff``를 그대로 수신하게 된다.반대로 송신 측이 raw socket, 받는 쪽이 telnet이라면 `` 0xff`..
[PHP] mysqli, PDO / password_*
[PHP] mysqli, PDO / password_*
2017.06.24MySQL 접속에 사용할 수 있는 API는 ``php mysql, mysqli, PDO`` 세 가지다.`` mysql``보다는 오브젝트로 관리할 수 있는 ``php mysqli, PDO``를 사용하는 것이 좋다.* query 결과가 저장된 변수를 그냥 ``php print $result``하면 안되고, 함수를 사용해야 한다. mysqli```php$mysqli = new mysqli('localhost', 'sample', '123qw', 'sampledb');if($mysqli-> connect_error){print " =================== ";die('Connect Error:('.$mysqli->connect_errno.') '.$mysqli->connect_error);} prin..
[Trend Micro CTF 2017] Analysis-offensive
[Trend Micro CTF 2017] Analysis-offensive
2017.06.23100점 짜리라고 꼭 쉬우리라는 법은 없다. 오히려 200점이 더 쉬운듯. 안풀리면 그냥 넘어가고 끝날 때 쯤 주어지는 힌트를 노려야 한다. 100Forensic_Encyption 까지는 얻었고 MZ string이 있길래 exe인가 싶어 확장자 변경하고 실행해봤더니 검은창 뜨다가 그냥 꺼진다. PEiD에 올려도 안나오고, Ollydbg에 올라가지도 않는 걸로 봐서 실행 파일은 아닌 것 같다.이대로 파일 자체를 decryption해야 하는걸까? 파일의 맨 끝에 file_3PK / file_1PK / file_2PK라는 stirng이 있는데 이걸로 보아하니 압축파일 형식인 것 같다. 파일 자체를 encryption 했으면 맨 끝에 저런 string이 없겠지. 그니까 자체를 decryption하는건 아니다....