Pwnable/FTZ

[FTZ] level15 풀이!!

RootJJang 2022. 5. 11. 20:27
SMALL

소스코드 봐봅시다

 

저번 문제와 비슷하지만 이번엔 check가 포인터형 변수로 선언돼 있네요

 

즉, check에 직접적으로 값을 넣는 게 아니라 check의 주소값을 넣으면 쉘이 따이겠네요

 

거리는 똑같이 40이네요

 

그럼 32에 bp를 걸어 0xdeadbeef가 위치하는 주소를 구해봅시다

 

10개 정도 출력을 했는데 0xdeadbeef가 보일랑말랑 하네요

 

main+34, 0x80484b2에 0xdeadbeef가 있네요

 

그럼 페이로드에서 거리를 40만큼 채우고 저 주소값을 넣으면 쉘이 따일 겁니다

 

Payload = dummy[40] + 0x80484b2

 

최종 페이로드는 (python -c 'print "A"*40 + "\xb2\x84\x04\x08"'; cat) | ./attackme

 

LIST