文件上传漏洞原理

文件上传漏洞原理

文件的上传漏洞原理与流程

什么是文件上传

文件上传是一个网站的常见功能,多用于上传照片、视频、文档等许多类型文件,一般文件.上传的流程如下:
1.前端选择文件,进行提交。
2.浏览器形成POST MultiPart报文发送到服务器。
3.服务器中间件接受到报文,解析后交给相关后端代码进行处理。
4.后端代码将上传的文件内容写入到临时文件中(PHP特有) 。
5写入到文件中,文件名为提交的文件名或以- -定规则生成的文件名。
文件上传漏洞原理_第1张图片
文件上传漏洞原理_第2张图片
文件上传漏洞原理_第3张图片
文件上传漏洞原理_第4张图片

什么是文件上传漏洞

当文件.上传点未对上传的文件进行严格的验证和过滤时,就容易造成任意文件上传,包 括上传动态文件(asp/php/jsp等等) 。
如果.上传的目标目录没有限制执行权限,导致所上传的动态文件(比如webshell)可以正常执行并且可以访问,即造成了文件上传漏洞。

总之,存在上传漏洞的必要条件是:
①存在上传点
②可以上传动态文件
③.上传目录有执行权限,并且上传的文件可执行
④可访问到上传的动态文件

上传检测流程

文件上传漏洞原理_第5张图片

关于Burp Suite

Burp Suite是一个集成化的渗透测试工具, 它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。在渗透测试中,我们使用Burp Suite将使得测试工作变得更加容易和方便,即使在不需要娴熟的技巧的情况下,只有我们熟悉Burp Suite的使用,也使得渗透测试工作变得轻松和高效。
下载地址:Burp Suite下载地址
推荐配合插件SwitchyOmega使用,Chrome与Firefox均支持。
BurpSuite监听8080端口,如果使用了Tomcat/Squid- -类默认监听8080端口的软件,可以修改BurpSuite的监听端口。
这里只简单演示下截包功能,想了解跟多可以观看i春秋上专门的BurpSuite教程。

客户端检查绕过

客户端检测一般只检测文件扩展名。客户端进行的检测,可通过对客户端代码的一些修改或接拦截修改报文即可绕过,所以这种上传限制约等于没有。
前端JavaScript检测绕过
①查看onchange. onsubmit等事件
onchange事件会在域的内容改变时发生。
onsubmit事件会在表单中的确认按钮被点击时发生,如下图示例。
②删除掉相关事件中的检测函数

提交报文修改检测(前端检测通用)
①首先选择正常的文件进行上传
②而后通过Burpsuite进行截包改包或改包重放完成文件.上传。
这种方法前端绕过检测中通用,无需理会具体前端的检测代码,直接绕过前端进行上传报文的修改并提交。

APP端BurpSuite抓包(HTTPS抓包)
①将BurpSuite的代理端口监听IP设置为"AIll Interface"
②在wif设置中将代理地址设置为burpip:8080
③访向http://burpip:8080下载证书
④(安卓) 将修改证书扩展名为.crt,设置->安全->凭据存储->从SD卡安装,选择证书进行安装
④(ios) 按照提示-路下- -步安装
⑤(iOs)进入设置->通用->关于本机->证书信任设置,将新添加的证书设置为信任
如果Android APP使用了证书校验,可以配合Xposed框架的JustTrustMe使用, iOs暂时没有办法。
Mumu模拟器打开Wifi配置的方法:
adb connect 127.0.0.1:7555
adb shell am start -a android.settings.WIFI SETTINGS

你可能感兴趣的:(文件上传)