2013
-
Pico CTF 2013 ROP1 write-upCTF Write-Up 2018. 3. 8. 23:58
좀 더 쉬운 ROP 문제를 풀어보기 위해 Pico CTF 2013 rop1이라는 문제를 풀어보았다. [바이너리] 먼저 메모리 보호 기법을 확인해보면 NX bit 가 걸려있고, Partial RELRO가 걸려있다. NX bit로 인해서 Stack에 실행 권한이 없기 때문에 내가 아는 쉘코드를 이용하는 방법은 할 수 없다.Partial RELRO는 got 섹션을 제외한 섹션에 읽기 권한을 걸어주는 기법이지만got는 제외되기 때문에 GOT Overwirte를 할 수 있다. 정적분석을 위해 IDA로 열어본다. 먼저 main() 을 확인해보면 간단하게 두 함수를 호출하고, vulnerable_function() 이 눈에 띈다. 어떤 함수인지 확인하기 위해 보면 bof 취약점이 존재한다는것을 확인할 수 있다. ch..
-
Plaid CTF 2013 ropasaurusrex write-upCTF Write-Up 2018. 3. 6. 06:57
Plaid CTF 2013 ropasaurusrex 라는 문제를 풀어봤다. 먼저 정적분석을 위해 IDA로 열어본다. 먼저 main()를 살펴보면 어떤 함수를 호출하고 write()를 호출하여 win\n 이라는 문자열을 출력해주는 것을 볼 수 있다. 그 어떤 함수에 들어가 보면 바로 취약점을 찾을 수 있는데,이는 char buf 가 bp-88 즉, 136 byte의 공간을 할당 받았지만, 바로 밑 read()에서 256 byte를 입력받게 되어있기 때문에buffer overflow 취약점에 해당된다. 여기까지 정적분석을 마쳤으니 동적분석을 해보자. 먼저 실행을 해보면 예상처럼 입력을 받고, win이라는 문자열을 출력해준다. 그리고 memory 보호기법을 확인 해보면 NX bit 만 걸려있었다. 이는 쉘코드..