Web Hacking 101 中文版 九、應用邏輯漏洞(二)

4. HackerOne 信號操作

難度:低

URL:hackerone.com/reports/XXXXX

報告鏈接:https://hackerone.com/reports/106305

報告日期:2015.12.21

獎金:$500

描述:

在 2015 年年末,HackerOne 向站點進入了新的功能,叫做信號。本質上,在這些報告關閉之后,它有助于識別黑客的之前漏洞報告的有效性。重要的是要注意,用戶可以關閉它們在 HackerOn 上的報告,這本應該對他們的聲譽和信號功能毫無影響。

所以,你可以猜到,在測試該功能的時候,一個黑客發現了這個功能的不合理實現,并且允許黑客向任何團隊創建報告,自己關閉報告,并從中受益。

這就是這里的情況了。

重要結論

通過一個簡短的描述,這里的結論不可能全部覆蓋。一定要留意新的功能!當站點實現了新的功能時,它對于黑客就像鮮肉一樣。新的功能展示了測試新代碼和搜索漏洞的機會。這就和 Shopify 和 Twitter 的 CSRF,以及 Facebook 的 XSS 漏洞一樣。為了最大利用它們,使你自己熟悉公司,并且訂閱公司的博客是個好主意,以便你在一些東西發布之后能夠收到提醒。之后測試它們。

5. Shopify S3 Bucket 開放

難度:中

URL:cdn.shopify.com/assets

報告鏈接:https://hackerone.com/reports/106305

報告日期:2015.11.9

獎金:$1000

描述:

Amazon 簡易存儲 S3,是一個服務,允許用戶在 Amazon 的云服務器上儲存和托管文件。Shopify 和許多站點都是用 S3 來儲存和托管靜態內容,例如圖片。

Amazon Web 服務的整個套件,AWS,是非常健壯的,并包含權限管理系統,允許管理員為每個服務定義權限,包含 S3。許可包含創建 S3 Bucket 的功能(Bucket 就像儲存器的文件夾),讀取和寫入 Bucket ,以及其他。

根據披露,Shopify 沒有合理配置它們的 S3 Bucket 權限,并且無意中允許任何認證過的 AWS 用戶讀取或寫入它們的 Bucket。這顯然是由問題的,因為你至少不希望惡意的黑帽子使用你的 S3 Bucket 來儲存和托管文件。

不幸的是,這個問題的細節沒有暴露,但是可能使用 AWS CLI 來發現,這是一個工具,允許你和 AWS 服務在你的共領航上交互。雖然你需要一個 AWS 賬戶來做這個事情,創建賬戶實際上也是免費的,因為你不需要任何服務。因此,使用 CLI 你就可以在 AWS 上認證你自己,并且隨后測試是否可以訪問(這也是我發現 HackerOne Bucket 的方式,它在下面列出)。

重要結論

當你偵查一個潛在的目標時,確保注意到所有不同的工具,包含 Web 服務,它們明顯可以使用。每個服務或軟件,OS,以及其他。你可以尋找或發現新的攻擊向量。此外,使你自己熟悉流行的 Web 工具,例如 AWS S3,Zendesk,Rails,以及其他是個好主意。許多站點都使用它們。

6. HackerOne S3 Bucket 開放

難度:中

URL:[REDACTED].s3.amazonaws.com

報告鏈接:https://hackerone.com/reports/128088

報告日期:2016.4.3

獎金:$2500

描述:

我們打算講一些有些不同的東西。這是一個漏洞,我實際上發現了他,并且和上面描述的 Shopify 的問題有些不同,所以我打算詳細分享關于我如何發現他的任何事情。

所以,一開始,上面描述的漏洞就是,一個 Bucket 公開鏈接到了 Shopify。意思是,當你訪問這個想點時,你會看到 AWS 服務的調用,所以黑客就知道 Bucket 指向哪里。但是我并沒有 -- 我使用了一個很酷的腳本和一些工具來發現了 Bucket。

在 4 月 3 日的周末,我不知道為什么,但是我決定跳出思維定式,并嘗試攻擊 HackerOne。我一開始就玩了玩它們的站點,并且每次新漏洞發現時,都迫使我自己閱讀信息披露,想了解為什么我錯過了它。我想知道他們的 S3 Bucket 是否存在類似 Shopify 的漏洞。我也想知道,黑客如何訪問了 Shopify 的 Bucket。我了解到它是通過 Amazon 命令行工具來訪問的。

現在,通常我會使自己停下,因為 HackerOne 這個時候不可能還擁有漏洞。但是我突然有一個想法,它來源于我和 Ben Sadeghipour (@Nahamsec) 的訪談,就是不要懷疑自己,或者公司犯錯的可能。

