某国外旅游cms代码审计——适合初学者练手
字数 1000 2025-08-09 22:00:34

某国外旅游CMS代码审计教学文档

0x00 概述

本文档针对某国外旅游CMS系统进行代码审计教学,适合初学者学习常见的Web漏洞原理及审计方法。该系统存在多种安全漏洞,包括SQL注入、XSS(跨站脚本攻击)和文件操作相关漏洞。

0x01 环境准备

  • 代码下载

    • 地址:https://wwe.lanzoui.com/iShKJqualmj
    • 密码:9d1b
  • 测试环境

    • Web服务器(如Apache/Nginx)
    • PHP环境
    • 数据库(如MySQL)

0x02 SQL注入漏洞

0x02.1 漏洞位置

/view_package.php 文件

0x02.2 漏洞分析

// 示例代码(推测)
$id = $_GET['id'];
$sql = "SELECT * FROM packages WHERE id='$id'";
// 直接拼接用户输入到SQL语句中,未做任何过滤或预处理

0x02.3 漏洞验证POC

http://192.168.10.248/?page=view_package&id=c4ca4238a0b923820dcc509a6f75849b' AND 5829=5829-- aaa

0x02.4 修复建议

  1. 使用预处理语句(PDO或mysqli)
  2. 对输入进行严格过滤
  3. 使用最小权限原则设置数据库账户

0x03 XSS漏洞

0x03.1 反射型XSS

漏洞位置

/admin/index.php

漏洞分析

// 示例代码(推测)
$page = $_GET['page'];
$page = str_replace(['/', '_'], '', $page); // 仅替换/和_
echo $page; // 直接输出未过滤的用户输入

漏洞验证POC

'-prompt(1)-'

0x03.2 存储型XSS

漏洞位置

  1. /classes/Master.php - 数据存储
  2. /admin/inquiries/index.php - 数据展示

漏洞分析

// Master.php中
$date = $_POST['date']; // 未过滤直接存储

// inquiries/index.php中
echo $inquiry['date']; // 从数据库取出后直接输出

漏洞验证POC

<script>alert(document.cookie)</script>

0x03.3 修复建议

  1. 对所有输出进行HTML实体编码
  2. 使用Content Security Policy (CSP)
  3. 设置HttpOnly标志的cookie
  4. 输入验证和过滤

0x04 文件操作漏洞

0x04.1 任意文件删除

漏洞位置

/classes/Master.php

漏洞分析

// 示例代码(推测)
$path = $_GET['path'];
unlink($path); // 直接使用用户提供的路径删除文件

漏洞验证

返回"success"即表示成功

0x04.2 任意文件上传

漏洞位置

/classes/Users.php

漏洞分析

// 示例代码(推测)
// 无任何文件类型、内容检查
move_uploaded_file($_FILES['file']['tmp_name'], $target_path);

0x04.3 修复建议

  1. 文件删除:

    • 限制可删除的目录范围
    • 验证用户权限
    • 使用白名单机制
  2. 文件上传:

    • 检查文件类型(MIME类型和扩展名)
    • 重命名上传文件
    • 存储在非Web可访问目录
    • 设置文件大小限制
    • 扫描文件内容

0x05 综合防护建议

  1. 实施输入验证和输出编码
  2. 使用预处理语句防止SQL注入
  3. 实施最小权限原则
  4. 定期进行安全审计
  5. 保持系统和组件更新
  6. 实施日志记录和监控

0x06 总结

本CMS系统存在典型的安全漏洞,适合初学者学习代码审计的基本方法。通过分析这些漏洞,可以理解常见Web安全问题的成因和防护措施。建议开发者遵循安全编码规范,实施纵深防御策略。

某国外旅游CMS代码审计教学文档 0x00 概述 本文档针对某国外旅游CMS系统进行代码审计教学,适合初学者学习常见的Web漏洞原理及审计方法。该系统存在多种安全漏洞,包括SQL注入、XSS(跨站脚本攻击)和文件操作相关漏洞。 0x01 环境准备 代码下载 : 地址:https://wwe.lanzoui.com/iShKJqualmj 密码:9d1b 测试环境 : Web服务器(如Apache/Nginx) PHP环境 数据库(如MySQL) 0x02 SQL注入漏洞 0x02.1 漏洞位置 /view_package.php 文件 0x02.2 漏洞分析 0x02.3 漏洞验证POC 0x02.4 修复建议 使用预处理语句(PDO或mysqli) 对输入进行严格过滤 使用最小权限原则设置数据库账户 0x03 XSS漏洞 0x03.1 反射型XSS 漏洞位置 /admin/index.php 漏洞分析 漏洞验证POC 0x03.2 存储型XSS 漏洞位置 /classes/Master.php - 数据存储 /admin/inquiries/index.php - 数据展示 漏洞分析 漏洞验证POC 0x03.3 修复建议 对所有输出进行HTML实体编码 使用Content Security Policy (CSP) 设置HttpOnly标志的cookie 输入验证和过滤 0x04 文件操作漏洞 0x04.1 任意文件删除 漏洞位置 /classes/Master.php 漏洞分析 漏洞验证 返回"success"即表示成功 0x04.2 任意文件上传 漏洞位置 /classes/Users.php 漏洞分析 0x04.3 修复建议 文件删除: 限制可删除的目录范围 验证用户权限 使用白名单机制 文件上传: 检查文件类型(MIME类型和扩展名) 重命名上传文件 存储在非Web可访问目录 设置文件大小限制 扫描文件内容 0x05 综合防护建议 实施输入验证和输出编码 使用预处理语句防止SQL注入 实施最小权限原则 定期进行安全审计 保持系统和组件更新 实施日志记录和监控 0x06 总结 本CMS系统存在典型的安全漏洞,适合初学者学习代码审计的基本方法。通过分析这些漏洞,可以理解常见Web安全问题的成因和防护措施。建议开发者遵循安全编码规范,实施纵深防御策略。