문제 !
소스는
음 uaf가 있다는 거는 알겠고, 그럼 분석을 대충이라도 해볼까요
Heap 데이터를 어떻게 분석하는지 모르는 저는 ida로 뒤져봤더니
이딴게 나오더군요.
근데 왜 give_shell( ) 저기 있는건데..?
는 이걸 보시길
저기 보이는 add $0x8, %rax 에서 0x8 을 더하니까
결국 가르키는건 introduce 구나,,
아 그럼 동적할당 시킬때 give_shell( ) 주소를 넣는데 -0x8 만큼 해서 넣어야 하네
일단 먼저 free 시켜 버리고 2를 눌러서 give_shell( ) - 0x8 을 할당시켜 버리고 use 하면 ㅇㅋ? ㅇㅇㅋ
그럼 ㄱㄱ
give_shell( ) => 0x0000000000401570 - 0x8 = 0x0000000000401568
이때 쉘이 안뜨는 이유는
introduce 가 1번 allocate 로는 안덮입니다.
고로 2번
쨋든 클리어;
'Pwnable' 카테고리의 다른 글
[Toddler's Bottle] lotto (0) | 2017.07.04 |
---|---|
[Toddler's Bottle] blackjack (0) | 2017.07.04 |
[Pico] ROP 1, 2, 3 (0) | 2017.06.29 |
[Pwnium] pwn200 (0) | 2017.06.28 |
[Plaid] Ropasaurusrex (0) | 2017.06.28 |