解析漏洞复现
Apache HTTPD 换行解析漏洞(CVE-2017-15715)
应用条件:Apache 2.4.0~2.4.29
直接上传 test.php
文件会被拦截
利用换行解析漏洞,在 test.php
文件后插入一个 \x0A
即可绕过。【1】
使用 Request 中的 Hex 栏可以轻松编辑文件的hex格式。
Burp 中只能修改 hex 字符而不能添加,因此可以随便输入一个字符(如空格),然后再对它进行修改。
上传成功后访问上传文件,已经成功解析:
Apache HTTPD 多后缀解析漏洞
应用条件:配置文件( php.ini
)中存在 AddHandler application/x-httpd-php .php
首先需要解释 Apache 为什么需要多后缀特性?以下是一个应用场景:
如果在配置文件中有以下设置:
1 | AddType text/html .html ;给 .html 后缀增加了 media-type ,值为 text/html |
那么访问文件 index.cn.html
,将返回一个中文的 html 页面。
根据上述原理,可以构造一个多后缀的 php 文件(比如: test.php.jpg
),从而绕过白名单限制:
访问上传的文件,能够成功解析:
Nginx 解析漏洞
应用场景:
- 配置文件
php.ini
中cgi.fix_pathinfo=1
; - 未配置
security.limit_extensions= .php
;
可以直接请求 nginx.png
文件,发现图片能正常打开。然后再请求 nginx.png/x.php
文件,这样 nginx 就将图片作为 php 脚本解析;
自己上传图片文件,抓包在POST包后添加脚本(如 <?php phpinfo();?>
),再请求对应图片的地址 xxx.png/x.php
即可。
注释
[1] : 正常的回车符是 \x0D\X0A
,此处只能插入 \x0A
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Peony!