4000-618-418

渗透测试干货-CVE-2013-4547漏洞原理

2022年10月19日

漏洞影响版本:Nginx 0.8.41-1.4.3

Nginx 1.5.0-1.5.7-

漏洞条件: 能够上传图片马+nginx漏洞版本

漏洞原理:

当我们URL中xxx[0x20][0x00].php时 nginx规则中匹配上 .php$时会将这个请求文件交给php-fpm处理,当php-fpm处理时碰到0x00截断,则图片会当作php文件解析,触发图片马

漏洞过程:


image

image

image


1、上传一个图片,,通过bp修改上传的图片名称为 图片.jpg空格

2、访问 URL: IP:port/xxx

3、拦截访问数据包,使修改URL为 IP:PORT/xxx/%E5%9B%BE%E7%89%87.jpg空格0x00.php

image

4、使用蚁剑连接1.php 密码a连接成功

image

##如果我们上传了一个图片马没有空格时,通过URL+00截断会显示未响应,原因是,nginx会检测url中是否有00截断,如果有则不返回 nginx源代码:“ case '\0': return NGX_HTTP_PARSE_INVALID_REQUEST;”,

但是nginx存在一个逻辑错误,如果URL中00截断前有空格,则跳过00截断的检测 出现逻辑错误,所以上传的图片马结尾需要BP加上空格;

当访问IP:PORT/XX.jpg0x200x00.php时,绕过NGINX的00截断检测,将XXX.jpg0x20发送给php-fpm当成php文件处理,导致代码执行



上一篇:渗透测试之跨站脚本攻击漏洞

下一篇:渗透测试之redis未授权访问的攻击方式