web-文件上传漏洞总结
思维导图:

一,js验证绕过
1.我们直接删除代码中onsubmit事件中关于文件上传时验证上传文件的相关代码即可。

或者可以不加载所有js,还可以将html源码copy一份到本地,然后对相应代码进行修改,本地提交即可。
2.burp改包,由于是js验证,我们可以先将文件重命名为js允许的后缀名,在用burp发送数据包时候改成我们想要的后缀。

 

二,服务端验证绕过
黑名单
1.上传特殊可解析后缀
可以使用php345,phtml,PHP,phP,等
2.上传.htaccess
我们需要上传一个.htaccess文件,内容为:
SetHandler application/x-httpd-php
上传该apache配置文件,会修改apache的配置,使后面上传的文件都会被看成php文件执行,所以直接上传图片一句话木马
3.后缀大小写绕过
后缀名改为PHP即可
4.空格绕过
黑名单没有对文件中的空格进行处理,使用burpsuite截取数据包,在上传文件后缀名中加空格绕过。
5.点绕过$
windows会对文件中的点进行自动去除,所以可以在文件末尾加点绕过,使用burpsuite抓包在上传文件后缀名中加点绕过
6.::$DATA绕过(windows)
使用burpsuite抓包在上传文件后缀名中加 ::$DATA绕过,使用burpsuite抓包在上传文件后缀名中加::$DATA绕过,1.php::$DATA ==》1.php
7.路径拼接绕过
可以构造文件名1.PHP. . (点+空格+点),经过处理后,文件名变成1.PHP.,即可绕过。
8.双写绕过
可以采用双写绕过:1.pphphp,使用burpsuite抓包在上传文件后缀名该为pphphp
9. 配合解析漏洞,
如apache,1.php.xxx,apache会将该文件后缀名解析为1.php执行
如iis6,使用burpsuite抓包,修改upfile为 。。/1.asp/
目录解析(6.0)
形式:www.xxx.com/xx.asp/xx.jpg 原理: 服务器默认会把.asp,.asp目录下的文件都解析成asp文件。
文件解析
如:使用burpsuite抓包,修改upfile为
形式:www.xxx.com/xx.asp;.jpg 原理:服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了。 解析文件类型
IIS6.0 默认的可执行文件除了asp还包含这三种 :
  1. /test.asa
2./test.cer
  3./test.cdx
三,白名单绕过
1.mime绕过
通过burpsuite抓包比较上传正常jpg和非法文件php的Content-type的区别

2.%00 截断

使用burpsuite自带工具将00%转换为url编码,如:filename=“1.jpg00%” ==》burpsuite编码后变成1.jpg,forward上传
3.文件幻数检测绕过
在木马内容的前面插入对应的文件头内容,例如:GIF89a ,更保险的方法是在可上传的文件中插入木马代码,然后修改后缀
4.二次渲染绕过
通过例如加载文件进行图像渲染的方式来测试,这个时候就一般需要在正常的文件中插入木马代码了,例如图像,那么插入的代码一般会放在图像的注释区,因此不会影响图像正常渲染绕过这种检测,此时可以使用工具(称为插马器)来进行插入,例如edjpgcom,或者直接用copy命令来合成也可以。当然这种检测不一定能够完全绕过
5.条件竞争
这里先将文件上传到服务器,然后通过rename修改名称,再通过unlink删除文件,因此可以通过条件竞争的方式在unlink之前,访问webshell。
web-文件上传漏洞总结的更多相关文章
- web文件上传漏洞
		什么是文件上传漏洞? 指利用系统的对文件上传部分的控制不足或处理缺陷,上传可执行的动态脚本文件/webShell进行攻击行为. 原因 对于上传文件的后缀名(扩展名)没有做较为严格的限制 对于上传文件的 ... 
- WEB文件上传漏洞介绍解决办法
		引用:http://blog.csdn.net/kobejayandy/article/details/35861499 问题: -1. 上传文件WEB脚本语言,服务器的WEB容器解释并执行了用户上传 ... 
- Web应用安全之文件上传漏洞详解
		什么是文件上传漏洞 文件上传漏洞是在用户上传了一个可执行的脚本文件,本通过此脚本文件获得了执行服务器端命令的功能,这种攻击方式是最为直接,最为有效的,有时候,几乎没有什么门槛,也就是任何人都可以进行这 ... 
