下载文件后
首先查看文件的保护

将文件拖入ida,反汇编后,发现有个函数名已经明示了

进入vulnerable_function后,发现buf到rbp的距离为0x80,而read中给buf赋值的空间有0x200,确定这是一道栈溢出的题目,溢出点就在此处。

随后发现文件提供了callsystem。开始着手编写脚本。

payload解释:buf距离rbp有0x80的长度,再加上需要覆盖rbp的8字节(64位下覆盖rbp需要8字节)所以填写的垃圾数据有0x80 + 0x8。rbp后是返回地址,填写callsystem的地址。

执行脚本:

本文介绍了一个栈溢出题目的分析过程。通过IDA反汇编发现存在一个易受攻击的函数,利用栈溢出技巧,构造payload,成功调用了callsystem函数。
741

被折叠的 条评论
为什么被折叠?



