jarvisoj_level0

jarvisoj_level0


拿到题之后先在命令行里查看文件,是一个64位的。把他放在64位的ida下f5看一下伪代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hTJ57A2u-1609934613627)(C:\Users\li\Desktop\临时\QQ截图20210106184228.png)]

其实只是一句hello world,没有什么太多信息。可以看一下返回的vulnerable_function函数里是什么。然后逐个检查,最后看见了这个callsystem函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-amSGiGpL-1609934613629)(C:\Users\li\Desktop\临时\QQ截图20210106190358.png)]

现在可以确定,通过栈溢出把返回的地址改成callsystem的地址就好

格式:垃圾文件填满缓冲区(一堆a就行)+ callsystem的地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rtOfAN2m-1609934613631)(C:\Users\li\Desktop\临时\第一个脚本.png)]

第二行在建立远程链接,第三行是需要128个a覆盖buf,这里我们用128个A覆盖buf,用p64打包这个函数地址。后面就是利用漏洞发入端口了成功了之后拿flag就好。

关于栈溢出

函数运行会开辟一个栈空间,在函数执行内部指令的时候我们是无法拿到函数控制权的。但是在函数发生调用或结束调用时,程序控制权会在函数状态之间发生跳转,这是就可以通过修改函数状态来进行攻击。

当缓冲区对输入不设限制时(例如C语言中的gets函数),导致输入的信息覆盖了函数返回的地址。在这时如果覆盖了地址的消息同样是一个有效的地址,让程序跳转至攻击指令那么就可以实现攻击程序了。

让程序跳转至攻击指令那么就可以实现攻击程序了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值