AI把前端JS扒了個(gè)精光:800個(gè)隱藏接口一次性全部導(dǎo)出,再也不用手工翻代碼了
最近在一個(gè)大型SRC項(xiàng)目里我遇到一個(gè)巨無霸級的目標(biāo)——單頁面應(yīng)用Webpack打包JS文件超過20MB混淆壓縮到完全不可讀。傳統(tǒng)的手工翻源碼根本行不通我干脆寫了個(gè)腳本用AI把整個(gè)JS Bundle拆開自動(dòng)提取出所有API端點(diǎn)、請求參數(shù)、認(rèn)證方式一次性輸出了800多個(gè)后端接口。靠這份接口清單我半小時(shí)內(nèi)就發(fā)現(xiàn)了三個(gè)未授權(quán)API其中一個(gè)直接返回了全量用戶數(shù)據(jù)。今天把這套AI自動(dòng)分析JS的方法完整公開用什么工具拆包、怎么讓AI準(zhǔn)確提取API、如何批量驗(yàn)證。再也不用熬夜翻源碼了。一、為什么手工翻JS越來越不現(xiàn)實(shí)現(xiàn)代前端應(yīng)用有幾個(gè)趨勢讓傳統(tǒng)信息收集方式徹底失效打包體積爆炸Webpack、Vite等工具把所有JS、CSS、甚至圖片都打包進(jìn)幾個(gè)巨大的bundle文件動(dòng)輒十幾MB。代碼混淆與壓縮變量名被替換為單字母函數(shù)名完全不可讀字符串被編碼所有換行和空格被移除。動(dòng)態(tài)導(dǎo)入與代碼拆分很多API調(diào)用藏在懶加載的chunk里不在主bundle中更難被完整覆蓋。接口定義方式多樣化Axios、Fetch、GraphQL、gRPC-Web等混用參數(shù)構(gòu)造邏輯分散在各處。即使你用LinkFinder或JSFinder這類正則工具它們只能匹配簡單的URL模式面對復(fù)雜的封裝調(diào)用如request.post(/api/user, data)往往漏掉一大片更無法提取參數(shù)和認(rèn)證信息。手工翻JS的時(shí)代已經(jīng)結(jié)束了。AI是唯一能理解復(fù)雜代碼語義的工具。二、AI分析JS Bundle的完整工作流我的方法分三步拆包提取原始JS → AI分析提取API清單 → 自動(dòng)驗(yàn)證和分類。第一步拆包提取JS文件對于Webpack打包的應(yīng)用直接用Chrome DevTools的Sources面板可以看到原始的模塊文件但手動(dòng)導(dǎo)出太慢。我用一個(gè)Python腳本自動(dòng)化import os, re, requests from bs4 import BeautifulSoup def download_js_files(base_url): # 獲取頁面HTML提取所有JS鏈接 html requests.get(base_url).text soup BeautifulSoup(html, html.parser) js_links [script[src] for script in soup.find_all(script) if script.get(src)] # 下載所有JS文件 for link in js_links: if link.startswith(//): link https: link elif link.startswith(/): link base_url link content requests.get(link).text filename link.split(/)[-1].split(?)[0] with open(fjs_files/{filename}, w, encodingutf-8) as f: f.write(content)對于打包后的bundle需要先用source-map-explorer或unwebpack等工具還原模塊結(jié)構(gòu)但這一步不是必須的。直接把原始bundle扔給AI它也能處理。第二步用AI提取API端點(diǎn)這是核心步驟。我用的Prompt經(jīng)過了多次優(yōu)化最終版本如下你是一個(gè)資深安全審計(jì)專家。請分析以下JavaScript代碼提取所有后端API調(diào)用的信息。對于每個(gè)API請?zhí)峁?1. HTTP方法GET/POST/PUT/DELETE等 2. 完整的URL路徑如果是相對路徑請結(jié)合上下文還原絕對路徑 3. 請求參數(shù)query string或request body中的字段名和類型 4. 認(rèn)證方式是否在請求頭中攜帶Cookie、Authorization、Token等 5. 該API可能的業(yè)務(wù)功能描述 6. 在代碼中的調(diào)用位置文件名和大致行號 要求 - 不要遺漏任何API調(diào)用包括那些隱藏在被封裝函數(shù)里的調(diào)用。 - 對于動(dòng)態(tài)拼接的URL嘗試推理出完整的模式。 - 以JSON格式輸出結(jié)果。 - 如果沒有發(fā)現(xiàn)API返回空J(rèn)SON。 代碼片段 {code_chunk}我把每個(gè)JS文件切分成8K大小的chunk避免超過token限制然后用DeepSeek API逐一分析。關(guān)鍵技巧把常見的請求庫Axios、Fetch、request等的封裝函數(shù)定義一并提供給AI幫助它理解調(diào)用鏈。import openai, json, os def analyze_js(file_path): with open(file_path, r, encodingutf-8) as f: code f.read() # 分塊 chunk_size 8000 chunks [code[i:ichunk_size] for i in range(0, len(code), chunk_size)] all_apis [] for chunk in chunks: response openai.ChatCompletion.create( modelgpt-5.5, messages[{role: user, content: prompt.format(code_chunkchunk)}], temperature0.1, response_format{type: json_object} ) apis json.loads(response.choices[0].message.content) all_apis.extend(apis) return all_apis第三步批量驗(yàn)證拿到API清單后還需要驗(yàn)證哪些接口可以被未授權(quán)訪問。我寫了個(gè)Burp插件自動(dòng)把AI提取的端點(diǎn)導(dǎo)入Intruder用不同的認(rèn)證token空、低權(quán)限、高權(quán)限分別測試對比響應(yīng)碼和內(nèi)容。重點(diǎn)標(biāo)記出返回200且包含敏感數(shù)據(jù)的接口。實(shí)際測試中這套流程處理一個(gè)20MB的JS bundle大約需要20分鐘成本大約0.5美元。它比手工翻代碼快幾十倍而且準(zhǔn)確率極高——我手工驗(yàn)證了AI提取的前100個(gè)接口只有3個(gè)是誤報(bào)把前端路由誤判為API漏報(bào)只有1個(gè)。三、實(shí)戰(zhàn)案例從一個(gè)JS Bundle到三個(gè)高危漏洞以最近測試的一個(gè)SaaS平臺(tái)為例。信息收集該平臺(tái)使用Next.js主JS bundle大小18MB。我用上述腳本下載了所有JS文件共12個(gè)。AI分析AI從這些文件里提取出了812個(gè)API端點(diǎn)涵蓋了用戶、訂單、支付、管理后臺(tái)等所有模塊。部分結(jié)果示例{ method: GET, path: /api/v2/users/{id}/profile, params: [id], auth: Bearer token, description: 獲取用戶個(gè)人資料 }發(fā)現(xiàn)漏洞在清單中我注意到三個(gè)接口/api/internal/export_users—— 沒有出現(xiàn)在前端路由中顯然是隱藏的內(nèi)部接口。/api/v1/admin/orders—— 參數(shù)userId可傳入任意值且無權(quán)限校驗(yàn)。/api/v3/upload—— 上傳文件接口接受Content-Type: multipart/form-data但后端不校驗(yàn)文件類型。驗(yàn)證結(jié)果接口1直接返回全量用戶數(shù)據(jù)18萬條無需認(rèn)證。接口2可以通過遍歷userId獲取所有用戶的訂單詳情包括收貨地址。接口3可上傳任意WebShell拿到服務(wù)器權(quán)限。三個(gè)漏洞打包提交總賞金超過2萬。如果沒有AI自動(dòng)提取這些接口可能永遠(yuǎn)藏在那20MB的亂碼里。四、工具與技巧如何讓AI更準(zhǔn)確使用更強(qiáng)的模型我測試了Claude Sonnet 4.5、DeepSeek-Chat和GPT-5.5其中GPT-5.5對混淆代碼的理解最好。本地模型如CodeLlama 34B也能用但準(zhǔn)確率略低。為常見框架定制Prompt如果你的目標(biāo)大量使用Axios可以在Prompt里加入Axios的用法示例告訴AI如何解析.get()、.post()的參數(shù)。處理動(dòng)態(tài)URL對于/api/${env}/users這樣的動(dòng)態(tài)拼接AI通常會(huì)輸出模式/api/{env}/users。可以進(jìn)一步搜索代碼中的env變量定義還原可能的值。結(jié)合Source Map如果目標(biāo)應(yīng)用提供了Source Map文件.js.map先用工具還原源碼再讓AI分析效果更好。增量分析與去重一個(gè)API可能在多個(gè)chunk中出現(xiàn)需要根據(jù)URLMethod去重合并參數(shù)信息。五、防御建議不要信任客戶端隱藏對于開發(fā)者不要在JS中保留任何內(nèi)部API的路徑。后端接口設(shè)計(jì)應(yīng)遵循“除非公開否則不可見”的原則。對管理類API加嚴(yán)格的認(rèn)證和授權(quán)不依賴“沒人知道這個(gè)URL”來保證安全。定期審查前端代碼檢查是否泄露了敏感接口。可用類似的AI工具自動(dòng)掃描。對于安全測試者將AI輔助JS分析納入常規(guī)滲透流程尤其是面對大型SPA應(yīng)用時(shí)。提取后的API清單可以導(dǎo)入到Y(jié)AML文件中作為后續(xù)自動(dòng)化掃描的種子。注意API參數(shù)的組合邏輯——許多漏洞出現(xiàn)在參數(shù)組合而非單一接口。六、寫在最后AI沒有魔法但它把原先需要幾天幾夜的枯燥勞動(dòng)壓縮到了幾十分鐘。滲透測試的核心競爭力正在從“能熬夜翻代碼”轉(zhuǎn)變?yōu)椤澳茉O(shè)計(jì)出高效的AI工作流”。如果你還在手工從JS里挖接口不妨試試讓AI代勞——你會(huì)發(fā)現(xiàn)原來那些藏得再深的未授權(quán)API在AI面前都是透明的。嚴(yán)正聲明本文所述技術(shù)僅用于合法授權(quán)的安全測試所有案例均已脫敏。未經(jīng)授權(quán)分析他人網(wǎng)站的前端代碼可能違反相關(guān)服務(wù)條款請務(wù)必在授權(quán)范圍內(nèi)進(jìn)行安全研究。遵守法律守住底線。

