▲ 언뜻 보면 level14와 같아 보이지만 check가 그냥 변수가 아닌 포인터 변수로 변경되었습니다.
▲ 분석 편의상 intel 문법으로 변경하였습니다. 보면 버퍼를 56만큼 할당 해 주고 ebp-16위치에 있는 값과 0xdeadbeef를 비교해 줍니다. 따라서 56-16 = 40. 즉 40만큼의 NOP을 입력해 준 후 deafbeef가 있는 주소를 입력해주면 됩니다.
▲deadbeef는 프로그램 내에 하드코딩 되어 있는 상태. 약간의 게싱을 통해 찾아냈습니다. 주소값은 0x080484b2 입니다.
따라서 공격은 NOP*40 + 0x080484b2로 이루어집니다.
▲ (python -c 'print "\x90"*40+"\xb2\x84\x04\x08"';cat) | ./attackme
'System > FTZ' 카테고리의 다른 글
[FTZ school] level 17 (0) | 2019.03.19 |
---|---|
[FTZ school] level 16 (0) | 2019.03.19 |
[FTZ school] level 14 (0) | 2019.03.19 |
[FTZ school] level 13 (0) | 2019.03.19 |
[FTZ school] level 11 (0) | 2019.03.19 |