test

原理

将可执行文件上传到服务器,在服务器端解析执行,从而控制服务器

校验方法及绕过

前端(客户端)

burp抓包修改

后端(服务端)

content-type:

抓包修改

文件头检测

加文件头 GIF89a(gif图的文件头)
或制作图片马

黑名单,白名单

  1. 大小写,复写

  2. 扩展名:

    1
    2
    3
    4
    jsp jspx jspf
    asp asa cer aspx
    php php php3 php4 pht
    exe exee
  3. %00截断
    条件 php < 5.3.4 magic_quotes_gpc off状态
    %00 截断在 GET 中被 url 解码之后是空字符。但是在 POST 中 %00 不会被 url 解码,所以只能通过 burpsuite 修改 hex 值为 00 (URL decode)进行截断。

  4. .htaccess
    仅限于当前目录和子目录的配置文件
    先上传htaccess后上传一句话 一直显示连接失败
    破案:文件名必须是.htaccess (要欺骗系统)

    1
    2
    3
    4
    <FilesMatch "yjh"> //即匹配文件名中包含 yjh 的文件 
    SetHandler application/x-httpd-php
    </FilesMatch>
    //也可匹配路径 类似这样/var/www/html/web/upload
    1
    AddType application/x-httpd-php .png

配合特殊解析漏洞

  1. lls 6.0
    iis6.0:
    当建立*.asa,.asp格式的文件夹时,其目录下的任意文件都会被IIS当做asp文件解析。
    5)当上传的文件为
    .asp;1.jpg时,IIS6.0同样以ASP脚本来执行。
    Apache 1x或2x:
    当apache遇见不认识的后缀名会依次从右往左解析,例如:1.php.rar。
    不认识rar就向前解析,直到他认识的后缀名。
    PHPCGI(Nginx)(这个不是phpCGI独有的漏洞有时候在IIS也会出现):
    当上传1.jpg之后。访问1.jpg/1.php。此时的1.jpg会被当做php来解析。

防御手法

..?

  1. 制作图片马
    copy 1.jpg/b+2.txt/a 3.jpg
    GIF89a