某导航站系统代码审计
字数 1606 2025-08-23 18:31:18

六零导航页(LyLme Spage)系统安全审计报告

系统概述

六零导航页(LyLme Spage)是一款基于PHP+MySQL开发的上网导航和搜索入口Web应用,主要功能包括:

  • 后台添加链接
  • 自定义搜索引擎
  • 用户提交网站申请功能

漏洞分析

1. 反射型XSS漏洞

漏洞位置apply/index.php中的url参数处理

漏洞详情

  1. url参数通过$_GET['url']获取并传递给get_head()函数
  2. include/function.php中的get_head()函数中,url参数被直接放入返回数组
  3. 虽然使用了json_encode()处理,但/被转义,仍可通过特定方式绕过

利用方式

  • 直接XSS:http://localhost/apply/index.php?url=<script>alert(1)</script>
  • 绕过方式:使用``

修复建议

  1. url参数进行严格的URL格式验证
  2. 对输出内容进行HTML实体编码
  3. 设置合适的Content Security Policy(CSP)

2. SSRF漏洞

漏洞位置include/function.php中的get_curl()函数

漏洞详情

  1. url参数最终传递给get_curl()函数
  2. 函数内部使用cURL发起请求,无任何限制
  3. 虽然无直接回显,但可通过延时判断内网服务

利用方式

  • 探测内网服务:通过请求延时判断内网服务是否存在
  • 攻击内网系统:向内部系统发起请求

修复建议

  1. 限制请求的目标域名/IP范围
  2. 禁用危险协议(如file://)
  3. 设置请求超时时间
  4. 对返回内容进行严格过滤

3. 存储型XSS漏洞

漏洞位置:后台审核页面admin/apply.php

漏洞详情

  1. 用户提交的数据经过daddslashes()strip_tags()处理
  2. 后台审核时apply_icon被直接拼接到img标签
  3. 可构造不完整HTML标签绕过过滤

利用方式

  • 构造payload:" onload=alert(document.cookie)>
  • 当管理员查看申请时会触发XSS

修复建议

  1. 对所有输出到HTML的属性值进行HTML编码
  2. 使用白名单方式验证图标URL
  3. 对img标签的src属性进行严格校验

4. 远程代码执行(RCE)漏洞

漏洞位置admin/ajax_link.php中的文件解压功能

漏洞详情

  1. 系统允许从远程下载zip文件并解压
  2. 结合include/file.php中的文件上传功能
  3. 可上传恶意压缩包并解压到网站根目录

利用步骤

  1. 创建包含恶意代码的php文件
  2. 压缩并重命名为jpg格式
  3. 通过文件上传接口上传
  4. 触发解压功能将文件释放到web目录

修复建议

  1. 限制解压文件类型
  2. 检查压缩包内容,禁止解压php等可执行文件
  3. 设置解压目录权限
  4. 实现文件内容检查机制

安全加固建议

输入验证

  1. 对所有用户输入实施严格的白名单验证
  2. 对URL参数实施完整的URL验证
  3. 对文件上传实施内容检查而不仅是扩展名检查

输出处理

  1. 根据输出上下文(HTML, JSON, URL等)使用适当的编码
  2. 对所有动态生成的HTML属性值进行HTML编码
  3. 实现Content Security Policy

功能安全

  1. 禁用不必要的危险函数(curl_exec等)
  2. 限制文件操作的目标目录
  3. 实现操作日志记录

架构安全

  1. 将管理后台移动到非标准路径
  2. 实现完善的权限控制系统
  3. 分离用户上传目录

总结

六零导航页系统存在多处严重安全漏洞,包括XSS、SSRF和RCE等,攻击者可利用这些漏洞进行跨站脚本攻击、内网探测甚至完全控制服务器。建议开发者按照上述修复建议进行全面安全加固,特别是在用户输入验证、输出编码和文件操作安全方面需要重点改进。

六零导航页(LyLme Spage)系统安全审计报告 系统概述 六零导航页(LyLme Spage)是一款基于PHP+MySQL开发的上网导航和搜索入口Web应用,主要功能包括: 后台添加链接 自定义搜索引擎 用户提交网站申请功能 漏洞分析 1. 反射型XSS漏洞 漏洞位置 : apply/index.php 中的 url 参数处理 漏洞详情 : url 参数通过 $_GET['url'] 获取并传递给 get_head() 函数 在 include/function.php 中的 get_head() 函数中, url 参数被直接放入返回数组 虽然使用了 json_encode() 处理,但 / 被转义,仍可通过特定方式绕过 利用方式 : 直接XSS: http://localhost/apply/index.php?url=<script>alert(1)</script> 绕过方式:使用 `` 修复建议 : 对 url 参数进行严格的URL格式验证 对输出内容进行HTML实体编码 设置合适的Content Security Policy(CSP) 2. SSRF漏洞 漏洞位置 : include/function.php 中的 get_curl() 函数 漏洞详情 : url 参数最终传递给 get_curl() 函数 函数内部使用cURL发起请求,无任何限制 虽然无直接回显,但可通过延时判断内网服务 利用方式 : 探测内网服务:通过请求延时判断内网服务是否存在 攻击内网系统:向内部系统发起请求 修复建议 : 限制请求的目标域名/IP范围 禁用危险协议(如file://) 设置请求超时时间 对返回内容进行严格过滤 3. 存储型XSS漏洞 漏洞位置 :后台审核页面 admin/apply.php 漏洞详情 : 用户提交的数据经过 daddslashes() 和 strip_tags() 处理 后台审核时 apply_icon 被直接拼接到img标签 可构造不完整HTML标签绕过过滤 利用方式 : 构造payload: " onload=alert(document.cookie)> 当管理员查看申请时会触发XSS 修复建议 : 对所有输出到HTML的属性值进行HTML编码 使用白名单方式验证图标URL 对img标签的src属性进行严格校验 4. 远程代码执行(RCE)漏洞 漏洞位置 : admin/ajax_link.php 中的文件解压功能 漏洞详情 : 系统允许从远程下载zip文件并解压 结合 include/file.php 中的文件上传功能 可上传恶意压缩包并解压到网站根目录 利用步骤 : 创建包含恶意代码的php文件 压缩并重命名为jpg格式 通过文件上传接口上传 触发解压功能将文件释放到web目录 修复建议 : 限制解压文件类型 检查压缩包内容,禁止解压php等可执行文件 设置解压目录权限 实现文件内容检查机制 安全加固建议 输入验证 对所有用户输入实施严格的白名单验证 对URL参数实施完整的URL验证 对文件上传实施内容检查而不仅是扩展名检查 输出处理 根据输出上下文(HTML, JSON, URL等)使用适当的编码 对所有动态生成的HTML属性值进行HTML编码 实现Content Security Policy 功能安全 禁用不必要的危险函数(curl_ exec等) 限制文件操作的目标目录 实现操作日志记录 架构安全 将管理后台移动到非标准路径 实现完善的权限控制系统 分离用户上传目录 总结 六零导航页系统存在多处严重安全漏洞,包括XSS、SSRF和RCE等,攻击者可利用这些漏洞进行跨站脚本攻击、内网探测甚至完全控制服务器。建议开发者按照上述修复建议进行全面安全加固,特别是在用户输入验证、输出编码和文件操作安全方面需要重点改进。