[CodeGate2014] angry_doraemon
https://github.com/umbum/pwn/blob/master/exploit/cg_angry_doraemon.py
code section ``c 0x08048C62``에 ``c execl('/bin/sh', ...)``가 있다.
5. Fist attack의 function pointer ``c buf()``를 이용해 여기를 호출하도록 하려 했는데 ``c if ( BYTE3(buf) != 8 )`` 로 검사하기 때문에 ``c 0x08``로 시작하는 code section을 호출할 수는 없다.
여기는 훼이크다.
4. Throw mouse에서 read overflow가 발생하므로, 이를 이용해 ret addr을 조작할 수 있다.
canary가 있기는 하지만, fork하므로 leak할 수도 있고 bf로 깰 수도 있다.
code section의 ``c execl()``로 리턴하게 되면, standalone 서버라서 클라이언트 쪽에 쉘이 떨어지지 않는다.
따라서 ``c dup2()``로 연결해주거나 ``c system(nc)`` 해야한다.
두 작업 모두 libc_addr leak이 필수적이다. 해서, code section ``c execl()``을 준게 약간 시간을 단축할 수 있다는 것 이외에 큰 도움은 안된다.
'Security > CTF' 카테고리의 다른 글
[CCE2017] Blue : 예선 (0) | 2017.10.27 |
---|---|
[SecuInside 2017] OHCE - x64 SROP (0) | 2017.09.16 |
[MCSC2014] tinypwn - SROP (0) | 2017.08.10 |
[CodeGate2014] nuclear : libpthead(send, recv, system) (0) | 2017.07.31 |
[Samsung CTF 2017] ASM (Addition, Subtract, and Multiplication) (0) | 2017.07.10 |