zoukankan      html  css  js  c++  java
  • PHP代码审计理解(二)----齐博CMS7.0文件覆盖

    0x00 前言

    因为我是跟着视频操作的,这回真的没理解为什么定位到了这个存在漏洞的文件。。。 /do/fujsarticle.php 

    因为没有前文,所以这里无法分析这个$FileName为什么可以$_GET传值,此处我只看结果。

    后来看的时候发现可以逆推过来,应该是本来有哪个功能用到fujsarticle.php文件,这里就不纠结了。

    0x01 操作

    在包含全局配置文件前后输出一下这个变量$FileName。

    可以看到文件包含后的变量被改写了,test.php写入成功。可以看到do文件夹下会生成一个文件,内容与你选的type有关。

     

    意思就是可以任意生成文件,但不能自定义其内容,并且是覆盖性质的,[w]写入新文件。这里就可以去覆盖掉重要的配置文件,使其失去初始化配置。比如说,我们的数据库初始文件。

    C:phpStudyPHPTutorialWWWqibo_v7datamysql_config.php
    <?php
    /**
    * 以下变量需根据您的服务器说明档修改
    */
    $dbhost = 'localhost';        // 数据库服务器(一般不必改)
    $dbuser = 'root';            // 数据库用户名
    $dbpw = 'root';                    // 数据库密码
    $dbname = 'qibo7';                // 数据库名
    $pre='qb_';                // 网站表区分符 
    $database = 'mysql';        // 数据库类型(一般不必改)
    $pconnect = 0;                // 数据库是否持久连接(一般不必改)
    $dbcharset = 'gbk';        // 数据库编码,如果出现网页乱码,你可以尝试改为gbk或latin1或utf8或big5,即可解决
    ?>

    可以看到,这样操作后,数据库连接受到破坏,已经不能正常访问网站。

    http://192.168.79.147/qibo_v7/do/fujsarticle.php?type=pic&FileName=../datamysql_config.php

     我们可以打开该配置文件看看

    接下来是写入变量,重新写入数据库连接的变量。

    http://192.168.79.147/qibo_v7/index.php?dbhost=localhost&dbuser=root&dbpw=root&dbname=qibo7&pre=qb_&database=mysql&pconnect=0&dbcharset=gbk

    这里是设置连接数据库的ip和口令,及数据库名,类型等。

    理论上来讲我们是可以用自己建的数据库去替代,但是这在漏洞利用中有些鸡肋,因为,即便如此,你也无法获得他本来的数据。

    然鹅!这真的不是很可用的漏洞,你在访问其他的页面时还得每次都赋值,因为这些变量不会写到配置文件中去。

    以上,此次学习又让我长见识了啊~

  • 相关阅读:
    MapReduce 中的Map后,sort不能对中文的key排序
    wordCount程序中MapReduce工作过程分析
    使用eclipse的快捷键自动生成的map或者reduce函数的参数中:“org.apache.hadoop.mapreduce.Reducer.Context context”
    "hadoop namenode -format"命令的作用和影响的文件
    伪分布模式下使用java接口,访问hdfs
    MySQL Server 5.5.44免安装版配置详解
    quartz Cron表达式一分钟教程
    【转载】jQuery弹出层始终垂直居中于当前屏幕
    LeetCode 151 翻转字符串里的单词
    LeetCode 43 字符串相乘
  • 原文地址:https://www.cnblogs.com/foe0/p/12048352.html
Copyright © 2011-2022 走看看