buuctf ciscn_2019_n_8 1 wp

准备工作

checksec好家伙能开的开完了(pwnta是我写的一个shell脚本,里面有checksec之类的省的一个一个输了,反正每次都要用)

进ida看看

可以发现明晃晃的有个system摆在这

漏洞及利用思路

system上方有个scanf,此函数是典型的危险函数,不会限制输入位数。

关键就是那两个if语句的理解,因为是做完后写wp,我就直接说结论了

其实最关键也就是这个代表什么,这几个连着的符号怎么理解

这里是对var的单个元素取至后将它强转为指向八字节数据(qword的解释)的指针,指针存储的地址还是var[13],然后对这个地址解引用,从改地址开始取出64bit的数据(qword指针就该取这么多)

所以这个部分代表的就是var[13]对应地址开始的一个64位的数据

所以第一个if就是要这段数据不是0,第二个就是要它等于17LL,也就是用64位的数据去表示这个17,而64位的17我们正好就可以用p64(),也就不需要我们自己换算

再前13个dword随便填填(为什么是dword点一下var就知道了)

至此就可以构造payload:

getshell

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值