php

web安全之文件上传漏洞方法讲解

mrye 发表于 2019-06-10 22:15

web安全之文件上传漏洞方法讲解

一、文件过滤的方法

文件头校验:JPEG ==>FF D8 FF E0、PNG==>89 50 4E 47 0D 0A 1A 0A

文件类型校验:HTTP头中的content/type,互联网媒体类型,也叫做MIME类型。

HTML文档标记:        text/html;

普通ASCII文档标记:   text/html;

JPEG图片标记:        image/jpeg;

GIF图片标记:         image/gif;

js文档标记:          application/javascript;

xml文件标记:         application/xml;

 

较全的网址

https://www.runoob.com/http/http-content-type.html

文件后缀校验: .jpeg .txt .png


二、常用的绕过方法

2.1 文件头欺骗,绕过简单的waf

上传一个文件a.jpg 可能仅仅是扩展名改了,但不是真正意义上的图片,如何蒙混过关?


 就是在开始加一个gif89a              


2.2 利用filepath漏洞

上传一个a.gif文件:


抓包转到repeater里进行去改包:


               1.改变文件上传后的路径:/a.asp/


               2.改文件名称:/a.asp;.     (结合漏洞类型)


2.3 00截断

上传一个a.php抓包转到repeater里进行去改包:

 1.改filename为:a.jpg,2.改路径,aa.php (最后加个空格,方便找) 然后去Hex里找到路径,把后面的空格(20)改为00或者是直接改为a.php%00jpg,选中%00右击,去convertselection-URL-url-decode

2.4 MIME绕过

改content-type,上传一个真正的a.jpg

抓包转到repeater里进行去改包:

 把image/jpeg改为text/asp 把原本图片内容改成一句话木马

2.5 表单提交

有时网页有上传文件,却无提交按钮,在页面上右键查看元素,把这句代码加上

 <input type= "submit" value= "提交" name= "bb">


三、解析漏洞

3.1 iis 6.0解析漏洞

     (1)目录解析漏洞 /xx.asp/xx.jpg

            在网站根目录下创建一个文件夹格式 .asp,其目录内的任何扩展名的文件(常用图片马)都被iis当做asp文件来解析并执行。

    (2)文件解析 xx.asp;.jpg

            在iis6.0下,分号后面的不被解析,所以xx.asp;.jpg被解析为asp脚本得以执行。

    (3)文件类型解析 asa/cer/cdx

            iis6.0 默认的可执行文件除了asp还包含这三种asa、cer、cdx。

3.2 Apache解析漏洞

        Apache对文件的解析主要是从右到左开始判断,如果判断为不能解析的类型,则继续向左

    进行解析,如xx.php.wer.xxxxx将被解析为PHP类型(写PHP马)。


3.3 IIS 7.0/ Nginx <8.03畸形解析漏洞

    (1)在默认Fast-CGI开启状况下上传名字为xx.jpg,内容为:      

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

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

    (2)另一种Nginx文件漏洞是从左到右进行解析

        既可绕过对后缀名的限制,又可上传木马文件,因此可以上传XXX.jpg.php

3.4 .htaccess文件解析

    如果Apache中.htaccess可被执行并可被上传,那么可以尝试在.htaccess中写入:       

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

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

3.5 配合操作系统文件命令规则

(1)上传不符合windows文件命名规则的文件名

test.asp.

test.asp(空格)

test.php:1.jpg

test.php:: $DATA

会被windows系统自动去掉不符合规则符号后面的内容。

评论 (0人参与

最新评论

暂无评论
mrye


文章:233
推荐阅读
   1483   
mrye   2019-06-08 23:18:11
   1190   
mrye   2019-06-08 23:05:03
   1756   
   1917