ciscn_2019_es_2

这一题主要是利用栈迁移,这对我来说是新知识,所以花了比较长的时间来复现和看其他师傅的wp。
思路:
先写下我被困住的地方的解决方法:read0x30个字节,而s大小只有0x28,留给我们的操作空间不大呀,那我们把前边题目要写入垃圾数据的空间不填入垃圾数据,填入需要的payload,然后在ebp位置上填要返回的位置(就是填垃圾数据的地方),最后在ret位置上填leave_ret的地址(这里要注意,vul函数退出时有一个leave_ret,但是我们又构造了一个leave_ret)
1.首先需要泄露ebp的值,然后根据输入数据的地方与ebp的差值,差值是0x38

在这里插入图片描述
这是payload2构造方法,首先要退出read函数,经过第一次leave,将新ebp的值赋为ebp-0x38,然后执行ret,此时esp指向leave_ret地址,然后执行第二次的leave_ret,因为此时ebp为ebp-0x38,将esp的值也赋为它,然后将bbbb弹出到ebp,esp向上移动,执行ret。

我明天试试动态调试,怎么搞一波。。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值