[网络安全自学篇] 二十九.文件上传漏洞和IIS6.0解析漏洞及防护原理(二)

这是做者的系列网络安全自学教程,主要是关于安全工具和实践操做的在线笔记,特分享出来与博友共勉,但愿您们喜欢,一块儿进步。前文分享了Sqlmap的基本用法、CTF实战,包括设置HTTP、POST请求、参数分割、设置Cookie等。本篇文章将详细讲解文件上传漏洞和IIS6.0解析漏洞,包括PHP345文件绕过上传、Windows ::$DATA绕过、Apache解析漏洞上传等,同时结合Caidao工具介绍拿站的流程及防护原理。php

做者做为网络安全的小白,分享一些自学基础教程给你们,但愿您们喜欢。同时,更但愿您能与我一块儿操做共同进步,后续也将深刻学习网络安全和系统安全知识并分享相关实验。总之,但愿该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!若是文章对您有帮助,将是我创做的最大动力。git

PS:本文参考了B站、51CTO学院和参考文献中的文章,并结合本身的经验进行撰写,也推荐你们阅读参考文献。github

下载地址:https://github.com/eastmountyxz/NetworkSecuritySelf-studyweb

前文学习:
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登陆加密入门笔记
[网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
[网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
[网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战
[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向破解
[网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
[网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
[网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性
[网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码
[网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法
[网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通讯(一)
[网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二)
[网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防御
[网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
[网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
[网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
[网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
[网络安全自学篇] 二十一.GeekPwn极客大赛之安全攻防技术总结及ShowTime
[网络安全自学篇] 二十二.Web渗透之网站信息、域名信息、端口信息、敏感信息及指纹信息收集
[网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
[网络安全自学篇] 二十四.基于机器学习的恶意代码识别及人工智能中的恶意代码检测
[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防护初探
[网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
[网络安全自学篇] 二十七.Sqlmap基础用法、CTF实战及请求参数设置(一)
[网络安全自学篇] 二十八.文件上传漏洞和Caidao入门及防护原理(一)正则表达式

前文欣赏:
[渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
[渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
[渗透&攻防] 三.数据库之差别备份及Caidao利器
[渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包算法

该篇文章参考了如下文献,很是推荐你们阅读这些大牛的文章和视频:
https://github.com/eastmountyxz
《Web安全深度剖析》《黑客攻防技术宝典浏览器实战篇》
https://www.bilibili.com/video/av60018118 (B站白帽黑客教程)
https://www.bilibili.com/video/av63038037 (B站HACK学习)
https://www.bilibili.com/video/av68215785 (2019 网络安全/黑客基础课程新手入门必看)
2019/Web安全/漏洞挖掘/信息收集/SQLMAP/SSRF/文件上传/逻辑漏洞 (B站强推)
https://blog.csdn.net/weixin_42380348/article/details/89199344
一句话木马、中国菜刀、图片一句话制做、过狗一句话 - 汉堡阿汉堡
2019文件上传漏洞专题渗透入门网络安全黑客web攻防详解 (FoxB站强推)
IIS6.0put漏洞和解析漏洞 - auuuuuuuu
IIS6.0容器之解析漏洞复现 - Louisnie (参考推荐)shell

声明:本人坚定反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络须要咱们共同维护,更推荐你们了解它们背后的原理,更好地进行防御。数据库


一.文件上传漏洞之扩展名限制

前一篇文章详细讲解了文件上传漏洞的原理、一句话木马和Caidao的基本用法,涉及JS绕过文件上传、MIME绕过文件上传、大小写绕过文件上传、点和空格绕过文件上传、htaccess文件绕过上传,这篇文章将继续分享文件上传漏洞。下面参考了Fox老师的upload-labs思惟导图,供你们学习。编程

在这里插入图片描述


1.PHP345文件绕过上传

PHP3表明PHP版本3,这里用于文件绕过检测。通常的软件都是向下兼容,PHP3代码,PHP5一样兼容可以执行。以下图所示,fox.php5文件一样可以正常上传。浏览器

在这里插入图片描述


2.Windows ::$DATA绕过

Windows ::$DATA绕过只能用于Windows,Windows下NTFS文件系统有一个特性,即NTFS文件系统在存储数据流的一个属性DATA时,是请求a.php自己的数据。若是a.php还包含了其余的数据流,好比a.php:lake2.php,请求a.php:lake2.php::$DATA,则是请求a.php中的流数据lake2.php的流数据内容。简单来讲,就是在数据后面加上::$DATA实现绕过,fox.php::$DATA返回fox.php数据。

在这里插入图片描述

上传成功以下图所示,而后能够直接访问upload/fox.php文件。

在这里插入图片描述


3.Apache解析漏洞上传

Apache是从右到左判断解析,若是为不可识别解析,就再往左判断。好比1.php.xxx对Apache来讲xxx是不可解析的,因此就会解析成1.php,这就是该漏洞的实现原理。

在这里插入图片描述

如上图所示,将本地“fox.php”修改成“fox.php.xxx”,而后点击上传。

在这里插入图片描述

接着尝试用菜刀去链接。
URL为靶场的网址:http://192.168.1.8/file_upload/upload/fox.php.xxx,密码为PHP一句话木马中的“fox”,代码以下:

<?php eval($_POST[fox]); ?>

下图是Caidao链接的示意图。

在这里插入图片描述

链接以后,成功获取文件目录,能够看到“fox.php.xxx”被成功上传。

在这里插入图片描述


二.内容验证文件上传

内容检查是网站安全的重要手段之一。假设咱们将包含一句话木马的“fox.php”修改成“1.jpg”并上传,有的网址会提示上传错误,由于JPG格式不能执行PHP文件脚本的。

<?php eval($_POST[fox]); ?>

在这里插入图片描述

以下图所示,它会判断图片的文件头,包括gif、png、jpg等格式。

在这里插入图片描述

文件头是用来判断数据格式的,这里尝试修改文件头进行上传,以gif文件为例,添加文件头“GIF89a”后便可上传成功。

在这里插入图片描述

一样能够尝试BurpSuite抓包修改文件后缀.php进行上传。

在这里插入图片描述


三.%00截断上传

0x00是十六进制表示方法,是ASCII码为0的字符,在有些函数处理时,会把这个字符当作结束符。这个能够用在对文件类型名的绕过上。须要注意,00截断get是能够自动转换的,post须要特殊转换,下面举一个例子。

首先,选择上传一张包含一句话木马的“php.jpg”图片。

在这里插入图片描述

而后,利用BurpSuite抓包并修改后缀名为“php.php%001.jpg”。若是直接修改成“php.php”可能会被过滤。

在这里插入图片描述

这种方法仍然不可行,由于它采用post提交数据,须要特殊转换。这里选中“%00”右键转换为URL格式,以下图所示,而后再点击“Forward”提交数据便可。

在这里插入图片描述

文件成功上传,%00自动截断后面的内容。

在这里插入图片描述


四.IIS6.0 解析漏洞

ISS6.0解析漏洞分两种:

1.目录解析
以“*.asp”命名的文件夹里的文件都将会被当成ASP文件执行,好比“1.asp/1.jpg”,这里1.jpg会被当作asp文件执行。

利用IIS6.0解析漏洞,咱们能够在网站下创建名字为“*.asp” 、“*.asa”的文件夹,其目录内的任何扩展名的文件都被IIS看成asp文件来解析。例如建立目录“vidun.asp”,则“/vidun.asp/1.jpg”将被看成asp文件来执行。

2.文件解析
“*.asp;.jpg”像这种畸形文件名在 “;” 后面的直接被忽略,也就是说当成 “*.asp”文件执行。好比“1.asp;1.jpg”命名的文件,一样是以asp脚本进行执行。IIS6.0 默认的可执行文件除了asp还包含这三种:.asa、.cer、*.cdx。

网站上传图片的时候,将网页木马文件的名字改为“*.asp;.jpg”,分号后面的不被解析也一样会被IIS看成asp文件来解析并执行。例如上传一个图片文件,名字叫“vidun.asp;.jpg”的木马文件,该文件能够被看成asp文件解析并执行。


假设某网站是用IIS6.0搭建。

在这里插入图片描述

该ASP靶场存在一个图片上传的后台页面,以下图所示:

在这里插入图片描述

第一步,咱们制做一个名为“asp1.jpg”的一句话木马,核心代码以下:

<%execute(request("fox"))%>

在这里插入图片描述

第二步,尝试上传“asp1.jpg”图片,它会提示上传类型不正确。

在这里插入图片描述

第三步,由于该网站检查了文件头类型,这里须要进行简单的修改,好比增长GIF文件头。

在这里插入图片描述

第四步,选择上传,此时可以成功上传。

在这里插入图片描述

第五步,接着尝试BurpSuite进行抓包,这里截取到数据包,点击“Send to Repeater”按钮。

在这里插入图片描述

第六步,尝试在左边“upfile/”文件路径名后面增长文件名称“1.asp;”,而后点击请求发送。右边会显示文件成功上传,其路径详见图中。

在这里插入图片描述

上传以后的文件能够成功访问,以下图所示。

在这里插入图片描述

第七步,尝试进行Caidao链接,输入地址和密码“fox”。

在这里插入图片描述

第八步,成功获取服务器的文件目录,以下图所示。

在这里插入图片描述

注意:IIS6.0解析漏洞被发现的时候,微软是不认可这个漏洞的,因此没有进行相应的补丁修补。基本IIS6.0网站都很存在该漏洞。


一样的方法,某些TXT文件也是能够利用该漏洞进行上传。基本流程以下:

  • 先随意上传一个文件,观其url发现是asp脚本构造的页面
  • 在本地制做一个asp的一句话木马保存到文件中,而后打开burpsuite的代理功能去进行抓包修改
  • 发送的POST请求中发现刚发送的asp.txt被保存的第二个upload文件下,为了让其执行,咱们在第二个upload后面加入/webshell.asp文件
  • 经过上一个步骤,有效地将asp.txt这个一句话木马放入webshell.asp中,IIS利用解析漏洞将asp.txt看成asp脚本去执行

在这里插入图片描述

在burp中转发浏览器显示成功上传,并列出上传的地址。最后经过Caidao远程链接获取目录。

在这里插入图片描述

另外一种方法,将刚刚的asp木马文件名修改成webshell.asp;.txt,由于该网站不容许上传以asp做为后缀的文件名,因此咱们使用.txt后缀,但分号后面的内容将会被IIS过滤不去解析,因此这就是个asp脚本。

在这里插入图片描述

经过Caidao成功获取目录以下图所示,建议尽可能放置在隐藏位置;同时某些网站有上传大小限制,能够尝试在一句话木马文件中填充内容。

在这里插入图片描述

若是您是一名网站管理员,您须要注意:
(1) 进行文件黑名单和白名单过滤是很是必要的。
(2) 文件的完整性校验、文件头校验、文件格式校验、文件大小校验都是必要的。
(3) 避免像IIS6.0解析漏洞,注意相关CVE漏洞提示并及时修复。
(4) 若是能够,尝试对上传文件的内容进行简单的校验。
(5) 网站防火墙、安全狗都须要安装,弱口令、SQL注入、XSS等常见漏洞须要预防。


五.总结

写道这里,这篇基础性文章就此结束,后面会继续分享文件上传漏洞。最后但愿基础性文章对您有所帮助,做者也是这个领域的菜鸟一枚,但愿与您共同进步,共勉。上周末女神来了一趟,哈哈。这周举办会议,很是忙碌,但也挤些不多的时间分享新知识,且看且珍惜。

在这里插入图片描述

(By:Eastmount 2019-12-10 晚上12点 http://blog.csdn.net/eastmount/ )