相關(guān)新聞

基于Electron+Vue3構(gòu)建跨平臺(tái)桌面工具箱:集成圖片音視頻處理與AI開發(fā)工具

基于Electron+Vue3構(gòu)建跨平臺(tái)桌面工具箱:集成圖片音視頻處理與AI開發(fā)工具

在日常自媒體內(nèi)容創(chuàng)作和開發(fā)工作中,我們常常需要穿梭于多個(gè)工具之間:圖片壓縮、格式轉(zhuǎn)換、視頻剪輯、音頻提取、AI對話、代碼片段管理……工具雖多,卻分散各處,切換繁瑣,效率大打折扣。你是否也渴望有一個(gè)集大成的“瑞…

2026/8/4 4:02:47 閱讀更多
HTML5列表、表格與表單的現(xiàn)代Web開發(fā)實(shí)踐

HTML5列表、表格與表單的現(xiàn)代Web開發(fā)實(shí)踐

1. HTML5列表、表格與表單核心概念解析作為一名從業(yè)十年的前端開發(fā)者,我經(jīng)常遇到新手在HTML基礎(chǔ)結(jié)構(gòu)上栽跟頭。列表、表格和表單這三個(gè)看似簡單的元素,實(shí)際上構(gòu)成了Web內(nèi)容組織的骨架系統(tǒng)。不同于div這類通用容器,它們具有明確的語義價(jià)值——…