所以我在 Google 上搜索一些細節,并碰到了兩個有意思的頁面:

There’s a Hole in 1,951 Amazon S3 Buckets

S3 Bucket Finder

第一個是個有趣的文章,來自 Rapid7,它是個安全公司,這篇文章關于如何發現公開可寫的 S3 Bucket ,并通過模糊測試,或者猜測 Bucket 名稱來實現。

第二個是個很酷的工具,它接受一個單詞列表,并調用 S3 來尋找 Bucket。但是,它沒有自帶列表。在 Rapid7 的文章中有一行關鍵字,“通過一個不同的列表來猜測名稱,列表包含 1000 強公司的名稱,以 .com, -backup, -media 排列?!?/p>

這就很有意思了。我很快為 HackerOne 創建了一列 Bucket 可能名稱,像這樣:

hackerone, hackerone.marketing, hackerone.attachments, hackerone.users, hackerone.files

這些都不是真正的 Bucket。它們來自于報告。所以我覺得我肯定能夠發現它。我將其留作一個挑戰。

現在,使用 Ruby 腳本,我開始調用那些 Bucket。事情剛開始并不是那么好,我發現了幾個 Bucket 但是都拒絕訪問。很不幸,所以我先離開,看看 NetFlix。

但是這個想法還在提醒著我,所以在我睡覺之前,我決定再次使用更多組合來執行腳本。我再次發現了大量的 Bucket,它們看起來是 HackerOne 的,但是所有都拒絕訪問。我意識到,拒絕訪問起碼告訴我它們是存在的。

我打開了 Ruby 腳本,它在 Buckets調用了ls的等價函數。換句話說,我嘗試觀察它們是否公開可讀的。我想知道它,以及它們是否公開可寫的。

此外,現在 AWS 提供了命令行工具,aws-cli。我知道它,因為我之前用過,所以我在我的 VM 上快速執行sudo apt-get aws-cli,并準備好了。你可以在docs.aws.amazon.com/cli/latest/userguide/installing.html上找到這個東西的指南。

現在,命令awss3help會打開 S3 的幫助,并列出可用的命令。這些命令之一是mv,以aws s3 mv [FILE] [s3://BUCKET]的形式,所以我嘗試:

touch test.txt 
aws s3 mv test.txt s3://hackerone.marketing

這是第一個 Bucket,我從中收到了拒絕訪問,并在調用PutObject操作時,我收到了move failed: ./test.txt to s3://hackerone.marketing/test.txt A client error(Access Denied)。

所以嘗試下一個,aws s3 mv test.txt s3://hackerone.files,并且成功了。我收到了這個消息,move: ./test.txt to s3://hackerone.files/test.txt

真是神奇!現在我嘗試刪除文件:aws s3 rm s3://hackerone.files/test.txt,同樣成功了。

但是現在我還是懷疑自己。我快速登出了 HackerOne 來報告。并且在我鍵入時,我意識到我并沒有實際確認 Bucket 的所有權。AWS 允許任何人在全局名字空間下創建任何 Bucket。意思是,你,或者讀者都可能實際擁有我在測試的 Bucket。

我不確定是否應該不驗證就報告。我搜索了 Google 來看看我是否可以找到任何 Bucket 的引用。我沒有找到什么東西。我離開了電腦,來理清頭緒。我意識到,最壞的事情就是我得到了另一個無效報告,以及貢獻 -5。另一方面,我知道這至少值 $500,基于 Shopify 的漏洞也可能是 $1000。

我按下了提交,并去睡覺了。當我醒來的時候,HackerOne 回復了恭喜,并說它們已經修復了它和一些其他的存在漏洞的 Bucket。成功了!并且按照它們的條款,當他們授予獎勵的時候,它們會考慮潛在的安全性,包括我沒有發現但存在漏洞的其它 Bucket。

重要結論

有多個重要結論:

  1. 不要低估你的能力,以及開發者犯錯的可能性。HackerOne 是個優秀的團隊,擁有優秀的安全研究員。但是人們都會犯錯。挑戰你的假設吧。
  1. 不要在首次嘗試之后就放棄。當我發現它的時候,瀏覽器每個 Bucket 都不可用,并且我幾乎離開了。但是之后我嘗試寫入文件,它成功了。
  1. 所有的東西都在于只是。如果你知道存在了哪種漏洞,你就知道了要尋找以及測試什么。讀這本書就是一個良好的開始。
  1. 我之前說過,又再說一遍,一個攻擊面要好于站點,它也是公司所使用的的服務。要跳出思維定式。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容