전체 글 썸네일형 리스트형 [Dice CTF 2021] babyrop 0. Binary 분석 64bit 바이너리에 NX bit가 설정되어 있고, 그 외의 보안 기법은 설정되어 있지 않다. write( ) 함수로 "Your name: "을 출력하고, gets( ) 함수로 변수를 입력받고 프로그램이 종료되는 간단한 함수다. 1. 취약점 분석 gets( ) 함수에서, 변수에 길이제한 없이 입력받기 때문에 "버퍼 오버플로우" 취약점이 발생한다. 80글자의 문자열을 입력하면 RIP를 덮어서 흐름을 제어할 수 있다. 2. Exploit 작성 문제 이름처럼, ROP를 이용하면 될 것 같다. 취약점 자체는 쉬웠지만, 익스플로잇을 작성하는데 어려움을 겪었다. 일단 쉘을 획득하기 위해 write( ) 함수를 이용하여, write나 gets의 주소를 leak해서 system( )이나 exec.. 더보기 [pwnable.kr] ascii_easy 보호되어 있는 글입니다. 더보기 [pwnable.kr] brain fuck 보호되어 있는 글입니다. 더보기 [pwnable.kr] fix 보호되어 있는 글입니다. 더보기 포트폴리오 보호되어 있는 글입니다. 더보기 [pwnable.kr] dragon 보호되어 있는 글입니다. 더보기 [pwnable.kr] fsb 보호되어 있는 글입니다. 더보기 [pwnable.kr] simple login 보호되어 있는 글입니다. 더보기 이전 1 2 3 4 5 6 7 ··· 9 다음