2026/8/4 4:02:47 閱讀更多
Java使用Apache POI批量導(dǎo)出Excel圖片:原理、實(shí)現(xiàn)與性能優(yōu)化

Java使用Apache POI批量導(dǎo)出Excel圖片:原理、實(shí)現(xiàn)與性能優(yōu)化

1. 項(xiàng)目概述:從Excel單元格到獨(dú)立圖片文件的跨越在日常的數(shù)據(jù)處理與報(bào)表生成工作中,我們常常會(huì)遇到一個(gè)看似簡單卻頗為棘手的需求:如何將Excel文件中精心嵌入的圖表、形狀或圖片,批量、高質(zhì)量地導(dǎo)出為獨(dú)立的圖片文件?無…

2026/8/4 3:52:47 閱讀更多
以“AI原生+全球化”戰(zhàn)略引領(lǐng)跨境支付產(chǎn)業(yè)升級,連連數(shù)字再度獲國際權(quán)威認(rèn)可

以“AI原生+全球化”戰(zhàn)略引領(lǐng)跨境支付產(chǎn)業(yè)升級,連連數(shù)字再度獲國際權(quán)威認(rèn)可

近日,國際權(quán)威財(cái)資管理媒體《企業(yè)財(cái)資人》雜志(Corporate Treasurer)正式公布2026年度CorporateTreasurer Awards獲獎(jiǎng)名單。連連數(shù)字憑借在跨境支付領(lǐng)域的技術(shù)創(chuàng)新能力、全球化服務(wù)網(wǎng)絡(luò)以及面向客戶的全鏈路數(shù)智化資金解決方案優(yōu)勢&#xff0…

2026/8/4 5:02:49 閱讀更多
C#類型檢查與轉(zhuǎn)換:is和as操作符詳解

C#類型檢查與轉(zhuǎn)換:is和as操作符詳解

