由于依賴性混亂導致的RCE


關于我提交給 HackerOne 上的一個私人程序的錯誤賞金報告。

你猜怎么了?我得到了 5,000 美元的獎勵,他們只用了 30 分鐘就搞定了!

我不會深入探討依賴性混淆的本質,因為有很多很棒的文章涵蓋了它。

因此,我檢查了這個自定義身份驗證門戶,您可以在其中登錄后進入多個內部應用程序。可惜的是,他們在測試期間沒有向我們提供憑據,因此只有公司員工才能登錄。

但是,嘿,我沒有放棄!我使用瀏覽器中的網絡選項卡查看了應用加載的 .js 文件。我看到當 auth 登錄頁面加載時,它捆綁了一個app.[random_characters].js文件。

我記得讀過有關源映射以及如何將前端源代碼與它們放回一起的文章。

推薦閱讀:

依賴性混亂:我如何侵入蘋果、微軟和其他數十家公司

https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610

因此,我使用了這個名為Sourcemapper (項目地址:https://github.com/denandz/sourcemapper)的很酷的工具來幫助做到這一點。

有了源代碼,我開始尋找漏洞。我發現了一些有趣的,但代碼中真正引起我注意的是導入語句。


我注意到導入引用了一個需要在 npm.org 上找到的 NPM 包。

所以我做了任何黑客都會做的事情,試圖看看我是否可以劫持那個包。幸運的是,我成功了!

我很快創建了一個 PoC,并開始將 ping 返回給我的 burp Suite,并且能夠提取敏感數據并執行代碼。


我向平臺報告了這個漏洞問題,它在 30 分鐘內被分類并獲得了他們的最高賞金。