Web Hacking 101 中文版 二十、漏洞报告
二十、漏洞報(bào)告
作者:Peter Yaworski
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
所以這一天終于來了,你發(fā)現(xiàn)了你的第一個(gè)漏洞。 首先,恭喜你! 認(rèn)真來講,發(fā)現(xiàn)漏洞并不容易,但是有一些不爽的事情。
我的第一條建議是放松,不要過度興奮。 我知道在提交報(bào)告時(shí)的極度興奮感,以及當(dāng)你被告知它不是漏洞,公司關(guān)閉了漏洞報(bào)告,損害了你在漏洞平臺上的聲望,被拒絕的沮喪感。我想幫你避免它們。所以,第一件事是首先:
閱讀披露準(zhǔn)則
在 HackerOne 和 Bugcrowd 上,每個(gè)參與公司都列出了范圍內(nèi)外的程序。希望你先閱讀它們,以免你浪費(fèi)時(shí)間。 但是如果沒有,請現(xiàn)在閱讀。 確保你發(fā)現(xiàn)的是未發(fā)現(xiàn)的,而不在他們的程序之外。
這是我以前的一個(gè)痛苦的例子 - 我在 Shopify 發(fā)現(xiàn)的第一個(gè)漏洞,如果你在文本編輯器中提交格式不正確的 HTML,其解析器就會對其進(jìn)行更正并存儲 XSS。 我非常興奮,因?yàn)槲业耐诰蚴怯谢貓?bào)的。 我無法足夠快地提交報(bào)告。
太好了,我點(diǎn)擊提交,等待我的 500 美元的獎金。 相反,他們禮貌地告訴我,這是一個(gè)已知的漏洞,他們要求研究人員不要提交。 然后這個(gè)工單被關(guān)閉了,我失去了 5 分。 我想鉆進(jìn)洞里。這是一個(gè)慘痛的教訓(xùn)。
從我的錯誤中學(xué)習(xí),要閱讀準(zhǔn)則。
包含細(xì)節(jié)。之后包含更多東西
如果你希望認(rèn)真對待報(bào)告,請?zhí)峁┰敿?xì)的報(bào)告,其中至少包括:
- 用于查找漏洞的 URL 和任何受影響的參數(shù)
- 瀏覽器,操作系統(tǒng)(如適用)和/或應(yīng)用程序版本的說明
- 對感知影響的描述。 這個(gè) bug 可能如何被利用?
- 重現(xiàn)錯誤的步驟
這些標(biāo)準(zhǔn)對于 Hackerone 的主要公司來說都很常見,包括雅虎,Twitter,Dropbox 等。如果你想更進(jìn)一步,我建議你添加屏幕截圖或視頻驗(yàn)證(POC)。 兩者都對公司有很大幫助,并將幫助他們了解漏洞。
在這個(gè)階段,你還需要考慮該網(wǎng)站的影響。 例如,由于用戶和交互數(shù)量眾多,Twitter 上存儲的 XSS 可能是一個(gè)非常嚴(yán)重的問題。 相比之下,一個(gè)交互有限的站點(diǎn)可能不會將這個(gè)漏洞視為嚴(yán)重。不同的是,敏感的網(wǎng)站,如 PornHub 的隱私泄露可能比在 Twitter 上更重要,后者大多數(shù)用戶信息已經(jīng)是公開的(而不會尷尬?)。
確認(rèn)漏洞
你已閱讀準(zhǔn)則,你已經(jīng)起草了你的報(bào)告,你已經(jīng)添加了截圖。等一下,并確保你的報(bào)告實(shí)際上是一個(gè)漏洞。
例如,如果你要報(bào)告公司在其標(biāo)題中沒有使用 CSRF 令牌,那么你是否看到了,要傳遞的參數(shù)是否包含一個(gè)像 CSRF 令牌一樣的標(biāo)記,但是標(biāo)簽不一樣?
在提交報(bào)告之前,我無法鼓勵你確保已經(jīng)驗(yàn)證了此漏洞。 考慮你所發(fā)現(xiàn)的重要漏洞,只是讓你意識到你在測試時(shí)弄錯了一些東西,這非常令人失望。
在你提交該漏洞之前,請自行決定是否需要額外的時(shí)間并確認(rèn)該漏洞。
尊重廠商
根據(jù) HackerOne 公司創(chuàng)建的測試流程(是的,你可以作為研究人員進(jìn)行測試),當(dāng)公司啟動新的漏洞獎勵計(jì)劃時(shí),它們可能會收到大量報(bào)告。 提交之后,讓公司有機(jī)會審查你的報(bào)告并回復(fù)你。
一些公司在他們的獎勵準(zhǔn)則上發(fā)布時(shí)間表,而其他公司則沒有。 平衡你的興奮與他們的工作量。 根據(jù)我與 HackerOne 支持者的對話,如果你在至少兩周內(nèi)沒有收到公司的消息,他們將幫助你進(jìn)行跟進(jìn)。
在你選擇這條路線之前,在報(bào)告上發(fā)布禮貌的消息,詢問是否有更新。 大多數(shù)時(shí)候,公司會回應(yīng)并讓你了解情況。 如果他們并沒有留出太多時(shí)間,在問題升級之前再試一次。 另一方面,如果公司已經(jīng)確認(rèn)了這個(gè)漏洞,一旦完成,與他們一起確認(rèn)修復(fù)。
在寫這本書的時(shí)候,我很幸運(yùn)地和 Adam Bacchus 聊天,他是截至 2016 年 5 月的 HackerOne 團(tuán)隊(duì)的新成員,任首席獎勵官,我們的對話真的讓我開闊了眼界。 在他的背景中,Adam 擁有 Snap Chat 和 Google 的工作經(jīng)驗(yàn)。在 Snap Chat 時(shí),他銜接了安全團(tuán)隊(duì),和其他軟件工程團(tuán)隊(duì)。在 Google 時(shí),他在漏洞管理團(tuán)隊(duì)工作,并幫助執(zhí)行 Google 漏洞獎勵計(jì)劃。
亞當(dāng)幫助我理解了,運(yùn)行獎勵計(jì)劃時(shí),有一些分析者會遇到的問題,包括:
噪音:不幸的是,漏洞獎勵計(jì)劃會收到大量無效的報(bào)告,HackerOne 和 BugCrowd 都已經(jīng)寫過這個(gè)。 我知道我絕對有貢獻(xiàn),希望這本書可以幫助你避免這個(gè)問題,因?yàn)樘峤粺o效報(bào)告會為你和獎勵計(jì)劃浪費(fèi)時(shí)間和金錢。
優(yōu)先級:漏洞計(jì)劃必須找一些方法來為漏洞修復(fù)排序。 當(dāng)你有多個(gè)具有類似影響的漏洞,但報(bào)告持續(xù)不斷進(jìn)入時(shí),這非常困難,獎勵計(jì)劃面臨嚴(yán)峻的挑戰(zhàn)。
驗(yàn)證:在分析報(bào)告時(shí),必須驗(yàn)證漏洞。 這就是為什么我們的黑客必須提供明確的指示,并解釋我們發(fā)現(xiàn)的內(nèi)容,如何重現(xiàn)它以及為什么它是重要的。 只是提供一個(gè)視頻并不能切中它。
資源:并不是每個(gè)公司都能雇得起全職工作人員來運(yùn)行獎勵計(jì)劃。 有些計(jì)劃很幸運(yùn),有專門的人對報(bào)告做出回應(yīng),而其他計(jì)劃則由工作人員兼任。 因此,公司可能會有輪流的時(shí)間表,人們輪流回應(yīng)報(bào)告。提供必要信息中的任何信息差距或延誤都會產(chǎn)生嚴(yán)重影響。
編寫修復(fù):編碼需要時(shí)間,特別是如果有完整的開發(fā)生命周期的時(shí)候,包括調(diào)試,編寫回歸測試,分期部署,最后推送到生產(chǎn)環(huán)境。如果開發(fā)人員甚至不知道漏洞的根本原因怎么辦?這一切都需要時(shí)間,而我們黑客不耐煩,想要獎勵。這就是溝通交流的重點(diǎn),每個(gè)人都需要相互尊重。
關(guān)系管理:黑客獎勵計(jì)劃希望黑客能夠回來。 HackerOne 已經(jīng)在文章中寫到,在黑客向單個(gè)程序提交更多漏洞的同時(shí),漏洞的影響如何增長。 因此,獎勵方案需要找到一種方法來平衡發(fā)展這些關(guān)系。
媒體關(guān)系:漏洞可能會錯過,花費(fèi)太長時(shí)間才能解決,或者被認(rèn)為獎勵太低,總是有黑客會在 Twitter 或媒體上曝光的壓力。還有,這會對分析者造成影響,并影響他們與黑客發(fā)展關(guān)系和協(xié)作的方式。
看完所有這一切,我的目標(biāo)是真正有助于使這個(gè)過程人性化。我有兩方面的經(jīng)驗(yàn),好的和壞的。 然而最后,黑客和程序員將一起工作,了解每一個(gè)面臨的挑戰(zhàn),這有助于改善各方面的成果。
獎金
如果你向支付獎金的公司提交了一個(gè)漏洞,請尊重他們對獎金金額的決定。
根據(jù) Joaro Abma(HackerOne 聯(lián)合創(chuàng)始人) Quora 上 的回答:我如何成為一個(gè)成功的漏洞賞金獵人?:
如果你不同意收到的金額,請討論你為什么相信它值得更高的獎勵。在沒有詳細(xì)說明你為什么相信的情況下,不要索要另一份獎金。作為回報(bào),一家公司應(yīng)該表示尊重你的時(shí)間和價(jià)值。
不要在穿越池塘之前喊“你好”
在 2016 年 3 月 17 日,Mathias Karlsson 撰寫了一篇很牛并且很棒的博客文章,關(guān)于尋找可能的同源策略(SOP)繞過(同源策略是一個(gè)安全特性,它定義了 Web 瀏覽器如何允許腳本從網(wǎng)站訪問內(nèi)容),我在這里包含一些內(nèi)容。 除此之外,Mathias 在 HackerOne 上有很好的成績 - 截至 2016 年 3 月 28 日,他發(fā)現(xiàn)了 109 個(gè)漏洞,在 Signal 上為第 97 個(gè)百分比,在 Impact 上是第 95 個(gè),公司包括 HackerOne,Uber,Yahoo,CloudFlare 等。
所以,“不要在穿越池塘之前喊‘你好’”是一個(gè)瑞典諺語,意思是你在絕對確定前不應(yīng)該慶祝。 你可能猜到我為什么說這個(gè) - 挖漏洞并不總是充滿陽光和彩虹。
根據(jù) Mathias 的說法,他正在使用 Firefox,并注意到瀏覽器會接受格式錯誤的主機(jī)名(OSX),所以 URL http://example.com..會加載example.com,但是在主機(jī)頭中發(fā)送example.com..。然后他嘗試了http://example.com..evil.com并得到相同的結(jié)果。
他立即知道了,這意味著 SOP 可以被繞過,因?yàn)?Flash 會將http://example.com..evil.com視為*.evil.com域下。他檢查了 Alexa 前 10000 名,發(fā)現(xiàn)有 7% 的網(wǎng)站可以被利用,包括Yahoo.com。
他創(chuàng)建了一個(gè) WriteUp,但決定做一些更多的確認(rèn)。 他檢查了一個(gè)同事,他們的虛擬機(jī)也證實(shí)了這個(gè) bug。他更新了 Firefox,bug還在那里。然后他在 Twitter 暗示了他的發(fā)現(xiàn)。對他來說,Bug 已經(jīng)驗(yàn)證了,對吧?
并不是。它所犯的錯誤就是它沒有將它的操作系統(tǒng)更新到最新版本。這樣做之后,Bug 就消失了。很明顯,這在 6 個(gè)月之前就有人報(bào)告了,并且更新到 OSX 10.0.5 會修復(fù)這個(gè)問題。
我將其包含在這里來展示,即使優(yōu)秀的黑客也可能弄錯,以及在報(bào)告之前確認(rèn) Bug 的利用十分重要。
非常感謝 Mathias 讓我包含這個(gè) - 我推薦關(guān)注它的 Twitter 動態(tài)@avlidienbrunn,以及l(fā)abs.detectify.com,Mathias 在那里的文章中寫到了它。
最后的話
希望本章能幫助你,你最好準(zhǔn)備撰寫一份“殺手”報(bào)告。在發(fā)送之前,請稍等一下,真正考慮一下報(bào)告 - 如果要公開披露和公開閱讀,你會感到自豪嗎?
無論你提交了什么,你應(yīng)該為提供支持做好準(zhǔn)備,為公司,其他黑客和你自己辯護(hù)。我不是說這個(gè)來嚇到你,而是作為一些建議的話,我希望我最開始也能知道它。我最開始的時(shí)候,絕對提交了可疑的報(bào)告,因?yàn)槲抑皇窍肷吓判邪?#xff0c;并且助人為樂。但是,企業(yè)受到了轟炸。找到完全可重復(fù)的安全漏洞,并清楚地報(bào)告它更有幫助。
你可能會想知道誰真正關(guān)心它 - 去問公司,以及在乎其他黑客的想法的人吧。 這很公平。 但至少在 HackerOne 上,你的報(bào)告是重要的,你的統(tǒng)計(jì)數(shù)據(jù)將被跟蹤,每當(dāng)你收到有效的報(bào)告時(shí),都會根據(jù)你的“Signal”記錄數(shù)據(jù),范圍為 -10 到 7,可以平均顯示你的報(bào)告值:
- 提交灌水,你會得到 -10
- 提交被拒絕,你會得到 -5
- 提交說明式信息,你會得到 0
- 提交可解決的報(bào)告,你會得到 7
同樣,誰在乎呢? Signal 現(xiàn)在用于判斷誰能夠收到私有計(jì)劃的邀請,以及誰可以將報(bào)告提交給公開的計(jì)劃。私有計(jì)劃對于黑客來說,通常都是鮮肉 – 這些站點(diǎn)剛剛進(jìn)入漏洞獎勵計(jì)劃,僅僅向一部分黑客開放他們的站點(diǎn)。這意味著,潛在的漏洞和較少的競爭。
對于報(bào)告給其它公司 – 使用我的經(jīng)驗(yàn)作為一個(gè)警告的故事吧:
我被邀請參加一個(gè)私有計(jì)劃,在一天之內(nèi),發(fā)現(xiàn)了八個(gè)漏洞。 但是那天晚上,我向另一個(gè)計(jì)劃提交了一份報(bào)告,得到了一個(gè)無效。 這使我的 Signal 到了 0.96。 第二天,我再次向私有公司報(bào)告,并得到了通知 - 我的 Signal 太低了,我必須等待 30 天來儲存點(diǎn)數(shù),并且其他公司要求 Signal 為 1.0。
真是糟糕! 雖然沒有人找到我在那段時(shí)間發(fā)現(xiàn)的漏洞,但是他們可能會花費(fèi)我的錢。每一天我都檢查了我是否可以再次報(bào)告。 從那以后,我發(fā)誓要提升我的 Signal ,你也應(yīng)該這樣!
祝挖掘順利!
總結(jié)
以上是生活随笔為你收集整理的Web Hacking 101 中文版 二十、漏洞报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一步一步写算法(之 算法总结)【转】
- 下一篇: layer弹出层 获取index