2020 西湖论剑 pwn ezhttp

在这里插入图片描述
保护。

在这里插入图片描述
开了沙箱。

在这里插入图片描述
往这个haystack地方读入随机数。

在这里插入图片描述然后是程序的主体部分。
首先书输入用来ssanf函数

C 库函数 int sscanf(const char *str, const char format, …) 从字符串读取格式化输入。
str – 这是 C 字符串,是函数检索数据的源。
format – 这是 C 字符串,包含了以下各项中的一个或多个:空格字符、非空格字符 和 format 说明符。
format 说明符形式为 [=%[
][width][modifiers]type=]

所以我们根据逻辑很容易得到payload的格式。
在这里插入图片描述首先s第一个单词是get或者post,第二个单词用于后面的命令。

然后后面要跟cookie。cookie最后接上命令的内容。

我们现在的问题是要cookie验证成功。
在这里插入图片描述首先先拿出来了cookie跟token。
cookie后面要跟user=admin。
中间还用了一个sscnaf,后面的格式化字符串是一个正则表达式。

token后面要跟上我们的输入。
当他是空字节的时候,会发生什么我们做了个实验。

在这里插入图片描述
看得出来显然空字节直接就会过检查。这就是漏洞点了。
我们token直接等于空字节就可以绕过对token的检查。

那怎么让他是空字节

我们跟踪一次执行流程。

在这里插入图片描述刚输入的时候是没有这个空字节的。

在这里插入图片描述
然后在这个地方截断了。就会多个空字节出来。

在这里插入图片描述

然后去分析功能。

在这里插入图片描述
del函数里面有double free。

剩下的利用就是我们的常规利用了。
因为申请的chunk不能大于0x100,所以我们可以申请多一点的chunk,也可以直接攻击tcache struct。
因为没有show,所以我们需要攻击IO_FILE
因为开了沙箱,所以需要做一个堆的SROP。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值