티스토리 뷰

Pwnable/pwnable.tw

[pwnable.tw] start

xxvd 2018. 8. 19. 02:34




     바이너리를 보면 매우 간단합니다. write 함수로 출력 해주고 read 로 입력 받은 후 esp에 0x14만큼 더한뒤 리턴


     write 로 3c만큼 받는데 어떻게 하면 세폴이 날까 하고 A를 막 줘봤더니 


   


24개를 주었더니 eip가 조작되었습니다. 그래서 eip를 스택으로 돌리고 스택에 쉘코드를 넣어 실행하려했는데


aslr이 걸려있어 실패했습니다. NX도 걸려있어서 쉘코드를 스택에 올려 실행하는 방법으로 해야될 것 같은데


스택 주소를 알지 못합니다. 그래서 write 함수로 스택 주소를 알아내고, esp+0x14 를 실행하므로 esp+0x14에 


쉘코드를 넣고 리턴 어드레스에 스택주소+0x14 만큼 해서 익스 했습니다.




그리고 쉘코드가 execve("/bin/sh") 인데 이 execve 함수는 ecx.edx 가 NULL아 되어야 한다고 합니다,, 그러므로


asm("xor ecx, ecx") 이런 구문을 payload에 추가해 쉘코드가 정상적으로 동작하게 했습니다.


'Pwnable > pwnable.tw' 카테고리의 다른 글

orw  (0) 2018.09.27
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함