zoukankan      html  css  js  c++  java
  • 文件上传 文件解析漏洞详解

    Nginx+php配置错误导致的解析漏洞

    cgi.fix_pathinfo =1
    该配置在php.ini文件中设置,现在是默认注释掉了

    利用:http://x.x.x.x/test.jpg/test.php nginx发现后缀是php便交给php去处理,而/test.jpg/test.php不存在,于是对路径进行修复,去掉/test.php,然后对test.jpg进行php解析

    另外新版php还增加了“ security.limit_extensions ” 限制了解析文件的后缀 只能为.php,否则返回
    Access denied 。

    Nginx空字节代码执行漏洞

    在fast-cgi关闭的情况下,nginx版本:0.5., 0.6., 0.7-0.7.65, 0.8-0.8.37,nginx在图片后附加php代码然后通过访问
    test.jpg%00.php 即可执行php代码
    原理: URL里面在遇到%00空字节时与FastCGI处理不一致

    Nginx配置不当目录穿越

    如果绝对路径"/home/"的URL映射是网站目录"/files/",配置写成了"/files"

    location /files {
        alias /home/;
    }
    

    就可以访问"/files../",穿越路径,访问到绝对路径根目录"/"下的文件列表

    Nginx文件名逻辑漏洞(CVE-2013-4547)

    受影响的nginx版本: 0.8.41至1.4.3和1.5.7之前的1.5.x

    正常上传一个附加代码的图片"test.jpg",访问时后面+"空格"+""+".php",即让图片作为php文件解析

    "/test.jpg .php"
    

    Apache未知扩展名解析漏洞

    Apache对文件的解析主要是从右到左开始判断并进行解析,如果判断为不能解析的类型,则继续向左进行解析,如test.php.xyz将被解析为PHP类型。

    另外使用module模式与php结合的所有版本 apache存在未知扩展名解析漏洞,使用fastcgi模式与php结合的所有版本apache不存在此漏洞
    我在本地实验moudle模式结合,依然可以执行成功

    参考: https://www.cnblogs.com/milantgh/p/5116955.html

    Apache换行解析漏洞 (CVE-2017-15715)

    其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.phpx0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略

    php不常见后缀名

    php可识别的后缀名如下:

    php、php3、php4、php5、phpt、phtml

    利用该条件即可绕过黑名单检查

    htaccess文件解析

    htaccess文件生效条件:

    1. Apache的配置文件中,要写上: AllowOverride All

    2. Apache要加载mod_Rewrite模块。加载该模块,需要在Apache的配置文件中写上:LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

    需要注意Apache可能有多个配置文件,后加载的配置文件会覆盖先加载的配置文件中的配置

    .htaccess文件可以修改MIME类型,这使得该.htaccess文件所在目录及其子目录中的后缀为.xxx的文件被Apache当做php文件。

     AddType application/x-httpd-php xxx
    

    或者:

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

    该语句会让Apache把shell.jpg文件解析为php文件

    iis 6.0解析漏洞

    影响范围iis<=6.0

    1. .asp或者.asa结尾的目录下所有文件都被iis当做asp文件来解析
    2. 文件解析 xx.asp;.jpg 在iis6.0下,分号后面的不被解析,所以xx.asp;.jpg被解析为asp脚本得以执行。 默认的可执行文件后缀还有三个".asa"、".cer"、".cdx"

    IIS 7.0&7.5畸形解析漏洞

    默认fast-cgi开启状况下,在一个文件路径后面加上/xx.php会将原来的文件解析为php文件

    上传个xx.jpg小马,然后访问xx.jpg/.php 或者 或xx.jpg/abc.php ,该jpg文件就会被当做php文件解析

    widows文件命名特性

    1. 大小写不敏感
    2. 自动去除文件名末尾的. 和空白符
    3. 0x7F—0xFE 范围间的字符如果要是出现在文件名的(不包括文件夹名)最后一位,会被去除。即创建名为test.asp + chr(0x7F)的文件时,实际上会创建一个"test.asp"文件,最后一个ascii码为0x7F的字符会被去除

    参考:

    1. https://www.jianshu.com/p/1ccbab572974
    2. https://www.jianshu.com/p/7275cd4d23a5
    3. https://www.cnblogs.com/milantgh/p/5116955.html
  • 相关阅读:
    排序链表
    给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。
    给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
    快速排序之三路快排
    双向链表实现
    删除链表重复元素
    链表是否是回文串
    链表逆序
    排序之归并排序
    线性表之链表实现
  • 原文地址:https://www.cnblogs.com/GH-D/p/11975714.html
Copyright © 2011-2022 走看看