zoukankan      html  css  js  c++  java
  • 代码审计笔记①任意文件删除漏洞

    任意文件删除漏洞

    思路①:因为post传进来值之后还会和后面的$file['savename']进行拼接,所以需要把

    尝试:通过seay审计系统查找出了漏洞,构造post请求抓包尝试,最终失败,原因是 post 请求的数据最终是不会被带入执行的,

    下面是源代码:

                        //删除原图
                        //unlink('./Upload/'.session('gongsiid').'/'.$_POST['fybh'].'/'.$file['savename']   );
                        //echo $_POST['fybn'];
                        unlink('./Upload/'.session('gongsiid').'/'.'../../../../../../../../../../../../../../../../../2/3.txt');
                        rename($newpathbig,'./Upload/'.session('gongsiid').'/'.$_POST['fybh'].'/'.$file['savename']);
                        //返回给AJAX

     思路②:直接全局查找unlink和 @unlink 函数        必须查找到没有过滤的,并且在句尾拼接的才可以

    比如说这种就可以
    @unlink('$filename'.$_GET['a']);
    下面这种它就不可以,因为你无论传什么值,你也没法把后面的 $filename 过滤掉,即使你传
    ?a = ../../../../../../../C/windows/windows.ini ); # 这种也不行,具体传进来为什么不能执行我也没弄懂,可能是传进来的是字符串,如果都能执行的话,仔细想想,可能就乱套了
    @unlink($_GET['a'].'$filename');
  • 相关阅读:
    忠告20岁的年轻人
    mac电脑好用的工具总结
    idea 配置
    mac 安装mysql5.7.28附安装包
    国内外优秀网站收集
    MySql 数据库、数据表操作
    Java 高效代码50例
    Mac 修改版本号
    sql 语句系列(删库跑路系列)[八百章之第七章]
    sql 语句系列(更新系列)[八百章之第六章]
  • 原文地址:https://www.cnblogs.com/zhangqianxi/p/13963087.html
Copyright © 2011-2022 走看看