18.9.19 Jarvis OJ PWN----Smashes

本文介绍了如何在Jarvis OJ的一道PWN题目中,面对栈保护、NX等安全机制,通过触发SSP泄露(Stack Smashing Protector),利用canary值的覆盖来绕过保护,最终找到并修改flag的内存位置,从而获取目标字符串。在过程中,讲解了canary的工作原理、启动参数的作用,并展示了使用gdb-peda寻找字符串的技巧。
摘要由CSDN通过智能技术生成

先checksec一下

我的天,有栈保护,nx,咋办……

IDA进去,我们可以看见有个函数挺关键的,如下

我们可以看到stdin是可以无限输入的,但是只有接收输入时接收到'\n',才会继续执行(跳出while循环),找不出栈溢出的办法

然后看了大佬的操作之后发现:可以故意触发canary来攻击(SSP(Stack Smashing Protector ) leak)

先介绍一下好了,SSP外号叫金丝雀。应对“栈溢出”(也称缓存区溢出),需要一些对策。比如GCC的“Stack-Smashing Protector”机制(在数组后插入一些金丝雀(Canary, 因为大家在矿井作业时,会用金丝雀来预警,如果金丝雀死了,那证明有毒气),在函数执行完成返回之前会检查一下Canary,如果canary被改掉,则不再继续执行,中止程序,避免执行攻击者的代码。

在I

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值