老司机说的p站是什么?萌新带你开车上p站( 二 )


文章插图
我们注意到func中我们可以通过gets控制输入 , gets像本题的这种用法是非常危险的 , 容易造成缓冲区溢出攻击 , 这次我们就来pwn掉它
我们尝试输入写字符看看

老司机说的p站是什么?萌新带你开车上p站

文章插图
那么基本的思路有了 , 就是找到确定的偏移 , 然后使用覆盖 。
偏移是多少呢
配合gdb来看看
老司机说的p站是什么?萌新带你开车上p站

文章插图
在main下断点
输入r启动
老司机说的p站是什么?萌新带你开车上p站

文章插图
在断点处停下了
我们反汇编func看看比较key和指令在哪儿
老司机说的p站是什么?萌新带你开车上p站

文章插图
看到上图的红框中的cmp指令了 , 这就是关键
可以看到地址是
在这里下个断点
按c继续执行
老司机说的p站是什么?萌新带你开车上p站

文章插图
命中第二个断点后 , 我们来看看栈的布局
老司机说的p站是什么?萌新带你开车上p站

文章插图
可以看到在,而我们输入的A是从开始
emmm , 数一下 , 从最开始的0x41到之前查了13*4=52个字节 , 在53-56处写入覆盖掉原有的即可
编写脚本
老司机说的p站是什么?萌新带你开车上p站

文章插图
测试如图 , 打回了一个shell
【老司机说的p站是什么?萌新带你开车上p站】郑重声明:本文版权归原作者所有 , 转载文章仅为传播更多信息之目的 , 如作者信息标记有误 , 请第一时间联系我们修改或删除 , 谢谢 。