티스토리 뷰
ROP면서도 신경쓸 게 많았던 문제였던 것 같다.
cd80님이 힌트를 주신것들을 활용해 보면서 풀어봤고 sprintf를 이용하여 free-address에 // 0x00이 들어가면 안되기 때문에
payload를 복사해 주고 Fake-EBP기법을 통해 payload를 실행해주고 쉘코드를 이용하여 풀어봤다.
바이너리에 NX-Bit는 적용되어 있지 않다.
최대한 깔끔하게 exploit코드를 구성하려고 노력했고 sprintf를 13번정도 이상 실행하면 오류가 나서
read@got를 이용하여(read.plt+6을 가르키고 있는 포인터) free-address에 read.plt를 복사해 주었다.
그리고 s.send(sc)를 해주기 전에 print s.recv(1024)를 해줬었는데 그 다음으로 넘어가지 않는 현상이 발생했었다.
이 부분은 fd가 변조되었기 때문에 바이너리가 write를 제대로 실행해주지 못해서 받을 값이 없기 때문에
s.recv()를 해줄 필요가 없다.
http_m3ans_w3b_amirite
'Pwnable > CTF' 카테고리의 다른 글
32c3 CTF readme (0) | 2015.12.30 |
---|---|
SECCON 2015 Quals FSB:TreeWalker (0) | 2015.12.09 |
Layer7 CTF 2015 Spil..Spli....SPPPPPIILL (0) | 2015.09.16 |
Codegate 2015 Bookstore (0) | 2015.09.14 |
Layer7 CTF 2015 IhaveLongDariYouHaveShotDari (0) | 2015.08.30 |
댓글