web安全--文件上传中间件解析漏洞

前言

虚拟机还没有安装好所以还没有进行漏洞复现实操,但是又怕忘了所以就记下先。

一.Apache

1)Apache多后缀解析漏洞(低版本)

:两个文件 1.php 和 2.php.XXX

1.php文件内容: <?php phpinfo();?>

2.php.XXX文件内容: <?php phpinfo();?>

两个文件上传后得到的结果一样,说明2.php.XXX是被当成php文件来执行的

漏洞原理

 在解析2.php.XXX 文件时,先识别最后的XXX,如果无法识别出来,则向前解析直至识别成功.

2)Apache换行解析漏洞(CVE-2017-15715)

影响版本:2.4.0-2.4.29版本

漏洞原理:传送门

还没有学正则表达式,目前还是不太理解漏洞原理,姑且就先挂着其他大佬的解释吧

注:在window系统不行,因为window系统不允许换行符做文件名,虽然可以上传绕过检测,但文件不能保存.(hhhh看小迪漏洞复现的时候一直找不到上传的文件,这下解惑了!!)

个人理解:

apache在修复第一个后缀名解析漏洞(多后缀解析漏洞)时,采用正则表达式匹配后缀。

在正则表达式中,$ 用来匹配字符串结尾位置,但如果设置了RegExp对象的Multiline属性,$ 也匹配 \n(换行) 和  \r .

httpd解析php的表达式

<FilesMatch \.php$>

    SetHandler application/x-httpd-php

</FilesMatch>
<FilesMatch>中指定的表达式可以将 '$' 匹配到恶意文件名中的换行符,而不是仅匹配到文件名的末尾。

这也造成了在有黑名单限制的文件上传中,我们可以通过在文件后缀后加上%0a从而绕过了黑名单的限制,而上传的文件 .php%0a 也可以被解析为php文件

漏洞复现:

上传一句话木马文件

<?php @eval($_POST['cmd']);?>

进行抓包改包,在文件名后缀后加上空格,在Hex中将20改成0a皆可。(实操后再补图)

3)Apache目录遍历解析漏洞

具体有空再更

二.Nginx

1)Nginx文件名的逻辑关系漏洞

影响版本:0.8.4-1.4.3/1.5.0-1.5.7

漏洞原理:主要原因是错误地解析了请求的URL,错误地获取到用户请求的文件名,导致出现权限绕过,代码执行的连带影响。

涉及正则匹配,能力有限,具体原理看大佬博客:传送门!

(实操后再上图)

2)Nginx解析漏洞

该漏洞和Nginx、php版本无关,属于用户配置不当造成的漏洞。

漏洞复现:(实操后放图,先记录一下过程先)

上传一个图片马,在该文件名后加上/XXX.php ,则会成功将该图片马解析成php文件。

漏洞原理:

后续有空再更
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值