- WEB安全:文件上传漏洞
		文件上传漏洞过程 用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力. 一般的情况有: 上传文件WEB脚本语言,服务器的WEB容器解释并执行了用户上传的脚本,导致代码执行: ... 
- web服务端安全之文件上传漏洞
		一.文件上传漏洞的原理 由于程序代码未对用户提交的文件进行严格的分析和检查,导致攻击者可以上传可执行的代码文件,从而获取web应用的控制权限. 常见于上传功能,富文本编辑器. 二.文件上传漏洞的防御 ... 
- 基于 java 【Web安全】文件上传漏洞及目录遍历攻击
		前言:web安全之文件上传漏洞,顺带讲一下目录遍历攻击.本文基于 java 写了一个示例. 原理 在上网的过程中,我们经常会将一些如图片.压缩包之类的文件上传到远端服务器进行保存.文件上传攻击指的是恶 ... 
- web安全之文件上传漏洞攻击与防范方法
		一. 文件上传漏洞与WebShell的关系 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行.这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等.这种攻击方式是最为直接和有效 ... 
- WEB服务端安全---文件上传漏洞
		1.简述 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力.这种攻击方式是最直接和有效的,而且互联网中我们经常会用到文件上传功能,它本身是没有问题的,正常的业 ... 
- WEB安全性测试之文件上传漏洞
		1.漏洞描述:文件上传漏洞,是指可以利用WEB上传一些特定的文件包含特定代码如(<?php phpnfo;?> 可以用于读取服务器配置信息.上传成功后可以点击) 上传漏洞是指用户上传了一个 ... 
- web安全之文件上传漏洞
		成因: 当文件上传时,若服务端脚本语言未对上传的文件进行严格验证和过滤,若恶意用户上传恶意的 脚本文件时,就有可能控制整个网站甚至是服务器,这就是文件上传漏洞. 权限: 1. 后台权限:登陆了后台,可 ... 
随机推荐
- Redis集群环境下的键值空间监听事件实现方案
			一直想记录工作中遇到的问题和解决的方法,奈何没有找到一方乐土,最近经常反思,是否需要记录平时的点滴,后台还是决定下定决心记录一些,以便以后用到的时候找不着,实现这样的一个功能主要也是业务所需要的. 需 ... 
- Go组件学习——database/sql数据库连接池你用对了吗
			1.案例 case1: maxOpenConns > 1 func fewConns() { db, _ := db.Open("mysql", "root:roo ... 
- unity_实用小技巧(const)
			const:声明某个常量字段或常量局部变量. 注意:常量字段和常量局部变量不是变量并且不能修改 利用const管理游戏标签 例如: //管理所有标签 public const string Pl ... 
- MSIL实用指南-逻辑运算
			逻辑运算有三种:与.或.非.实现它们可以用位运算指令And.Or.Not等三个指令.它们的使用方法和位运算一致. 完整的程序如下: using System; using System.Reflect ... 
- 各IDE代码自用开头模板
			Pycharm #!/usr/bin/env python # -*- coding: utf-8 -*- # @version : 1.0 # @Time : ${DATE} ${TIME} # @ ... 
- 【qt】【QString的诸多操作】
			前言: qt的数据处理莫过于QString,QString对于字符串的操作多的数不胜数.下面博主就将常用的罗列出来,一起分享. 正文: 下面的操作具体为:追加,查找,删除,提取,分割,各种转换等等. ... 
- NLP(十一) 提取文本摘要
			gensim.summarization库的函数 gensim.summarization.summarize(text, ratio=0.2, word_count=None, split=Fals ... 
- 洛谷P2216: [HAOI2007]理想的正方形 单调队列优化DP
			洛谷P2216 )逼着自己写DP 题意: 给定一个带有数字的矩阵,找出一个大小为n*n的矩阵,这个矩阵中最大值减最小值最小. 思路: 先处理出每一行每个格子到前面n个格子中的最大值和最小值.然后对每一 ... 
- Codeforces Round #483 (Div. 2)  B. Minesweeper
			题目地址:http://codeforces.com/contest/984/problem/B 题目大意:扫雷游戏,给你一个n*m的地图,如果有炸弹,旁边的八个位置都会+1,问这幅图是不是正确的. ... 
- CodeM 资格赛 B 可乐 思维
			分析: 我们假设购买一种可乐p瓶,我们可以得到期望:p*(m/n*a[i]+(n-m)/n*b[i]),由这个式子我们可以看出唯一的变量是i,所以可以遍历i找出式子的最大值 #include &l ... 
