- 개요 본 파일의 방어기법은 위와 같다. 뒤에서도 볼 수 있겠지만 기본 컴파일에서 NX가 해제되어 있는데 문제를 푸는 최종 과정에서 쉘코드를 실행시키면 된다. 프로그램의 메뉴는 총 5개가 있고 각 메뉴의 기능은 메시지를 생성, 제거, 변경, 확인과 프로그램을 종료이다. CTF에서 흔히 볼 수 있는 단순한 형태의 프로그램이다. - 취약점 Leave message 함수의 10번째 줄에서 scanf 함수를 통해 입력하고자 하는 size를 직접 입력할 수 있다. 이 때, 11번째 if문을 통해 확인할 수 있는데 Leave message 함수의 경우, size가 최대 32bytes로 제한되어 있다. 또, 메시지를 생성하고 반환하기 전의 17번째 줄과 7번째 줄의 if문에서 볼 수 있는 전역 변수가 있는데 이 부..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
CTF를 참여하진 않았지만, 우연하게 들어와서 풀어보았다. 바이너리 : 풀이 : main 함수가 실행되기 전에 init라는 함수가 먼저 실행되어 flag.txt라는 파일을 읽어온다. 이 파일의 내용을 알아내는게 목적이다. main의 printf 함수에서 FSB 취약점을 발견할 수 있고, flag.txt에서 읽어들인 내용을 사용자의 입력과 비교한다. 이 때, 사용자의 입력은 오로지 출력가능한 문자만 입력 가능하다. 요약하면 FSB를 통해 flag.txt의 내용을 읽어들이면 된다. 메모리의 32번째에서 flag.txt의 내용이 저장된 버퍼의 주소가 들어가 있다. 이 부분을 %s를 통해 읽어 들이면 되겠다. Flag : TWCTF{R3:l1f3_1n_4_pwn_w0rld_fr0m_z3r0} 사용된 스크립트 :..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.