1. 深入理解C#類型檢查與轉(zhuǎn)換機(jī)制在C#開發(fā)中,類型檢查與轉(zhuǎn)換是最基礎(chǔ)卻又最容易被忽視的核心概念。is和as這兩個(gè)操作符看似簡單,但在實(shí)際開發(fā)中卻有著截然不同的使用場景和行為特性。作為.NET工程師必備的基礎(chǔ)知識,它們經(jīng)常出現(xiàn)在初級到中級的…

2026/8/4 5:02:49 閱讀更多
暴力美學(xué)動(dòng)漫巔峰標(biāo)準(zhǔn)解析:從《劍風(fēng)傳奇》到《咒術(shù)回戰(zhàn)》的多元維度

暴力美學(xué)動(dòng)漫巔峰標(biāo)準(zhǔn)解析:從《劍風(fēng)傳奇》到《咒術(shù)回戰(zhàn)》的多元維度

如果你在搜索引擎里輸入“暴力美學(xué)動(dòng)漫”,大概率會(huì)看到《異邦人:無皇刃譚》、《劍風(fēng)傳奇》、《咒術(shù)回戰(zhàn)》甚至《電鋸人》等作品的名字。這些作品都以其獨(dú)特的視覺沖擊和情感張力,在觀眾心中留下了深刻烙印。但當(dāng)我們談?wù)摗氨┝γ缹W(xué)”時(shí)&#…

2026/8/4 5:02:49 閱讀更多
插花晶圓通俗講解(生產(chǎn)計(jì)劃對接封測必懂)

插花晶圓通俗講解(生產(chǎn)計(jì)劃對接封測必懂)

一句話說清是什么插花晶圓 把不同地方零散的合格裸 Die,重新 "拼" 到同一張空白晶圓上,湊成一整片去封裝。正常晶圓:一整張 Wafer,全是同一款產(chǎn)品、同一批次的 Die,整整齊齊。 插花晶圓:相當(dāng)于 …

2026/8/4 5:02:49 閱讀更多
Unity離線語音識別實(shí)戰(zhàn):基于Whisper.unity的集成、優(yōu)化與多平臺(tái)部署指南

Unity離線語音識別實(shí)戰(zhàn):基于Whisper.unity的集成、優(yōu)化與多平臺(tái)部署指南

1. 項(xiàng)目概述:為什么Unity離線語音識別是下一個(gè)必爭之地如果你正在開發(fā)一款需要語音交互的Unity應(yīng)用,比如教育軟件、車載助手、AR/VR游戲或者任何需要在無網(wǎng)絡(luò)環(huán)境下工作的工具,那么“離線語音識別”這個(gè)功能點(diǎn),很可能就是你當(dāng)前最…

2026/8/4 4:52:48 閱讀更多
清華大學(xué)重磅EST:植物自導(dǎo)電閃蒸焦耳熱600°C/2600°C兩步法!稀土超積累植物秒級轉(zhuǎn)化為CeO?-石墨烯電催化劑!

清華大學(xué)重磅EST:植物自導(dǎo)電閃蒸焦耳熱600°C/2600°C兩步法!稀土超積累植物秒級轉(zhuǎn)化為CeO?-石墨烯電催化劑!

通訊作者:鄧兵、劉建國通訊單位:清華大學(xué)DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清潔能源技術(shù)與電子器件不可或缺的核心原料,然而傳統(tǒng)提取方式依賴能耗高、排放大的采礦與強(qiáng)…

2026/8/4 0:01:30 閱讀更多
貴州師范大學(xué)JCIS:混合焓調(diào)控設(shè)計(jì)PtCoNiCuCr高熵合金!ORR半波電位0.89 V/質(zhì)量活性2.4倍Pt/C!

貴州師范大學(xué)JCIS:混合焓調(diào)控設(shè)計(jì)PtCoNiCuCr高熵合金!ORR半波電位0.89 V/質(zhì)量活性2.4倍Pt/C!

研究背景質(zhì)子交換膜燃料電池(PEMFCs)因其高能量轉(zhuǎn)換效率和清潔零排放特性備受關(guān)注,然而陰極氧還原反應(yīng)(ORR)動(dòng)力學(xué)遲緩、鉑催化劑成本高昂且耐久性不足的問題嚴(yán)重制約了其商業(yè)化進(jìn)程。將 Pt 與 3d 過渡金屬合金化可調(diào)控…

2026/8/4 0:01:30 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書,視頻號上,賺錢從來沒有這么容易過! 支持本地語音模型chatTTS,fasterwhisper,…

2026/8/3 7:44:46 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發(fā)過的QQ空間說說,那些記錄青春的文字…

2026/8/3 12:53:38 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號分配電路板。該型號(0100-02186)的核心特點(diǎn)如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號路由與分配功能。連接控制…

2026/8/3 19:34:52 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/3 19:34:54 閱讀更多