ret2text利用前提
存在后门函数
检查安全:
查看文件信息
测试文件下载地址: 首先把ret2text用IDA打开:
64位ELF文件。
进入main函数,F5反编译,双击vulnerable函数,进入:
发现溢出点。
搜索shell函数:
函数窗口列表,查看success,发现shell:
进入IDA普通视图,双击左侧success函数,查看success地址,是400566
。
exp
写pwn exp.py:
运行结果:
使用pwndbg调试查看偏移
pwndbg常见用法:
pwngdb 文件名 : 调式文件
r 运行
disass 函数名 :查看函数的反汇编代码
b 函数名/*地址:下断点(地址前面要加**号)
i (空格)b :查看断点
d(空格) 断点编号 :删除断点
cyclic 200,生产200个字符
cyclic -l 前4个字符,查看长度
生成200个字符,并运行r输入200个字符,导致程序崩溃:
查看到BP/EBP/RBP偏移:
RIP是64位,8个字节大小。
所以离EIP/RIP的距离是16+8=24字节。
原理