真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù)

本篇文章為大家展示了如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供雙牌企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、網(wǎng)站制作、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為雙牌眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

下面講述了作者在目標(biāo)站點(diǎn)的JS腳本中發(fā)現(xiàn)了NPM_TOKEN和私有倉(cāng)庫(kù)鏈接,然后利用該NPM_TOKEN,結(jié)合.npmrc格式請(qǐng)求,訪問(wèn)到了目標(biāo)站點(diǎn)相關(guān)的NPM項(xiàng)目私有倉(cāng)庫(kù)。

發(fā)現(xiàn)過(guò)程

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

首先,我用BURP Suite pro來(lái)把目標(biāo)站點(diǎn)的JS文件提取下載為一個(gè)文件,這樣的方式不算太直觀友好,然后我又用以下腳本來(lái)把它們分隔成單獨(dú)文件:

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的代碼模式轉(zhuǎn)化工具gf在此就派上用場(chǎng)了,使用gf加文件路徑的方式,我從上述JS腳本中發(fā)現(xiàn)了一個(gè)泄露IP地址:http://172.x.x.x,在其上下文信息中我又找到了一個(gè)NPM_TOKEN值,但這個(gè)NPM_TOKEN怎么來(lái)利用呢?我有點(diǎn)不懂。平時(shí)很少用到NMP,只知道它是Node package manager。

經(jīng)過(guò)一番研究,我對(duì)NPM_TOKEN值有了以下了解:

1、在一些持續(xù)集成的開發(fā)系統(tǒng)(Continuous Integration systems)中,如Jenkins pipelines或Travis CI等,會(huì)在自動(dòng)化模式的Web應(yīng)用開發(fā)部署中用到NPM_TOKEN值,用NPM_TOKEN可以訪問(wèn)到項(xiàng)目的一些NPM私有倉(cāng)庫(kù)(Npm private repository);

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

3、用以下.npmrc格式來(lái)使用NPM_TOKEN:

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

于是,我就嘗試用以下 .npmrc格式來(lái)測(cè)試:

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

測(cè)試第一天-在該利用方式中,如果NPM_TOKEN有效的話,執(zhí)行npm whoami命令,會(huì)收到響應(yīng)。但很可惜,沒(méi)有任何響應(yīng)。另外,有一些文章說(shuō) .npmrc格式中的NPM_TOKEN是加密串。

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

如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù)接著,我想看看能不能在前述獲得的JS腳本中發(fā)現(xiàn)一些websocket信息,但一無(wú)所獲。之后,我從中發(fā)現(xiàn)了客戶端請(qǐng)求時(shí),服務(wù)端產(chǎn)生分配的一個(gè)nonce值,經(jīng)測(cè)試發(fā)現(xiàn)可以用它實(shí)現(xiàn)CSRF攻擊,就這樣在尋找CSWH漏洞的過(guò)程中發(fā)現(xiàn)了CSRF漏洞。于是我進(jìn)行了上報(bào),在另外的博文中我會(huì)作講解。

測(cè)試第三天-經(jīng)過(guò)兩小時(shí)的分析,我發(fā)現(xiàn)其中一個(gè)JS腳本文件有點(diǎn)意思,可以用以下三步操作使其代碼規(guī)則化。Firefox下的代碼規(guī)則化:

如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù)Chrome下的代碼規(guī)則化:

如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù)該文件將近有17k數(shù)量的行數(shù),大多是webpack類代碼,經(jīng)過(guò)仔細(xì)分析,在其中又發(fā)現(xiàn)了一個(gè)NPM_TOKEN值:

如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù)并且,在其附近還存在一個(gè)私有注冊(cè)鏈接(private registry link):

如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù)

我就想,那這個(gè)注冊(cè)鏈接會(huì)不會(huì)是其私有倉(cāng)庫(kù)的鏈接呢,于是,我就加入了發(fā)現(xiàn)的NPM_TOKEN值,用下.npmrc方法進(jìn)行了請(qǐng)求:

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

執(zhí)行npm whoami命令,竟然有了成功響應(yīng):srv-npm-registry-ci。

然后,我想列出它的所有NPM包信息,不行。于是,我在其JS文件中的打包信息中發(fā)現(xiàn)了一些私有倉(cāng)庫(kù)的線索,如以下這個(gè):

如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù)因此,我用下述命令對(duì)其私有倉(cāng)庫(kù)進(jìn)行了請(qǐng)求:

npm view private_repo
npm get private_repo

響應(yīng)如下:

如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù)使用這種方法,我可以下載一些目標(biāo)項(xiàng)目的私有倉(cāng)庫(kù),從中發(fā)現(xiàn)了一些配置類JS腳本和大量的源代碼。開發(fā)者在項(xiàng)目中明顯未做權(quán)限設(shè)置。沒(méi)有做深入測(cè)試,我就把漏洞上報(bào)了。漏洞在當(dāng)天就被分類處理了,7天之后,我收到了$8000的獎(jiǎng)勵(lì)。

如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù)

1、可以從一些JS腳本文件中發(fā)現(xiàn)隱藏信息;
2、要學(xué)會(huì)使用瀏覽器的開發(fā)者工具,它們的功能超乎想像;
3、保持測(cè)試工具更新;
4、堅(jiān)持不懈是關(guān)鍵。

上述內(nèi)容就是如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)頁(yè)標(biāo)題:如何利用泄露的NPM_TOKEN訪問(wèn)項(xiàng)目私有倉(cāng)庫(kù)
本文地址:http://weahome.cn/article/iegesj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部