(CodeGate2014) angry\_doraemon
https://github.com/umbum/pwn/blob/master/exploit/cg_angry_doraemon.py
code section 0x08048C62
에 execl('/bin/sh', ...)
가 있다.
- Fist attack의 function pointer
buf()
를 이용해 여기를 호출하도록 하려 했는데if ( BYTE3(buf) != 8 )
로 검사하기 때문에c 0x08
로 시작하는 code section을 호출할 수는 없다.
여기는 훼이크다.
- Throw mouse에서 read overflow가 발생하므로, 이를 이용해 ret addr을 조작할 수 있다. canary가 있기는 하지만, fork하므로 leak할 수도 있고 bf로 깰 수도 있다. code section의
execl()
로 리턴하게 되면, standalone 서버라서 클라이언트 쪽에 쉘이 떨어지지 않는다. 따라서dup2()
로 연결해주거나system(nc)
해야한다. 두 작업 모두 libc_addr leak이 필수적이다. 해서, code sectionexecl()
을 준게 약간 시간을 단축할 수 있다는 것 이외에 큰 도움은 안된다.
This post is licensed under CC BY 4.0 by the author.