4. HackerOne 信號操作
難度:低
URL:hackerone.com/reports/XXXXX
報告鏈接:https://hackerone.com/reports/106305
報告日期:2015.12.21
獎金:$500
描述:
在 2015 年年末儿捧,HackerOne 向站點進(jìn)入了新的功能,叫做信號墨闲。本質(zhì)上今妄,在這些報告關(guān)閉之后,它有助于識別黑客的之前漏洞報告的有效性鸳碧。重要的是要注意盾鳞,用戶可以關(guān)閉它們在 HackerOn 上的報告,這本應(yīng)該對他們的聲譽和信號功能毫無影響瞻离。
所以腾仅,你可以猜到,在測試該功能的時候套利,一個黑客發(fā)現(xiàn)了這個功能的不合理實現(xiàn)推励,并且允許黑客向任何團隊創(chuàng)建報告鹤耍,自己關(guān)閉報告,并從中受益验辞。
這就是這里的情況了稿黄。
重要結(jié)論
通過一個簡短的描述,這里的結(jié)論不可能全部覆蓋跌造。一定要留意新的功能抛猖!當(dāng)站點實現(xiàn)了新的功能時,它對于黑客就像鮮肉一樣鼻听。新的功能展示了測試新代碼和搜索漏洞的機會。這就和 Shopify 和 Twitter 的 CSRF联四,以及 Facebook 的 XSS 漏洞一樣撑碴。為了最大利用它們,使你自己熟悉公司朝墩,并且訂閱公司的博客是個好主意醉拓,以便你在一些東西發(fā)布之后能夠收到提醒。之后測試它們收苏。
5. Shopify S3 Bucket 開放
難度:中
URL:cdn.shopify.com/assets
報告鏈接:https://hackerone.com/reports/106305
報告日期:2015.11.9
獎金:$1000
描述:
Amazon 簡易存儲 S3亿卤,是一個服務(wù),允許用戶在 Amazon 的云服務(wù)器上儲存和托管文件鹿霸。Shopify 和許多站點都是用 S3 來儲存和托管靜態(tài)內(nèi)容排吴,例如圖片。
Amazon Web 服務(wù)的整個套件懦鼠,AWS钻哩,是非常健壯的,并包含權(quán)限管理系統(tǒng)肛冶,允許管理員為每個服務(wù)定義權(quán)限街氢,包含 S3。許可包含創(chuàng)建 S3 Bucket 的功能(Bucket 就像儲存器的文件夾)珊肃,讀取和寫入 Bucket ,以及其他馅笙。
根據(jù)披露伦乔,Shopify 沒有合理配置它們的 S3 Bucket 權(quán)限评矩,并且無意中允許任何認(rèn)證過的 AWS 用戶讀取或?qū)懭胨鼈兊?Bucket。這顯然是由問題的阱飘,因為你至少不希望惡意的黑帽子使用你的 S3 Bucket 來儲存和托管文件斥杜。
不幸的是虱颗,這個問題的細(xì)節(jié)沒有暴露,但是可能使用 AWS CLI 來發(fā)現(xiàn)蔗喂,這是一個工具忘渔,允許你和 AWS 服務(wù)在你的共領(lǐng)航上交互。雖然你需要一個 AWS 賬戶來做這個事情缰儿,創(chuàng)建賬戶實際上也是免費的畦粮,因為你不需要任何服務(wù)。因此乖阵,使用 CLI 你就可以在 AWS 上認(rèn)證你自己宣赔,并且隨后測試是否可以訪問(這也是我發(fā)現(xiàn) HackerOne Bucket 的方式,它在下面列出)瞪浸。
重要結(jié)論
當(dāng)你偵查一個潛在的目標(biāo)時儒将,確保注意到所有不同的工具,包含 Web 服務(wù)对蒲,它們明顯可以使用钩蚊。每個服務(wù)或軟件,OS蹈矮,以及其他砰逻。你可以尋找或發(fā)現(xiàn)新的攻擊向量。此外泛鸟,使你自己熟悉流行的 Web 工具蝠咆,例如 AWS S3,Zendesk谈况,Rails勺美,以及其他是個好主意。許多站點都使用它們碑韵。
6. HackerOne S3 Bucket 開放
難度:中
URL:[REDACTED].s3.amazonaws.com
報告鏈接:https://hackerone.com/reports/128088
報告日期:2016.4.3
獎金:$2500
描述:
我們打算講一些有些不同的東西赡茸。這是一個漏洞,我實際上發(fā)現(xiàn)了他祝闻,并且和上面描述的 Shopify 的問題有些不同占卧,所以我打算詳細(xì)分享關(guān)于我如何發(fā)現(xiàn)他的任何事情。
所以联喘,一開始华蜒,上面描述的漏洞就是,一個 Bucket 公開鏈接到了 Shopify豁遭。意思是叭喜,當(dāng)你訪問這個想點時,你會看到 AWS 服務(wù)的調(diào)用蓖谢,所以黑客就知道 Bucket 指向哪里捂蕴。但是我并沒有 -- 我使用了一個很酷的腳本和一些工具來發(fā)現(xiàn)了 Bucket譬涡。
在 4 月 3 日的周末,我不知道為什么啥辨,但是我決定跳出思維定式涡匀,并嘗試攻擊 HackerOne。我一開始就玩了玩它們的站點溉知,并且每次新漏洞發(fā)現(xiàn)時陨瘩,都迫使我自己閱讀信息披露,想了解為什么我錯過了它级乍。我想知道他們的 S3 Bucket 是否存在類似 Shopify 的漏洞舌劳。我也想知道,黑客如何訪問了 Shopify 的 Bucket玫荣。我了解到它是通過 Amazon 命令行工具來訪問的蒿囤。
現(xiàn)在,通常我會使自己停下崇决,因為 HackerOne 這個時候不可能還擁有漏洞。但是我突然有一個想法底挫,它來源于我和 Ben Sadeghipour (@Nahamsec) 的訪談恒傻,就是不要懷疑自己,或者公司犯錯的可能建邓。
所以我在 Google 上搜索一些細(xì)節(jié)盈厘,并碰到了兩個有意思的頁面:
There’s a Hole in 1,951 Amazon S3 Buckets
第一個是個有趣的文章,來自 Rapid7官边,它是個安全公司沸手,這篇文章關(guān)于如何發(fā)現(xiàn)公開可寫的 S3 Bucket ,并通過模糊測試注簿,或者猜測 Bucket 名稱來實現(xiàn)契吉。
第二個是個很酷的工具,它接受一個單詞列表诡渴,并調(diào)用 S3 來尋找 Bucket捐晶。但是,它沒有自帶列表妄辩。在 Rapid7 的文章中有一行關(guān)鍵字惑灵,“通過一個不同的列表來猜測名稱,列表包含 1000 強公司的名稱眼耀,以 .com, -backup, -media 排列英支。”
這就很有意思了哮伟。我很快為 HackerOne 創(chuàng)建了一列 Bucket 可能名稱干花,像這樣:
hackerone, hackerone.marketing, hackerone.attachments, hackerone.users, hackerone.files
這些都不是真正的 Bucket妄帘。它們來自于報告。所以我覺得我肯定能夠發(fā)現(xiàn)它把敢。我將其留作一個挑戰(zhàn)寄摆。
現(xiàn)在,使用 Ruby 腳本修赞,我開始調(diào)用那些 Bucket婶恼。事情剛開始并不是那么好,我發(fā)現(xiàn)了幾個 Bucket 但是都拒絕訪問柏副。很不幸勾邦,所以我先離開,看看 NetFlix割择。
但是這個想法還在提醒著我眷篇,所以在我睡覺之前,我決定再次使用更多組合來執(zhí)行腳本荔泳。我再次發(fā)現(xiàn)了大量的 Bucket蕉饼,它們看起來是 HackerOne 的,但是所有都拒絕訪問玛歌。我意識到昧港,拒絕訪問起碼告訴我它們是存在的。
我打開了 Ruby 腳本支子,它在 Buckets調(diào)用了ls
的等價函數(shù)创肥。換句話說,我嘗試觀察它們是否公開可讀的值朋。我想知道它叹侄,以及它們是否公開可寫的。
此外昨登,現(xiàn)在 AWS 提供了命令行工具趾代,aws-cli。我知道它丰辣,因為我之前用過稽坤,所以我在我的 VM 上快速執(zhí)行sudo apt-get aws-cli
,并準(zhǔn)備好了糯俗。你可以在docs.aws.amazon.com/cli/latest/userguide/installing.html
上找到這個東西的指南尿褪。
現(xiàn)在,命令awss3help
會打開 S3 的幫助得湘,并列出可用的命令杖玲。這些命令之一是mv
,以aws s3 mv [FILE] [s3://BUCKET]
的形式淘正,所以我嘗試:
touch test.txt
aws s3 mv test.txt s3://hackerone.marketing
這是第一個 Bucket摆马,我從中收到了拒絕訪問臼闻,并在調(diào)用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
。
真是神奇代虾!現(xiàn)在我嘗試刪除文件:aws s3 rm s3://hackerone.files/test.txt
进肯,同樣成功了。
但是現(xiàn)在我還是懷疑自己棉磨。我快速登出了 HackerOne 來報告江掩。并且在我鍵入時,我意識到我并沒有實際確認(rèn) Bucket 的所有權(quán)乘瓤。AWS 允許任何人在全局名字空間下創(chuàng)建任何 Bucket环形。意思是,你衙傀,或者讀者都可能實際擁有我在測試的 Bucket斟赚。
我不確定是否應(yīng)該不驗證就報告。我搜索了 Google 來看看我是否可以找到任何 Bucket 的引用差油。我沒有找到什么東西。我離開了電腦任洞,來理清頭緒蓄喇。我意識到,最壞的事情就是我得到了另一個無效報告交掏,以及貢獻(xiàn) -5妆偏。另一方面,我知道這至少值 $500盅弛,基于 Shopify 的漏洞也可能是 $1000钱骂。
我按下了提交,并去睡覺了挪鹏。當(dāng)我醒來的時候见秽,HackerOne 回復(fù)了恭喜,并說它們已經(jīng)修復(fù)了它和一些其他的存在漏洞的 Bucket讨盒。成功了解取!并且按照它們的條款,當(dāng)他們授予獎勵的時候返顺,它們會考慮潛在的安全性禀苦,包括我沒有發(fā)現(xiàn)但存在漏洞的其它 Bucket蔓肯。
重要結(jié)論
有多個重要結(jié)論:
- 不要低估你的能力,以及開發(fā)者犯錯的可能性振乏。HackerOne 是個優(yōu)秀的團隊蔗包,擁有優(yōu)秀的安全研究員。但是人們都會犯錯慧邮。挑戰(zhàn)你的假設(shè)吧调限。
- 不要在首次嘗試之后就放棄。當(dāng)我發(fā)現(xiàn)它的時候赋咽,瀏覽器每個 Bucket 都不可用旧噪,并且我?guī)缀蹼x開了。但是之后我嘗試寫入文件脓匿,它成功了淘钟。
- 所有的東西都在于只是。如果你知道存在了哪種漏洞陪毡,你就知道了要尋找以及測試什么米母。讀這本書就是一個良好的開始。
- 我之前說過毡琉,又再說一遍铁瞒,一個攻擊面要好于站點,它也是公司所使用的的服務(wù)桅滋。要跳出思維定式慧耍。