关键信息 1. 受影响的产品 产品名称: Responsive Blog Site 供应商主页: https://code-projects.org/responsive-blog-site-in-php-with-source-code/ 2. 漏洞文件 漏洞文件: /resblog/blogadmin/blogs_view.php 软件链接: https://code-projects.org/responsive-blog-site-in-php-with-source-code/ 3. 漏洞类型 漏洞类型: 跨站脚本 (XSS) 4. 根因 根因: blogs_view.php 直接从数据库输出信息到页面,未对特殊字符进行转义,导致存储型 XSS 漏洞。 5. 影响 影响: 攻击者可以注入恶意脚本,窃取访客的 Cookie(包括登录凭证)并伪造身份登录系统;执行钓鱼攻击等恶意操作;篡改产品数据、删除信息或执行其他管理操作;恶意脚本存储在数据库中,所有访问/reslog/index.php 的用户可能受影响,造成广泛且持久的危害。 6. 描述 描述: 存储型跨站脚本 (XSS) 漏洞存在于 blogs_view.php 页面。该页面从数据库检索产品信息(包括 product_code、gen_name、product_name 和 supplier 字段),并通过 echo 直接输出到 HTML 表格,未进行任何 HTML 特殊字符转义。攻击者可以利用此漏洞将恶意脚本注入中间表 FORMS。当其他用户(包括管理员)访问 reslog/index.php 页面时,注入的恶意脚本将被浏览器解析和执行,导致安全风险,如会话劫持、敏感信息泄露、网页篡改或权限滥用。 7. 漏洞细节和 POC Payload: - 首先,在创建新博客帖子 (blogs_view.php) 时,在“Tags”字段中输入 并保存。 - 其次,在 reslog/index.php 页面验证 XSS 漏洞的存在,如图所示。 8. 建议修复 建议修复: - 输出编码处理:对于从数据库读取并输出到 HTML 页面的所有用户可控数据,使用 htmlspecialchars() 函数进行转义,覆盖所有直接输出字段。 - 输入验证加强:在产品添加/编辑页面对用户输入进行严格验证,限制输入的特殊字符(如 、script 等),仅允许合法字符通过白名单机制。 - 全局过滤机制:推荐封装一个通用的输出过滤函数(如 escape_output()),在项目中统一处理动态输出内容,避免遗漏。