关键信息 1. 受影响的产品 POS Pharmacy System 2. 漏洞文件 /pharma/pharma/main/products.php 3. 漏洞类型 跨站脚本(XSS) 4. 根因 products.php 直接从数据库输出产品信息到页面,未对特殊字符进行转义,导致存储型 XSS 漏洞。 5. 影响 攻击者可注入恶意脚本窃取用户 Cookie、篡改产品数据、删除信息或执行其他管理操作。 存储在数据库中的恶意脚本可能被所有访问 products.php 的用户执行,造成广泛和持久的危害。 6. 描述 存储型跨站脚本(XSS)漏洞存在于 products.php 页面。该页面从数据库中检索产品信息,并直接输出到 HTML 表格中,未进行任何 HTML 特殊字符转义。攻击者可利用产品添加/编辑功能将恶意 JavaScript 注入数据库字段。当其他用户访问 products.php 页面时,注入的恶意脚本将被解析并执行,导致安全风险如会话劫持、敏感信息泄露、钓鱼攻击或权限滥用。 7. 漏洞细节和 PoC 首先,通过点击“Add Product”按钮进入 product.php 页面。在产品名称字段中输入恶意载荷 。然后提交表单保存产品信息。最后,访问 products.php 页面,如果弹出窗口显示当前域名,则确认存在 XSS 漏洞。 8. 建议修复 输出编码处理:对于从数据库读取并输出到 HTML 页面的所有用户可控数据,使用 函数进行转义。 输入验证增强:在产品添加/编辑页面上对用户输入执行严格验证,限制特殊字符输入,并仅允许合法字符。 全局过滤机制:推荐封装一个通用输出过滤函数(如 escape_output()),统一处理项目中所有动态输出内容,避免遗漏。