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');
  • 相关阅读:
    Hibernate优缺点
    Struts优缺点
    Problem M
    Problem K
    Problem K
    Problem Q
    Problem Q
    Problem F
    Problem F
    哈夫曼树
  • 原文地址:https://www.cnblogs.com/zhangqianxi/p/13963087.html
Copyright © 2011-2022 走看看