小皮面板安装步骤:
不推荐使用小皮面板,因为后续漏洞需要使用 PHP 5.2.17,而小皮面板无法安装该版本。
- 下载 Xhcms,并解压到 PHPStudy 的 web 路径下。 下载链接:https://www.lanzoux.com/izeFjfxbxah
- 在小皮面板中创建网站并添加数据库。
- 访问 www.xhcms.com/install 进行安装。
PHPStudy 2018 安装步骤:
下载 Xhcms,解压到 PHPStudy 的 web 路径下。访问站点的 install 目录,例如:http://127.0.0.1/www.xhcms.com/install/
0x02 代码审计
使用 Seay 代码审计系统: 新建项目,选择 Xhcms 源码,选择自动审计,点击开始。
2.1 文件包含
/index.php 和 /admin/index.php
代码分析:
- 单一入口模式,所有页面都通过 index.php 访问。
- 错误报告关闭。
- 通过 $_GET[‘r’] 接收文件名,将其包含到 files 目录下。
问题:
- 可以使用 ../ 实现路径穿越,但后缀是固定的 .php。
- 读取其他文件需要满足条件:PHP 版本 = 5.2.17、Virtual Directory Support = enable。
示例: 在网站的 WWW 下放一个文件 111.txt,内容为 <?php phpinfo();?>
。
00截断利用条件:
magic_quotes_gpc = off
- PHP 版本小于 5.3.4
Payload:
?r=../111.txt...
(此处由于 addslashes() 函数导致不可用)?r=../111.txt/./././././././...
2.2 SQL 注入
/files/content.php
代码分析:
- 通过 $_GET[‘cid’] 接收参数。
- 使用 addslashes() 进行转义。
- 将参数拼接到查询语句中,执行后抛出错误。
问题:
- 存在注入漏洞,可以通过报错注入。
Payload:
http://127.0.0.1/www.xhcms.com/?r=content&cid=15
/admin/files/adset.php
代码分析:
- 未对参数进行过滤直接拼接到 SQL 中。
Payload:
http://127.0.0.1/www.xhcms.com/admin/?r=editcolumn&type=1&id=1' and (extractvalue(1,concat(0x7e,(select USER()),0x7e))) and'
2.3 任意用户登录
登录页面 SQL 注入: 未进行参数过滤,存在注入漏洞。
任意用户登录: 接收 POST 参数,未过滤用户输入,存在风险。
/inc/checklogin.php: 检查 COOKIE 中的 user 值,未进行验证。
3.1 XSS
后台存储型 XSS: 在 /admin/files/adset.php 存在漏洞,未过滤输入,可能触发 XSS。
反射型 XSS: 在 /files/contact.php 的 page 参数中未进行过滤,可能触发 XSS。
4.1 CSRF
未对删除等危险操作进行 token 验证,可能存在 CSRF 漏洞。
5.1 文件上传
未发现文件上传漏洞,仅误报。
结论
Xhcms 存在严重的安全漏洞,包括文件包含、SQL 注入、XSS、CSRF 等,建议及时修复以确保系统安全性。
暂无评论内容