zoukankan      html  css  js  c++  java
  • 渗透中 常见上传突破总汇

    1,检测javascript类型的绕过(客户端)

    通常post请求发送到web服务器,客户端javascript验证
    上传1.php弹窗说上传格式错误,只允许.jpg,.jpeg等格式的文件
    上传一句话1.php–>1.jpg 然后burp抓包1.jpg–>1.php,这样就绕过了js检测
    或者F12查看源代码,找到onsubmit=”return checkFile()”,将它删除并编辑保存。
    这个时候页面就不检测了,直接上传成功,
    或者修改允许的函数checkfile(),添加我们想上传的文件格式,也是可以上传成功的。

    2,检测MIME类型的绕过(服务端)

    服务端MIME类型检测(检测Content-Type内容),burp抓包,修改Content-Type
    Content-Type:text/plain –>php
    Content-Type:image/jpeg –>image
    上传1.jpg—>修改image/jpeg为text/plain,成功绕过。

    常见的MIME类型:
    超文本标记语言文本 .html text/html
    xml文档 .xml text/xml
    普通文本 .txt text/plain
    RTF文本 .rtf application/rtf
    PDF文档 .pdf application/pdf
    Microsoft Word文件 .word application/msword
    PNG图像 .png image/png
    GIF图形 .gif image/gif
    JPEG图形 .jpeg,.jpg image/jpeg
    au声音文件 .au audio/basic
    MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
    RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
    MPEG文件 .mpg,.mpeg video/mpeg
    AVI文件 .avi video/x-msvideo
    GZIP文件 .gz application/x-gzip
    TAR文件 .tar application/x-tar
    任意的二进制数据 application/octet-stream

    3,检测目录路径类型的绕过(服务端)

    上传1.jpg,burp进行抓包,Content-Disposition:from-data;name=”path”后面一行upload是我们保存的地址。
    现在我们将upload改为upload/1.php(空格) ,接着我们来到 Proxy->intercept->Hex找到1.php(空格)这个被修改过的代码,找到同一行的数字20,改为00 ,成功绕过

    其实跟%00截断原理类似

    4,检测文件内容的绕过(服务端)

    检测内容是否合法或含有恶意代码
    文件幻数检测
    jpg–>JFIF
    gif–>GIF89A
    PNG–>PNG
    文件相关信息检测
    常用的是getimaegsize()函数检测
    有文件头,加一些杂乱的东西,迷惑,空的地方添加木马
    文件加载检测
    API函数检测的
    一次渲染可以绕过,二次渲染就没戏绕过。

    5,检测黑名单类型的绕过(服务端)

    将危险的后缀名写到一个文件里面,禁止指着后缀名的文件执行
    文件名绕过:
    大小写组合绕过pHp,PhP,混搭绕过php1,php2,php3,php4,php5
    列表名绕过:
    cer,ashx,asa,cer,cdx,htr,绕过(黑名单可能会漏掉的)
    特殊字符绕过:
    a.asp改成a.asp_
    0x00截断绕过:
    上传1.php.jpg burp抓包改成1.php%00.jpg,或者hex–>20改成00当解析的时候,看到空格,后面的那段就不解析了
    或者upload/1.asp(空格)/上传,hex修改20–>00绕过上传
    apache解析绕过:
    help.asp.134.×2,从前向后尝试解析,直到遇到自己认识的扩展名为止。
    双扩展名解析绕过:
    apache的conf配置有AddHandler php5-script.php没有注释掉,
    则,文件名1.php.jpg就能当作php执行
    .htaccess文件攻击:
    自定义.htaccess上传,下面是内容
    <FileMatch “aaa”>
    SetHandler application/x-httpd-php
    </FileMatch>
    同目录下,上传一个aaa文件,没有扩展名,内容是一句话,这个时候就成功绕过。

    6,检测白名单类型的绕过(服务端)

    解析漏洞绕过

    iis6.0解析绕过:
    目录绕过:
    IIS6.0目录路径检测解析,文件的名字为“*.asp/xxx.jpg”同样呗解析成asp
    burp进行抓包,其中Content-Disposition:form-data;name=”path”我们把原本的 upload/ 改为 uploading/1.asp/,filename=”yijuhua.asp”修改为filename=”yijuhua.asp/1.jpg”。
    或者创建文件夹a.php里面放一句话图片1.jpg  a.php/1.jpg—>php执行
    文件绕过:
    首先我们请求 /aaa.php;xxx.jpg,从头部查找查找 “.”号,获得 .php;xxx.jpg
    查找”;”,如果有则内容截断,所以/aaa.php;xxx.jpg会当做/aaa.php进行解析,除此之外我们还有下面的构造方式绕过:a.php;.jpg,a.php;jpg–>php执行

    iis7.0/7.5解析绕过:
    在默认Fast-CGI开启的情况下上传一个文件1.jpg
    内容:<?php fputs(fopen(‘shell.php’,’w’),'<?php eval($_POST[cmd])?>’);?>
    然后访问1.jpg/.php 这样就会在同级目录下生成木马shell.php

    Nginx<8.0.3解析绕过:
    上传1.jpg—-burp修改–>1.jpg%00.php空字节绕过上传

    apache解析绕过:
    a.php.x1.x2 apache从前向后尝试解析,直到遇到自己认识的扩展名为止。

    .htaccess文件攻击:自定义.htaccess绕过
    <FileMatch “aaa”>
    SetHandler application/x-httpd-php
    </FileMatch>
    同目录下,上传一个aaa文件,没有扩展名,然后内容是“aaa”+一句话,成功绕过。

    7,自动修改后缀的绕过:

    上传php,服务端自动修改成了gif
    burp抓包,1.php–>修改成1.pphphp成功绕过

    8.双文件上传突破
    自己加上的,这个方式是在某大牛的文章里看到的,不知道原理是什么,但是经常会用到
    个人理解是两个上传口分别上传文件,服务器只过滤一个
    我比较喜欢通过改html把上传的模块copy一份,这样就会出现两个上传点~




  • 相关阅读:
    『高性能模型』轻量级网络ShuffleNet_v1及v2
    『计算机视觉』物体检测之RefineDet系列
    『计算机视觉』目标检测前沿及回顾(2018)
    『高性能模型』轻量级网络MobileNet_v2
    『流畅的Python』第14章:可迭代的对象、迭代器和生成器
    『流畅的Python』第12章:继承的优缺点
    『关键点检测』CPN:Cascaded Pyramid Network for Multi-Person Pose Estimation
    『计算机视觉』Mask-RCNN_从服装关键点检测看KeyPoints分支
    『计算机视觉』Mask-RCNN_训练网络其三:训练Model
    『计算机视觉』mini深度学习框架实现
  • 原文地址:https://www.cnblogs.com/ywffoo/p/5733112.html
Copyright © 2011-2022 走看看