中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用泄露的NPM_TOKEN訪問項目私有倉庫

發布時間:2021-12-24 11:17:01 來源:億速云 閱讀:197 作者:柒染 欄目:網絡管理

本篇文章為大家展示了如何利用泄露的NPM_TOKEN訪問項目私有倉庫,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

下面講述了作者在目標站點的JS腳本中發現了NPM_TOKEN和私有倉庫鏈接,然后利用該NPM_TOKEN,結合.npmrc格式請求,訪問到了目標站點相關的NPM項目私有倉庫。

發現過程

最近,我選擇了一個處理效率和支付獎勵相對較高的漏洞測試項目,寄希望于能從其中發現一些高危漏洞。我先是在目標站點中嘗試了模板注入(template injection),之后又測了一遍IDOR,都一無所獲。于是,我就下載目標站點中的JS文件看看能否發現一些信息泄露問題。

首先,我用BURP Suite pro來把目標站點的JS文件提取下載為一個文件,這樣的方式不算太直觀友好,然后我又用以下腳本來把它們分隔成單獨文件:

cat urls.txt | xargs -I{} wget "{}"
# Assuming urls are clean i.e. they don't have any extra parameters in the end
# if the url is like this : https://storage.googleapis.com/workbox-cdn/releases/5.1.2/workbox-cacheable-response.prod.js?v=123122
# Then you need to cut the part after '?' like the following
cat urls.txt | cut -d"?" -f1 | xargs -I{} wget "{}"

Tomnomnom的代碼模式轉化工具gf在此就派上用場了,使用gf加文件路徑的方式,我從上述JS腳本中發現了一個泄露IP地址:http://172.x.x.x,在其上下文信息中我又找到了一個NPM_TOKEN值,但這個NPM_TOKEN怎么來利用呢?我有點不懂。平時很少用到NMP,只知道它是Node package manager。

經過一番研究,我對NPM_TOKEN值有了以下了解:

1、在一些持續集成的開發系統(Continuous Integration systems)中,如Jenkins pipelines或Travis CI等,會在自動化模式的Web應用開發部署中用到NPM_TOKEN值,用NPM_TOKEN可以訪問到項目的一些NPM私有倉庫(Npm private repository);

2、不同類型的NPM_TOKEN具備不同的權限,如有僅限讀+發布的Read and publish only、只讀的Readonly以及指定特定IP范圍的CIDR白名單化等等;

3、用以下.npmrc格式來使用NPM_TOKEN:

registry=https://registry_link_here
//registry_link_here/:_authToken=auth_token_here

于是,我就嘗試用以下 .npmrc格式來測試:

registry=https://registry.npmjs.org
//registry.npmjs.org/:_authToken=auth_token_here

測試第一天-在該利用方式中,如果NPM_TOKEN有效的話,執行npm whoami命令,會收到響應。但很可惜,沒有任何響應。另外,有一些文章說 .npmrc格式中的NPM_TOKEN是加密串。

測試第二天-工作到家將近晚上8點了,我又繼續測試這個NPM_TOKEN。我想到在年初我讀了一些跨站WebSocket劫持(CSWH)的文章,Cross Site Websocket Hijacking,所以我結合其進行了一些分析。CSWH利用的條件是,websocket只使用cookie進行通信交流,這有點像跨站請求偽造(CSRF)攻擊。在BURP練習中對CSWH也有所涉及:

如何利用泄露的NPM_TOKEN訪問項目私有倉庫接著,我想看看能不能在前述獲得的JS腳本中發現一些websocket信息,但一無所獲。之后,我從中發現了客戶端請求時,服務端產生分配的一個nonce值,經測試發現可以用它實現CSRF攻擊,就這樣在尋找CSWH漏洞的過程中發現了CSRF漏洞。于是我進行了上報,在另外的博文中我會作講解。

測試第三天-經過兩小時的分析,我發現其中一個JS腳本文件有點意思,可以用以下三步操作使其代碼規則化。Firefox下的代碼規則化:

如何利用泄露的NPM_TOKEN訪問項目私有倉庫Chrome下的代碼規則化:

如何利用泄露的NPM_TOKEN訪問項目私有倉庫該文件將近有17k數量的行數,大多是webpack類代碼,經過仔細分析,在其中又發現了一個NPM_TOKEN值:

如何利用泄露的NPM_TOKEN訪問項目私有倉庫并且,在其附近還存在一個私有注冊鏈接(private registry link):

如何利用泄露的NPM_TOKEN訪問項目私有倉庫

我就想,那這個注冊鏈接會不會是其私有倉庫的鏈接呢,于是,我就加入了發現的NPM_TOKEN值,用下.npmrc方法進行了請求:

registry=https://private_registry_link_here
//private_registry_link_here/:_authToken=auth_token_here

執行npm whoami命令,竟然有了成功響應:srv-npm-registry-ci。

然后,我想列出它的所有NPM包信息,不行。于是,我在其JS文件中的打包信息中發現了一些私有倉庫的線索,如以下這個:

如何利用泄露的NPM_TOKEN訪問項目私有倉庫因此,我用下述命令對其私有倉庫進行了請求:

npm view private_repo
npm get private_repo

響應如下:

如何利用泄露的NPM_TOKEN訪問項目私有倉庫使用這種方法,我可以下載一些目標項目的私有倉庫,從中發現了一些配置類JS腳本和大量的源代碼。開發者在項目中明顯未做權限設置。沒有做深入測試,我就把漏洞上報了。漏洞在當天就被分類處理了,7天之后,我收到了$8000的獎勵。

如何利用泄露的NPM_TOKEN訪問項目私有倉庫

1、可以從一些JS腳本文件中發現隱藏信息;
2、要學會使用瀏覽器的開發者工具,它們的功能超乎想像;
3、保持測試工具更新;
4、堅持不懈是關鍵。

上述內容就是如何利用泄露的NPM_TOKEN訪問項目私有倉庫,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太白县| 清原| 基隆市| 临安市| 子长县| 松滋市| 赤峰市| 咸丰县| 宝清县| 沾化县| 通道| 监利县| 金塔县| 滁州市| 东莞市| 深圳市| 乐业县| 罗定市| 广宁县| 津市市| 高州市| 云霄县| 涟水县| 静乐县| 彰化县| 凯里市| 仙居县| 临夏市| 汝城县| 鄂伦春自治旗| 六枝特区| 江华| 四会市| 丰台区| 宣恩县| 文安县| 醴陵市| 嘉黎县| 南皮县| 利辛县| 丹江口市|