티스토리 뷰
바이너리를 보면 매우 간단합니다. 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 |
---|
댓글