精华内容
下载资源
问答
  • 文件上传漏洞的利用与绕过技巧
    千次阅读
    2021-10-12 09:45:44

    前言

    文件上传漏洞大多出现在可以进行文件上传的地方,如用户头像上传,文档上传处等。该漏洞是一个危害十分大的漏洞,通过文件上传,攻击者可以上传webshell并进行getshell操作,从而获得系统shell,可执行任意命令。也为后续大型木马的上传,特权提升提供了一个良好的基础。

    文件上传漏洞的一些场景

    接下来针对文件上传漏洞的一些waf过滤的场景进行说明并进行绕过和利用。

    场景一:前端js代码白名单判断.jpg|.png|.gif后缀

    在该场景下,防御的姿势是通过js代码对上传的文件后缀进行判断,如果不是.jpg|.png|.gif这三个后缀的文件则不允许上传至后台

    绕过方式:
    将带有一句话木马的文件后缀名改为xxx.jpg|png|gif,在上传处通过BurpSuite进行包拦截并改包,将文件后缀名改为php|jsp等脚本的后缀。上传成功后访问该文件的路径即可getshell。

    场景二:后端PHP代码检查Content-type字段

    在该场景下,防御的姿势是通过js代码对上传文件请求的Content-type字段进行检查,如果不是image/jpeg则不允许上传至后台

    绕过方式:
    将上传一句话木马文件的request包进行拦截,添加或修改Content-type字段为image/jpeg

    场景三:代码黑名单判断.asp|.aspx|.php|.jsp后缀

    在该场景下,防御姿势是通过后台代码对上传的文件后缀进行判断,如果是.asp|.aspx|.php|.jsp这四个后缀的文件则不允许上传

    绕过方式:
    当apache的配置文件httpd.conf中存在如下配置时:

    AddType application/x-httpd-php .php .phtml .phps .php5 .pht
    

    说明可以通过上传.phtml|.phps|.php5|.pht这些后缀名的文件,且他们都会被解析称后缀为.php的文件。所以可以尝试使用上传xxx.php5这类的文件进行绕过

    关于AddType命令的作用:

    AddType 指令
    作用:在给定的文件扩展名与特定的内容类型之间建立映射
    语法:AddType MIME-type extension [extension] …
    AddType指令在给定的文件扩展名与特定的内容类型之间建立映射关系。MIME-type指明了包含extension扩展名的文件的媒体类型。
    AddType 是与类型表相关的,描述的是扩展名与文件类型之间的关系。AddType 是与类型表相关的,描述的是扩展名与文件类型之间的关系。

    场景四:代码扩大黑名单判断

    在该场景下,防御姿势是通过后台代码对上传的文件后缀进行判断,如果是.php|.php5|.php4|.php3|.php2|.php1|.html|.htm|.phtml|.pht|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|.pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf"这些后缀的文件则不允许上传

    绕过方式——htaccsess:

    使用.htaccsess文件进行绕过

    .htaccsess文件的作用:

    .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能IIS平台上不存在该文件,该文件默认开启,启用和关闭在httpd.conf文件中配置。

    .htaccsess文件的使用条件:

    mod_rewrite模块开启。
    AllowOverride All
    

    构造.htaccess文件,内容如下:

    AddType application/x-httpd-php .jpg
    

    这里代码的意思可以让 .jpg后缀名文件格式的文件名以php格式解析,因此达到了可执行的效果。所以我们可以把要上传的php文件的后缀名改为.jpg格式从而绕过

    绕过方式——大小写绕过:

    如果在黑名单中没有针对大小写进行限制,则可以进行大小写绕过,如将.php后缀改为.PhP|.PHP后缀

    场景五:一些复合判断

    在该场景下,防御姿势除了基本的黑/白名单外,还包括了对一些特定字符的限制,具体情况可以进行fuzz或者有条件可以进行代码审计

    空格、点绕过(windows)

    当接收文件时,后台代码的限制条件中没有去除文件名首尾的空格(或是没有对.进行拆分)时,可以利用windows系统的命名规则进行绕过:如,将文件后缀改为xxx.phpxxx.php.xxx.php .

    在windows下xx.jpg[空格] 或xx.jpg.这两类文件是不允许存在的,若这样命名,windows会默认去除空格或点

    还有些情况具体就需要看代码逻辑,比如如果代码只删除一次点且只去除一次首尾空格,在windows环境下就可以用xxx.php. .进行绕过

    ::$DATA绕过(windows)

    ::$DATA绕过同样利用了windows的特性

    NTFS文件系统包括对备用数据流的支持。这不是众所周知的功能,主要包括提供与Macintosh文件系统中的文件的兼容性。备用数据流允许文件包含多个数据流。每个文件至少有一个数据流。在Windows中,此默认数据流称为:$ DATA。

    即在php+windows的环境下,如果文件名+::$DATA会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名。

    双写绕过

    当防御的代码中存在将某些特定后缀进行空字符替换时(如利用str_ireplace函数将.php|.jsp等后缀替换为空字符)

    这时候可以将后缀双写,即将php改成pphphp

    %00截断

    00截断绕过方式需要满足以下条件

    php版本小于5.3.4
    php.ini的magic_quotes_gpc为OFF状态
    使用move_uploaded_file函数且参数受用户控制
    

    此时move_uploaded_file函数遇到0x00会截断

    可以将上传文件后缀改为xx.php%00进行绕过

    %0a绕过

    %0a绕过方式需要满足以下条件

    Apache httpd 2.4.0至2.4.29
    FileMatch正则匹配.php|.php5等后缀
    

    该版本apache会通过$匹配后缀,而$匹配时会正则匹配某字符串结尾或以换行符结尾的一个字符串,即php[换行符]会被匹配成php

    可以将上传文件后缀改为xx.php%0a进行绕过

    图片马绕过

    window的cmd命令制作图片马

    copy 1.jpg /b + shell.php /a shell.jpg
    

    或是利用其他图片马生成器生成

    二次渲染绕过

    判断图片格式后用image函数进行二次渲染

    绕过方式:
    抓包找到二次渲染中未被改动的地方,将一句话马插入该地方,.jpg|.png|.gif三种文件格式不同,所以构造马的方式也不同

    注:gif文件最简单,直接用ue等16进制编辑器就可以改,但是jpg和png需要特殊的构造脚本

    先将一张正常的jpg图片上传,上传后将服务器存储的二次渲染的图片保存下来。
    将保存下来经过服务器二次渲染的那张jpg图片,用此脚本进行处理生成payload.jpg
    然后再上传payload.jpg
    

    条件竞争

    当上传文件逻辑为:先move_uploaded_file函数将上传文件临时保存,再进行判断,如果不在白名单里则unlink删除,在的话就rename重命名。此时会存在条件竞争

    绕过方法:
    用burp开启两个intruder模块,一个用于重复上传,另一个用于重复访问。会有一定记录返回执行结果

    /.绕过

    move_uploaded_file函数参数可控时,可以尝试/.绕过,因为该函数会忽略掉文件末尾的/.,所以可以构造save_path=1.php/.,这样file_ext值就为空,就能绕过黑名单,而move_uploaded_file函数忽略文件末尾的/.可以实现保存文件为.php

    更多相关内容
  • 什么是黑名单? 黑名单: 定义上传文件格式,如"php、jsp、zip、rar、tar等格式",如果上传文件触发该规则,一律拦截不允许上传

    黑名单验证 [验证文件后缀名]

    说到黑名单,就不得不提与之相对应的白名单,接着往下看。

    后缀名检测:判断文件后缀名的检测方式。

    后缀名检测的两种方式:黑名单与白名单。

    黑名单:
    	定义上传的文件格式,如"php、jsp、zip、rar、tar等格式",如果上传文件触发该规则,一律拦截不允许上传。
    
    白名单:
    	定义上传的文件格式,如"jpg、jpeg、png、gif、ico等格式",如果上传文件不符合该规则,同样一律拦截不允许上传。
    

    黑名单的绕过处理方法

    采用后缀名的绕过方法 如大小写、加空格、符号点、系统特性"::$DATA"绕过

    黑名单绕过 upload-labs-Pass-05 [大小写绕过]

    upload-labs-Pass-05 的过关技巧是黑名单验证,在黑名单的 $deny_ext 变量中限定了了后缀名,但并没有过滤大小写,所以可以利用大小写的格式绕过。

    在 upload-labs 的 Pass-06 关卡,当我们尝试上传后缀名为 “.php” 的格式文件时,会提示 “此文件类型不允许上传”,可以尝试使用大小写的方式去绕过 “.PHP”、“pHP”、“PHp”、"PhP"等


    在这里插入图片描述


    利用大小写绕过


    在这里插入图片描述


    黑名单绕过 upload-labs-Pass-06 [加空格绕过]

    upload-labs-Pass-06 的过关技巧也是黑名单验证,在黑名单的 $deny_ext 变量中限定了后缀名,且过滤大小写,但是并没有过滤空格的格式,所以可以利用加空格的格式绕过。

    在 upload-labs 的 Pass-06 关卡,当我们尝试上传后缀名为 “.php” 的格式文件时,会提示 “此文件类型不允许上传”,可以尝试抓包,在文件名后缀加空格的方式绕过。[空格在系统命名上并不会有影响,但是却干扰到了代码的检测,所以上传成功后仍然是php后缀文件]


    在这里插入图片描述


    在这里插入图片描述


    黑名单绕过 upload-labs-Pass-07 [加点绕过]

    upload-labs-Pass-06 的过关技巧也是黑名单验证,在黑名单的 $deny_ext 变量中限定了后缀名,且过滤大小写。我们可以尝试在文件名后缀加符号点绕过,这样的目的是为了混淆黑名单的校验。黑名单中只校验了".php",并没有校验".php.",所以在匹配黑名的时候无法匹配,从而绕过。


    在这里插入图片描述


    在这里插入图片描述


    黑名单绕过 upload-labs-Pass-08 [利用WIN系统特性::$DATA绕过]

    关于"WIN系统特性::$DATA"

    在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名
    
    例如:"phpinfo.php::$DATA"Windows会自动去掉末尾的::$DATA变成"phpinfo.php"
    
    上传到服务器的文件在Windows中会自动去掉::$DATA
    

    综上所述,该方法仅适用于WIN服务器。


    在这里插入图片描述


    在这里插入图片描述


    黑名单绕过 upload-labs-Pass-09 [组合空格&点绕过]

    这里我们先分析一下 upload-labs-Pass-09 的源码


    在这里插入图片描述


    抓包修改绕过


    在这里插入图片描述


    综合上述的几个案例,我们可以总结出黑名单绕过的几个方法

    大小写-文件命名
    
    加空格-系统特性
    
    符号点-系统特性
    
    ::$DATA-系统特性
    
    组合空格&点-系统特性
    

    这里简单说一下,黑名单的方式已经无数次被证实了其不可靠性。这里强烈推荐白名单的方式。

    在判断文件类型时,可以结合MIME Type、后缀检查、文件内容检查等方式。此外,对于图片马的处理,可以使用压缩函数或者risize函数,在处理图片的同时破坏掉图片中可能包含的HTML代码。

    展开全文
  • 文件上传漏洞

    千次阅读 2022-02-22 20:48:29
    文件上传漏洞 上传文件时,如果未对上传的文件进行严格的验证和过滤,就容易造成文件上传漏洞,上传脚本文件(包括asp、aspx、php、jsp等) 恶意上传行为可能导致网站甚至整个服务器被控制。恶意的脚本文件又被...

    文件上传

    文件上传是现代互联网常见的功能,允许用户上传图片、视频、及其他类型文件,向用户提供的功能越多,Web受攻击的风险就越大。

    文件上传漏洞

    • 上传文件时,如果未对上传的文件进行严格的验证和过滤,就容易造成文件上传漏洞,上传脚本文件(包括asp、aspx、php、jsp等)
    • 恶意上传行为可能导致网站甚至整个服务器被控制。恶意的脚本文件又被称为WebShell,WebShell具有强大的功能,如查看服务器目录、服务器中文件、执行系统命令等。

    文件上传漏洞成因

    文件上传漏洞的成因(复杂),一方面,Web 应用开放了文件上传功能,并且对上传的文件没有进行足够的限制;另一方面,程序开发部署时候,没有考虑到系统特性和过滤不严格;再者就是,攻击者通过Web服务器解析漏洞绕过限制,导致可以上传任意文件。

    文件上传漏洞危害

    • 文件上传漏洞最直接的威胁就是上传任意文件,包括恶意脚本、可执行程序等。
    • 如果Web 服务器所保存上传文件的可写目录具有执行权限,那么就可以直接上传后门文件,导致网站沦陷。
    • 如果攻击者通过其他漏洞进行提权操纵,拿到系统管理权限,那么直接导致服务器沦陷。
    • 同服务器下的其他网站无一幸免,均会被攻击者控制。

    文件上传利用

    • Web 服务器要开启文件上传功能,并且上传api(接口)对外“开放”(Web用户可以访问);
    • Web 用户对目标目录具有可写权限,甚至具有执行权限,一般情况下,Web 目录都有执行权限。
    • 要想完美利用文件上传漏洞,就是上传的文件可以执行,也就是Web 容器可以解析我们上传的脚本,无论脚本以什么样的形式存在。

     小马

    • 小马通常指一句话木马,因为其代码量较小,就是一句简单的代码。
    • 一句话木马短小精悍,功能强大,是为了绕过waf的检测,虽然出现了无数的变形,但本质是不变的:木马的函数执行了我们发送的命令。
    • 通过GET、POST、COOKIE三种方式提交数据
    • 用$_GET[' ']、$_POST[' ']、$_COOKIE[' ']接收传递的数据,并把接收的数据传递给一句话木马中执行命令的函数,进而执行命令。
    PHP:<?php @eval($_REQUST['cmd']);?>
    ASP:<%eval request("cmd")%>
    ASPX:<%@ Page Language="Jscript"%>
          <%eval(Request.Item["cmd"],"unsafe";)%>

    经典的一句话木马大多都只有两个部分,一个是可以执行代码的函数部分,个是接收数据的部分。

    例如 <?php @eval($_POST['cmd']);?>

    eval就是执行命令的函数,$_POST[ ‘cmd’]就是接收的数据。eval函数把接收的数据当作PHP代码来执行。这样我们就能够让插入了一句话木马的网站执行我们传递过去的任意PHP语句。

    大马 

    之所以叫大马,是因为与小马(一句话木马)区分开,并且代码比较大,但是功能比较丰富。同样,大马有很多种脚本格式,其功能基本相同。每个团队都有自己的定制大马。

    文件上传检测与绕过

    客户端检测与绕过

    检测原理

    • 客户端(Client):或称为用户端(前端),与服务器相对应。由于客户端对于文件上传漏洞的防御是通过JS代码实现的,所以客户端检测与绕过也称为JS检测与绕过。
    • 调用JS的selectFlle()函数,先将文件名转换为小写,然后通过substr获取文件名最后一个点号后面的后缀(包括点号)进行判断。

    绕过方法 

    由于后端PHP代码没有对文件做任何检测,所以只要绕过前端JS的校验就可以上传WebShell。

    • 删除浏览器事件

    • 利用BurpSuite抓包修改文件后缀名

    • 构造上传表单

    <form enctype="multipart/form-data" action="http://168.2.5.100/UpFileImage" method="post">  
    
    Upload a new file:<br>  
    
    <input type="file" name="file" size="50"><br>  
    
    <input type="submit" value="Upload">  
    
    </form>

    服务器检测与绕过

    对于文件上传,只从Web 前端进行检测显然防护不足,那么服务器端就特别重要了。一般服务端检测包括以下几个方面:

    • 后缀名检测与绕过
    • MIME类型检测与绕过
    • 文件内容检测与绕过
    • 00截断检测与绕过
    • 条件竞争检测与绕过

    后缀名检测与绕过 

    检测原理

    通过函数pathinfo()获取文件后缀,将后缀转为小写后判断是不是php。

     绕过方法1:黑名单--大小写绕过

      绕过方法1:黑名单--名单列表绕过(黑名单之外的后缀名)

    有些中间件允许解析其他文件后缀名,如asa、cer之类的或在httpd.conf配置文件中,配置如下代码,则能解析php、php3、phtml文件。所以上传一个后缀名为php3、phtml的文件即可。

     

       绕过方法1:黑名单--Windows特性

    一些特殊的文件名命名方式在Windows下是不被允许的,利用BurpSuite抓包修改后缀名,绕过验证后上传文件,windows会自动去掉后面添加的,但要注意Unix/Linux系统没有这个特性。比如:

    • 末尾的点(.)        【1.php.】
    • 空格( )        【1.php 】
    • ::$DATA        【1.php::$DATA】

     绕过方法2:白名单

    白名单绕过需要配合文件包含漏洞或解析漏洞

    绕过方法3 :.htaccess文件攻击

    • .htaccess文件是Apache服务器中的分布式配置文件(IIS中不存在该文件)该配置文件会覆盖Apache 服务器的全局配置,作用于当前目录及其子目录。
    • 如果一个Web 应用允许上传.htaccess 文件,那就意味着攻击者可以更改Apache的配置,这是十分危险。
    • 在httpd.conf配置文件中,AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件;如果设置为AⅡ,那么所有在.htaccess文件里有的指令都将被重写,即允许.htaccess文件覆盖掉Apache的配置。

    •  将内容符合php语法规则的文件当作PHP文件解析

    •  匹配文件名中的关键字

    比如:当文件名[info.php.png] 中包含关键字[.php],并且.htaccess 文件内容如下,info.php.png 中的代码会被执行。

    • 匹配文件名 
    <FilesMatch "sxf">
        setHandler application/x-httpd-php
    </FilesMatch>

     上传一个htaccess文件 可以让服务器将符合PHP语法规则的文件当作php解析

    绕过方法4

    结合Apache文件解析机制,从右向左开始解析文件后缀,若后缀名不可识别则继续判断直到遇到可解析的后缀为止。

    MIME类型检测与绕过 

    MIME(Multipurpose Internet Mail Extensions)是描述消息内容类型的因特网标准。MIME消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。常见的MIME 类型如下:

    文件扩展名Mime-Type
    .js  application/x-javascript
    .html text/html
    .jpgimage/jpeg
    .pngimage/png
    .pdf application/pdf

    检测原理

    判断$_FILES["file"]["type"]是不是图片格式(image/gif、image/jpeg、image/pjpeg),不是则不允许上传。在HTTP 协议中,使用Content-Type 字段表示文件的MIME 类型。 $_FILES["file"]["type"]的值是从请求数据包中Content-Type中获取。

     绕过方法

    通过抓取数据请求包,上传php文件时,Content--Type值是applcation/octer-stream,上传jpg格式的文件时Content-Type值是imaag/jpeg。可修改文件类型进行绕过。

     文件内容检测与绕过

    检测原理

    利用getimagesize()函数获取图片的宽高等信息,如果上传的不是图片,那么则获取不到信息。

    文件相关信息检测

    检测图像文件相关信息

     文件幻数检测

    • JPG :FF D8 FF E0 00 10 4A 46 49 46
    • GIF :47 49 46 38 39 61(GIF89a)
    • PNG:89 50 4E 47

     

    绕过方法

    在脚本文件开头补充图片对应头部值,或在图片后写入脚本代码

    制作图片马

    • 在图片后写入脚本代码
    • copy 1.jpg/b+1.php/a 2.jpg

    参数/b指定以二进制格式复制、合并文件,用于图像类/声音类文件
    参数/a指定以ASCⅡ格式复制、合并文件,用于txt等文档类文件

     图片马上传的漏洞无法解析,需要配合文件解析或者文件包含漏洞

     00截断检测与绕过

    检测原理

    截断漏洞出现的核心就是chr(0),这个字符不为空(NuⅡ),也不是空字符(" "),更不是空格。当程序在输出含有 chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致了漏洞产生。由于00代表结束符,PHP会把00后面的所有字符删除。
    截断条件:PHP版本小于5.3.4、magic_quotes_gpc 为OFF状态

    GET方式

    POST方式

     条件竞争检测与绕过

    检测原理

    些网站文件检测逻辑是先允许上传任意文件,然后检查文件内容是否包含可执行脚本,如果包含则删除。这里使用sleep()函数来模拟判断是否含有脚本所需要的时间。

    绕过方法

    利用成功上传到删除文件的时间差,上传一个.php文件,在未删除之前立即访问,则会自动生成一个新php文件,新文件不会被删除。

    <?php 
    fputs(fopen('../shell.php','w'),'<?php phpinfo();?>');
    ?>

    防御方法

    文件上传的目录设置为不可执行

           判断文件类型

           使用随机数改写文件名和文件路径

           单独设置文件服务器的域名

           使用安全设备

    展开全文
  • 声明:文中出现的ip为练习靶场,本文仅供学习,旨在学习web安全,不允许任何侵权行为WebShell与WebShell管理工具文件上传漏洞概述文件上传漏洞绕过文件上传漏洞防御一、WebShell与WebShell管理工具什么是...

    声明:文中出现的ip为练习靶场,本文仅供学习,旨在学习web安全,不允许任何侵权行为

    WebShell与WebShell管理工具

    文件上传漏洞概述

    文件上传漏洞绕过

    文件上传漏洞防御

    一、WebShell与WebShell管理工具

    什么是WebShell

    webshell,简称网页后门,简单的来说它是运行在web应用之上的远程控制程序。

    webshell其实就是一张网页,由php、jsp、asp、asp.net等这类web应用程序语言开发,但webshell并不具备常见网页的功能,例如登录、注册、信息展示功能,一般会具备文件管理、端口扫描、提权、获取系统信息等功能。拥有较完整功能的webshell,我们一般称为大马。功能简易的webshell称为小马。除此之外还存在一句话木马、菜刀马、脱裤马等等的名词,是对于webshell功能或者特性的简称。

    webshell之php一句话木马

    @eval($_POST[x]); ?>

    获取POST请求参数中x的值,例如POST请求中传递x=phpinfo(); 那么 $_POST[x] 就等同于 phpinfo();

    @是错误控制运算符,当将 @ 放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

    eval() 将字符串当做PHP代码去执行。例如eval(‘phpinfo();’) 其中 phpinfo(); 会被当做PHP代码去执行。

    我们通过该webshell,传递任意PHP代码,让其去执行,从而达到任意代码执行。

    webshell管理工具

    中国蚁剑 是一款开源的跨平台网站管理工具,也是一款webshell管理工具,它主要面向与合法授权的渗透测试安全人员以及进行常规操作的网站管理员。中国蚁剑的核心代码模板均改自于伟大的中国菜刀。

    二、文件上传漏洞概述

    什么是文件上传漏洞

    文件上传漏洞是指文件上传功能没有对上传的文件做合理严谨的过滤,导致用户可以利用此功能,上传能被服务端解析执行的文件,并通过此文件获得执行服务端命令的能力。

    三、文件上传漏洞绕过

    1. 前端js限制绕过

    (1)开启插件noscript

    (2)改webshell文件后缀名上传,利用burpsuite抓包改回文件后缀名

    2. 服务端MIME 类型验证绕过

    利用burpsuite抓包,将报文中的Content-Type改成允许的类型

    Content-Type: image/gif

    Content-Type: image/jpg

    Content-Type: image/png

    afedfc4b7470039545a0f4601c26e36e.png

    256d35aa8360400d8e07238be531ce19.png

    3. 服务器文件内容验证-文件头

    图片格式往往不是根据文件后缀名去做判断的。文件头是文件开头的一段二进制,不同的图片类型,文件头是不同的。文件头又称文件幻数。

    常见文件幻数:

    JPG:FF D8 FF E0 00 10 4A 46 49 46

    GIF :47 49 46 38 39 61 (GIF89a)

    PNG:89 50 4E 47

    (1)第一种方法:文件前缀加GIF89a

    上传一张将后缀名为png改成gif出现如下结果

    f9b8a71355088c389dd6a7e0b61ea60a.png

    这说明服务端对文件内容文件头进行了检测

    fbe4ced03bc50ec84f22491e7b18af27.png

    (2)第二种方法:找一个gif图片,在最后把木马加上

    2d041826520c74560439972f42e958e8.png

    访问上传成功之后的文件名

    75d6d16eb6c3b8d5f8c88acae7b5bddb.png

    使用 antSword 连接

    d159359f219cd4aa5f6382d0c7819a92.png

    4. 服务端文件扩展名验证-黑名单绕过

    后缀名大小写绕过:服务端没有将后缀名转换为统一格式进行对比,导致可以上传后缀为pHp的文件,又因为windows操作系统大小写不敏感,所以 .pHp 扔回被当成PHP文件解析。

    重写绕过:服务端将黑名单的后缀名替换为空,但仅进行一次。上传.phphpp后缀,替换php一次为空,则后缀为.php。

    特殊可解析后缀绕过:黑名单规则不严谨,在某些待定环境中某些特殊后缀名仍会被当做PHP文件解析。php|php2|php3|php4|php5|php6|php7|pht|phtm|phtml基于debian和ubuntu的apt-get安装apache,默认对于文件解析如下。d77512ae4d868540b2b5a1e0fa56b6db.png

    .htaccess 绕过

    在 apache里,这个文件作为一个配置文件,可以用来控制所在目录的访问权限以及解析设置。即是,可以通过设置可以将该目录下的所有文件作为php文件来解析

    .htaccess可以写入apache配置信息,改变当前目录以及子目录的Apache配置信息。

    配置上允许.htaccess生效

    Apache开启rewrite模块

    Apache配置文件为AllowOverride All(默认为None)

    < FilesMatch ''sec.jpg" >

    SetHandler application/x-httpd-php

    < /FilesMatch >

    sec.jpg 即可以php脚本解析

    5. 利用windows特性

    6231193029f23778156df103b9dfb220.png

    a423387367473203af3a206a5067950b.png

    warning :未经授权,不得转载

    声明:本文旨在为学习网络信息安全的同学提供指引帮助,维护网络空间的安全

    有问题的小伙伴请在下方留言,喜欢就点个赞吧;关注我,带你一起写bug

    知乎:叄贰壹

    简书:带只拖鞋去流浪

    展开全文
  • PHP文件上传漏洞

    千次阅读 2018-11-01 21:53:01
    PHP文件上传漏洞: 在PHP版本小于5.3.4的move_uploaded_file()函数中,存在CVE-2006-7243这个漏洞。 -形成原因:move_uploaded_file()底层源码用c编写,判断上传文件路径的时候使用了char指针,C语言中char...
  • 一、简介:   这里主要对文件包含相关漏洞进行了汇总,方便各位看官进行浏览。 二、文件包含漏洞汇总 ... 【文件包含漏洞】——文件包含漏洞进阶_文件包含漏洞绕过 【文件包含漏洞】——文件包含漏洞防御 ...
  • 文件上传漏洞2

    千次阅读 2022-03-22 16:32:24
    检查后缀上传漏洞>客户端js检查 漏洞原理 有些系统只是在客户端使用js对上传文件后缀进行检查,服务端没有进行检查。由于客户端的js用户可以禁用,修改等等,导 致可以绕过客户端的检测,上传不合法文件。...
  • 文件后缀绕过攻击是服务器代码中限制了某些后缀文件不允许上传,但是有些apache是允许其他文件后缀的,例如在http.conf中,如果配置有如下代码,则能够解析php和phtml文件AddType application/x-httpd-...
  • 文件上传漏洞—扩展名绕过

    千次阅读 2018-08-03 17:50:04
    利用上传漏洞可以直接得到webshell,危害非常高导致该漏洞的原因在于代码作者没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。 实验目的 通过修改文件名,绕过黑名单,上传...
  • 刷完了upload-labs,对文件上传漏洞有了些许认识,在此做个小结与记录
  • 浅谈文件上传漏洞

    千次阅读 2022-04-16 10:13:28
    一、文件上传漏洞的原理 二、 ## 1. 2. 总结 提示:这里对文章进行总结: 例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。 ...
  • 当文件上传点没有对上传的文件进行严格的验证和过滤时,就容易造成任意文件上传,包括上传动态文件(asp,php,jsp)...如果上传的目标目录没有限制执行权限,导致所上传的动态文件可以正常执行,就导致了文件上传漏洞
  • 文件上传后缀名字典

    2021-11-21 14:52:13
    文件上传后缀名字典 php php2 php3 php4 php5 pHp pHp2 pHp3 pHp4 pHp5 html htm phtml pht Html Htm pHtml asp aspx asa asax ashx asmx cer aSp aSpx aSa aSax aScx aShx aSmx cEr jsp jspa jspx jsw jxv jspf ...
  • 文件上传漏洞总结

    2021-07-19 10:56:06
    文件上传漏洞 原理 用户或者管理员上传图片,或者其它文件。如果没有限制上传类型或者限制不严格被绕过,就有可能造成文件上传漏洞。 上传了可执行文件如木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得...
  • 0x01 文件上传漏洞文件上传漏洞顾名思义就是用户上传一个可执行的脚本文件,获得了执行服务器端命令的能力。通常,文件上传是getshell最常用、最直接的方式了。但是,文件上传本身是一个正常的业务需求,因此问题...
  • 文件上传漏洞、解析漏洞总结1.文件上传漏洞是什么文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而...
  • 目录漏洞描述漏洞危害常见上传点和绕过方式上传点后缀绕过解析漏洞常见绕过类型脑图漏洞在系统中的差异IIS 5.x/6.0解析漏洞Nginx 解析漏洞Apache 解析漏洞靶场环境准备理解文件上传Pass-1-js检查【前端绕过】Pass-2-...
  • 文件上传漏洞(File Upload)

    千次阅读 2021-02-28 15:25:49
    简介File Upload,即文件上传漏洞,通常是由于对用户上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马,病毒,恶意脚本等获取服务器的webshell权限,并进而攻击控制服务器,因此文件上传...
  • 文件上传漏洞及常见的利用方式

    千次阅读 2021-01-08 21:11:25
    文章目录概述“文件上传”漏洞与“WebShell”文件上传漏洞的原理“文件上传漏洞”被利用植入“WebShell”后的常见安全问题:上传检测流程概述上传服务器文件命名规则常见的检测方式“文件上传漏洞”-本地验证检测绕...
  • 文件上传漏洞详解

    千次阅读 2022-03-21 20:44:27
    文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传” 本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件...
  • 文件上传漏洞原理 常用防御方式和常用防御方式的绕过 一、前端JS检测 二、MIME检测 三、白名单检测 %00截断 0x00截断 四、黑名单绕过 文件拓展名绕过 .htaccess文件绕过 .user.ini.绕过 apache解析漏洞 ...
  • 文件上传漏洞小总结

    千次阅读 2019-10-28 21:13:45
    一、什么是文件上传漏洞 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本...
  • 文件上传漏洞原理‍‍‍ 1.文件上传功能 网站Web应用都有一些文件上传功能,比如文档、图片、头像、视频上传,当上传功能的实现代码没有严格校验上传文件的后缀和文件类型,此时攻击者就可以上传一个webshell到一...
  • 文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接。但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识。俗话说,知己知彼方能百战不殆,因此...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,739
精华内容 5,095
热门标签
关键字:

文件上传漏洞后缀