上传漏洞绕过思路

什么是文件上传漏洞?

答:当文件上传时,如果服务端的脚本语言没有对上传的文件进行检查和过滤,那假如,渗透者直接上传恶意代码文件,那么就有可能直接控制整个网站,或者说以此为跳板,直接拿下服务器,这就是文件上传漏洞。

现在还存在能直接上传的上传漏洞吗?

答:不能说绝对没有,但是肯定存在,只不过很少。所以一般的渗透测试中,都是找上传点,然后绕过上传限制,直接上传恶意脚本文件,进行控制,拿下webshell。

那这篇上传漏洞原理分析主要讲什么?

答,拿webshell这个上传法,我这篇里是肯定不会记录的,网上关于这个的很多的,什么截断啊,解析啊,对了解析漏洞,这个我会开始讲这个漏洞时再总结的。本篇就是简单的上传,直接上传,控制,毕竟这就是最原始的上传漏洞,我只是分析漏洞原理。关于其它的,等我自己打网络攻防平台,打一些其他人在线的靶场的时候,就会涉及到这些,我会在打靶场的时候好好总结记录的。

对了还有最重要的!!! what ?

答:不管你上传的什么恶意代码,前提是必须被服务器所认同为该环境下的语言,才能执行,要不然,你一个asp的脚本环境,你上传一个PHP的恶意代码,你觉得这个有用吗?当然实际的渗透测试中,肯定会出现各种问题,这个就需要你自己去分析去攻破了。

​文件解析漏洞 :解析漏洞主要说的是一些特殊文件被iis、apache、nginx在某种情况下解释成脚本文件格式的漏IIS5.x/6.0解析漏洞。- .htaccess 文件攻击 通过一个.htaccess 文件调用 php 的解析器去解析一个文件名中只要包含"haha"这个字符串的 任意文件,所以无论文件名是什么样子,只要包含"haha"这个字符串,都可以被以 php 的方 式来解析,是不是相当邪恶,一个自定义的.htaccess 文件就可以以各种各样的方式去绕过很 多上传验证机制。
在这里插入图片描述
解析漏洞

攻击者利用上传漏洞时,通常会与Web容器的解析漏洞结合在一起。

所以我们先了解解析漏洞,才能更深入的了解上传漏洞

常见的Web容器有IIS、Apache、Tomcat、Nginx等,我们以IIS和Apache为例讲解。

IIS解析漏洞

IIS6.0在解析文件时有以下两个漏洞(微软不认为这是一个漏洞,所以并没有IIS6.0的补丁)

1)当建立*.asa、*.asp格式的文件夹时,其目录下的任何文件都将被当做asp脚本执行

2)当文件为*.asp;1.jpg,IIS6.0同样会以ASP脚本来执行

Apache解析漏洞

在Apache 1.x和Apache 2.x中存在解析漏洞 ,Apache在解析文件时有一个原则:

当碰到不认识的扩展名时,将会从后向前解析,直到碰到认识的 扩展名,如果都不认识,则会暴露其源码。比如 1.php.rar.ss.aa 会被当做PHP脚本执行

常见的上传检测方式;

1.客户端javascript检测(通常为检测文件扩展名)

2.服务端MIME类型检测(检测Content-Type内容)

3.服务端目录路径检测(检测跟path相关的内容)

4.服务端文件扩展名检测(检测跟文件extension相关的内容)

5.服务端文件内容检测(检测内容是否合法或含有恶意代码)

客户端口岸侧绕过(javascript检测)

*首先判断JS本地验证

*通常可以根据它的验证警告弹框的速度可以判断,如果你的电脑运行比较快,那么我们可以用burp抓包,在点击提交的时候burp没有抓到包,就已经弹框。那么说明这个就是本地js验证。

*绕过方法:

1.使用burp抓包改名

2.使用firebug直接删除掉本地验证的js代码

3.添加js验证的白名单,如将php的格式添加进去

MIME的作用 : 使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。

web服务器使用MIME来说明发送数据的种类, web客户端使用MIME来说明希望接收到的数据种类。

Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,你可也去看一下。

MIME的作用 : 使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。

web服务器使用MIME来说明发送数据的种类, web客户端使用MIME来说明希望接收到的数据种类。

Tomcat的安装目录\conf\web.xml 中就定义了大量MIME类型 ,你可也去看一下。

绕过方法:

直接使用burp抓包,得到post上传数据后,将 Content-Type: text/plain改成 Content-Type: image/gif

就可以成功绕过。

1.客户端校验

一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式。

判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包。

2.服务端校验

2.1 content-type字段校验

这里以PHP代码为例,模拟web服务器端的校验代码

服务端检测绕过(文件扩展名检测)

  • 黑名单检测

黑名单的安全性比白名单的安全性低很多,攻击手法自然也比白名单多 一般有个专门的 blacklist 文件,里面会包含常见的危险脚本文件例如 fckeditor 2.4.3 或之前版本的黑名单

白名单检测

白名单相对来说比黑名单安全一些,但也不见得就绝对安全了

绕过黑名单:

  1. 文件名大小写绕过

用像 AsP,pHp 之类的文件名绕过黑名单检测

  1. 名单列表绕过

用黑名单里没有的名单进行攻击,比如黑名单里没有 asa 或 cer 之类

  1. 特殊文件名绕过

比如发送的 http 包里把文件名改成 test.asp. 或 test.asp_(下划线为空格),这种命名方式 在 windows 系统里是不被允许的,所以需要在 burp 之类里进行修改,然后绕过验证后,会 被 windows 系统自动去掉后面的点和空格,但要注意 Unix/Linux 系统没有这个特性。

转载自https://blog.csdn.net/weixin_34232744/article/details/87701320

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 文件上传漏洞的常见绕过方法主要包括前端JS检测、构造特殊的、畸形的数据包以干扰WAF对数据包的检测、利用文件内容的免杀和超大文件等方式进行突破、针对文件名过滤的WAF绕过突破思路等。\[1\]\[2\]\[3\]其中,前端JS检测是一种常用的防御方式,通过在前端对上传文件进行检测,限制文件类型和文件后缀,以防止恶意文件的上传。然而,攻击者可以通过构造特殊的、畸形的数据包来绕过WAF的检测,干扰WAF对数据包的解析,使其无法提取文件名称或将其误认为非文件上传的数据包,从而绕过WAF的防御。此外,攻击者还可以利用免杀和超大文件等方式来绕过WAF对文件内容的检测。针对文件名过滤的WAF绕过突破思路主要包括获取HTTP Request数据包包头中的boundary值、解析数据包获取上传文件的文件名,然后根据文件名进行黑名单或白名单的匹配。综上所述,文件上传漏洞绕过方法多种多样,需要综合使用多种防御措施来提高安全性。 #### 引用[.reference_title] - *1* [文件上传漏洞常用绕过方式](https://blog.csdn.net/qq_62078839/article/details/124026691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [文件上传漏洞WAF绕过方法](https://blog.csdn.net/weixin_40228200/article/details/127200643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值