CVE-2013-4547

CVE-2013-4547

漏洞描述

CVE-2013-4547是Nginx文件名逻辑漏洞,在正常情况下(关闭 pathinfo 的情况下),只有.php 后缀的文件才会被发送给 fastcgi 解析。而如果空格和零截断符相邻的话ngin就不会检测到零截断并放回错误了,这是一个逻辑漏洞,所以通过这种方式我们就可以在URI中使用零截断,这就是CVE-2013-4547。

漏洞利用演示

在这里插入图片描述

这是vulhub的一个漏洞靶场,有一个文件上传的接口的。
在这里插入图片描述

从源代码中可以看到,这是一个基于黑名单的验证机制,直接上传.php文件是传不上去的。

试图上传一个1.png的图片格式的文件,文件内容为phpinfo()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wk55H9YN-1628056164985)(C:\Users\Administrator\Desktop\漏洞流量分析\CVE-2013-4547\Snipaste_2021-08-04_13-24-52.png)]

发现返回内容中包含了文件上传的路径。

访问一下此路径下自己上传的1.png,抓包看一下。
在这里插入图片描述
在这里插入图片描述

发现响应体中,1.png中包含的代码被解析出来了。

接下来利用此漏洞的原理,在访问此路径下的1.png.php,用在.php前用空格和零截断,截断方法是在.php的hex之前插入两个比特,20代表空格 00代表 \0,漏洞利用成功。

在这里插入图片描述在这里插入图片描述

流量分析

对于这种解析逻辑漏洞利用的话,第一条http流量应该是上传正常的文件,第二条是访问一下自己上传的文件看看代码是否被解析了,第三条流量就是利用阶段的流量特征了,.php后缀前的hex值会连着20 00 。

修复建议

该问题影响 nginx 0.8.41 - 1.5.6.

该问题已经在 Nginx 1.5.7 和 1.4.4 版本中修复。

补丁程序在:

http://nginx.org/download/patch.2013.space.txt

配置上临时的解决办法是:

if ($request_uri ~ " ") {

return 444;

置上临时的解决办法是:

if ($request_uri ~ " ") {

return 444;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值