Post

(CodeGate2014) angry\_doraemon

https://github.com/umbum/pwn/blob/master/exploit/cg_angry_doraemon.py

code section 0x08048C62execl('/bin/sh', ...)가 있다.

  1. Fist attack의 function pointer buf()를 이용해 여기를 호출하도록 하려 했는데 if ( BYTE3(buf) != 8 )로 검사하기 때문에 c 0x08로 시작하는 code section을 호출할 수는 없다.

여기는 훼이크다.

  1. Throw mouse에서 read overflow가 발생하므로, 이를 이용해 ret addr을 조작할 수 있다. canary가 있기는 하지만, fork하므로 leak할 수도 있고 bf로 깰 수도 있다. code section의 execl()로 리턴하게 되면, standalone 서버라서 클라이언트 쪽에 쉘이 떨어지지 않는다. 따라서 dup2()로 연결해주거나 system(nc) 해야한다. 두 작업 모두 libc_addr leak이 필수적이다. 해서, code section execl()을 준게 약간 시간을 단축할 수 있다는 것 이외에 큰 도움은 안된다.
This post is licensed under CC BY 4.0 by the author.