前言
虚拟机还没有安装好所以还没有进行漏洞复现实操,但是又怕忘了所以就记下先。
一.Apache 1)Apache多后缀解析漏洞(低版本)例:两个文件 1.php 和 2.php.XXX
1.php文件内容:
2.php.XXX文件内容:
两个文件上传后得到的结果一样,说明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的表达式
SetHandler application/x-httpd-php中指定的表达式可以将 '$' 匹配到恶意文件名中的换行符,而不是仅匹配到文件名的末尾。
这也造成了在有黑名单限制的文件上传中,我们可以通过在文件后缀后加上%0a从而绕过了黑名单的限制,而上传的文件 .php%0a 也可以被解析为php文件
漏洞复现:
上传一句话木马文件
进行抓包改包,在文件名后缀后加上空格,在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文件。
漏洞原理:
后续有空再更