定 價(jià):89 元
叢書(shū)名:網(wǎng)絡(luò)空間安全技術(shù)叢書(shū)
- 作者:[美]彼得·亞沃斯基(Peter Yaworski)
- 出版時(shí)間:2021/10/1
- ISBN:9787111691358
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP393.08
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書(shū)從道德黑客的角度出發(fā),結(jié)合賞金漏洞實(shí)例,向讀者介紹應(yīng)如何處理應(yīng)用程序中的漏洞,如何尋找賞金漏洞和提交方案報(bào)告。主要內(nèi)容包括什么是漏洞和漏洞懸賞,如何在漏洞挖掘平臺(tái)上挖掘開(kāi)放式重定向漏洞、HTTP參數(shù)污染漏洞、跨站請(qǐng)求偽造漏洞、HTML注入和內(nèi)容欺騙漏洞、回車(chē)換行注入漏洞、跨站腳本漏洞、模板注入漏洞、SQL注入漏洞、服務(wù)端請(qǐng)求偽造漏洞、內(nèi)存漏洞、子域接管漏洞、不安全的直接對(duì)象引用漏洞、OAuth漏洞、應(yīng)用程序邏輯和配置漏洞等,并提交給平臺(tái),進(jìn)而對(duì)漏洞進(jìn)行修復(fù),以及如何獲得漏洞獎(jiǎng)金、漏洞報(bào)告如何編寫(xiě)等。
這本書(shū)教你如何在漏洞賞金平臺(tái)搜索漏洞、提交報(bào)告并獲得賞金。不管你是網(wǎng)頁(yè)開(kāi)發(fā)人員、網(wǎng)頁(yè)設(shè)計(jì)師、全職媽媽、10歲的孩子還是75歲的退休人員,都適合閱讀本書(shū),但是擁有一些編程經(jīng)驗(yàn)、熟悉網(wǎng)絡(luò)技術(shù)會(huì)更有助于理解書(shū)中內(nèi)容。
這本書(shū)將向你介紹道德黑客的世界,如何發(fā)現(xiàn)安全漏洞,以及如何向應(yīng)用程序所有者報(bào)告漏洞。當(dāng)我剛開(kāi)始學(xué)習(xí)黑客技術(shù)時(shí),我不僅想知道黑客發(fā)現(xiàn)了什么漏洞,而且想知道他們是如何發(fā)現(xiàn)這些漏洞的。
在我搜索信息的過(guò)程中,總是會(huì)出現(xiàn)同樣的問(wèn)題:
黑客在應(yīng)用程序中發(fā)現(xiàn)了哪些漏洞?
黑客是如何得知應(yīng)用程序中存在這些漏洞的?
黑客如何滲透一個(gè)網(wǎng)站?
黑客攻擊是什么樣子的?它是完全自動(dòng)化的,還是手動(dòng)完成的?
我如何開(kāi)始進(jìn)行滲透和發(fā)現(xiàn)漏洞?
我終登錄了HackerOne,這是一個(gè)漏洞獎(jiǎng)勵(lì)平臺(tái),旨在將道德黑客與尋找黑客來(lái)測(cè)試其應(yīng)用程序的公司聯(lián)系起來(lái)。HackerOne的功能允許道德黑客和公司披露已經(jīng)發(fā)現(xiàn)和修復(fù)的漏洞。
在閱讀那些公開(kāi)的HackerOne報(bào)告時(shí),我努力理解人們已經(jīng)發(fā)現(xiàn)了哪些漏洞,以及這些漏洞會(huì)如何被濫用。我經(jīng)常需要把同一篇報(bào)告重讀兩三遍才能理解它。我意識(shí)到,我和其他初學(xué)者可以從對(duì)現(xiàn)實(shí)世界漏洞的純語(yǔ)言解釋中獲益。
這本書(shū)是一個(gè)重要的參考,它將幫助你理解不同類(lèi)型的Web漏洞。你將學(xué)到如何發(fā)現(xiàn)漏洞,如何上報(bào)它們,如何從中獲得報(bào)酬,以及如何編寫(xiě)防御代碼。但這本書(shū)中不僅涵蓋成功的范例,也包含錯(cuò)誤案例和人們應(yīng)該吸取的教訓(xùn),其中很多問(wèn)題是我自己遇到過(guò)的。
當(dāng)你通讀完本書(shū),你就已經(jīng)邁出了讓網(wǎng)絡(luò)變得更安全的步,并且你應(yīng)該能夠從中賺到一些錢(qián)。
本書(shū)的讀者對(duì)象
這本書(shū)是為學(xué)習(xí)漏洞挖掘技術(shù)的初學(xué)者寫(xiě)的,不管你是網(wǎng)頁(yè)開(kāi)發(fā)人員、網(wǎng)頁(yè)設(shè)計(jì)師、全職媽媽、10歲的孩子還是75歲的退休人員,都可以閱讀本書(shū)。
擁有一些編程經(jīng)驗(yàn)并且熟悉網(wǎng)絡(luò)技術(shù)有助于理解本書(shū)內(nèi)容,但這并不是成為道德黑客的先決條件。例如,你不必是一個(gè)Web開(kāi)發(fā)人員或黑客,但如果你對(duì)基本超文本標(biāo)記語(yǔ)言(HTML)如何架構(gòu)網(wǎng)頁(yè),層疊樣式表(CSS)如何定義網(wǎng)頁(yè)外觀,以及網(wǎng)站的JavaScript動(dòng)態(tài)有所了解的話,將有助于你發(fā)現(xiàn)漏洞和識(shí)別其帶來(lái)的影響。
了解如何編程對(duì)于查找涉及應(yīng)用程序邏輯的漏洞和思考開(kāi)發(fā)人員可能會(huì)犯什么樣的錯(cuò)誤很有幫助。如果你能站在程序員的角度猜猜他們是如何實(shí)現(xiàn)一些程序的,或讀懂他們的代碼,那么你成功發(fā)現(xiàn)漏洞的概率將會(huì)更高。
如果你想學(xué)習(xí)編程,可參考No Starch Press出版的大量書(shū)籍。你也可以在Udacity和Coursera上查看免費(fèi)課程。附錄B中還列出了其他資源。
如何閱讀本書(shū)
每個(gè)描述漏洞類(lèi)型的章節(jié)都有以下結(jié)構(gòu):
1)漏洞類(lèi)型的描述
2)漏洞類(lèi)型的示例
3)提供結(jié)論的總結(jié)
每個(gè)漏洞示例都包括以下內(nèi)容:
我對(duì)發(fā)現(xiàn)和證明漏洞的難度的估計(jì)
與發(fā)現(xiàn)漏洞的位置相關(guān)聯(lián)的URL
原始披露報(bào)告或報(bào)告的鏈接
報(bào)告漏洞的日期
漏洞上報(bào)者通過(guò)上報(bào)信息所得到的獎(jiǎng)金
關(guān)于漏洞的清晰描述
可以應(yīng)用到你自己的漏洞挖掘中的提示
你不必把這本書(shū)從頭到尾讀完。如果你對(duì)某一章節(jié)感興趣,先讀它。在某些情況下,我會(huì)引用前面章節(jié)中討論過(guò)的觀點(diǎn),但是在這樣做的時(shí)候,我會(huì)盡量說(shuō)明我在哪里定義了這個(gè)術(shù)語(yǔ),以便你可以參考相關(guān)章節(jié)。當(dāng)你進(jìn)行漏洞搜索時(shí),記得翻閱本書(shū)。
本書(shū)的主要內(nèi)容
以下是每章內(nèi)容的概述。
第1章:解釋了什么是漏洞和漏洞獎(jiǎng)勵(lì),以及客戶(hù)端和服務(wù)器之間的區(qū)別,還介紹了互聯(lián)網(wǎng)是如何工作的,包括HTTP請(qǐng)求、響應(yīng)和方法,以及HTTP無(wú)狀態(tài)的含義。
第2章:涉及利用給定域的信任將用戶(hù)重定向到不同域以實(shí)施攻擊。
第3章:涵蓋了攻擊者如何操縱HTTP請(qǐng)求,注入額外的參數(shù),使目標(biāo)網(wǎng)站產(chǎn)生信任,以及導(dǎo)致意外行為。
第4章:涵蓋了攻擊者如何利用惡意網(wǎng)站使目標(biāo)瀏覽器向另一個(gè)網(wǎng)站發(fā)送HTTP請(qǐng)求,然后,另一個(gè)網(wǎng)站就裝作這個(gè)請(qǐng)求是合法的,并且是由目標(biāo)用戶(hù)故意發(fā)送的。
第5章:解釋了如何將自己設(shè)計(jì)的HTML元素注入目標(biāo)網(wǎng)站的網(wǎng)頁(yè)中。
第6章:演示了攻擊者如何向HTTP消息注入編碼字符,以改變服務(wù)器、代理和瀏覽器對(duì)它們的解釋。
第7章:解釋了攻擊者如何利用沒(méi)有對(duì)用戶(hù)輸入進(jìn)行消毒的站點(diǎn)來(lái)執(zhí)行他們自己的JavaScript代碼。
第8章:解釋了當(dāng)站點(diǎn)沒(méi)有清理模板中使用的用戶(hù)輸入時(shí),攻擊者是如何利用template引擎的。本章包括客戶(hù)端和服務(wù)器端示例。
第9章:描述了數(shù)據(jù)庫(kù)支持站點(diǎn)上的漏洞如何讓攻擊者意外查詢(xún)或攻擊站點(diǎn)的數(shù)據(jù)庫(kù)。
第10章:解釋了攻擊者如何讓服務(wù)器執(zhí)行意外的網(wǎng)絡(luò)請(qǐng)求。
第11章:展示了攻擊者如何利用應(yīng)用程序解析XML輸入和處理輸入中包含的外部實(shí)體。
第12章:涵蓋攻擊者如何利用服務(wù)器或應(yīng)用程序來(lái)運(yùn)行自己的代碼。
第13章:解釋了攻擊者如何利用應(yīng)用程序的內(nèi)存管理來(lái)引發(fā)意外行為,包括執(zhí)行攻擊者自己注入的命令。
第14章:展示了當(dāng)攻擊者可以代表合法伙伴域控制子域時(shí),子域接管是如何發(fā)生的。
第15章:揭示了攻擊者如何對(duì)基于初始條件的站點(diǎn)進(jìn)程競(jìng)態(tài)完成情況加以利用,該初始條件在進(jìn)程執(zhí)行時(shí)失效。
第16章:涵蓋當(dāng)攻擊者可以訪問(wèn)或修改對(duì)象(比如他們不應(yīng)該訪問(wèn)的文件、數(shù)據(jù)庫(kù)記錄或賬戶(hù))的引用時(shí)出現(xiàn)的漏洞。
第17章:涵蓋協(xié)議實(shí)施中的漏洞,該協(xié)議旨在簡(jiǎn)化和標(biāo)準(zhǔn)化Web應(yīng)用程序、
譯者序
序言
前言
致謝
作者簡(jiǎn)介
技術(shù)審校者簡(jiǎn)介
第1章 漏洞懸賞入門(mén)1
1.1 漏洞和漏洞懸賞1
1.2 客戶(hù)端和服務(wù)器端2
1.3 當(dāng)你訪問(wèn)一個(gè)網(wǎng)址時(shí)發(fā)生了什么3
1.4 HTTP請(qǐng)求7
1.5 總結(jié)10
第2章 開(kāi)放式重定向11
2.1 開(kāi)放式重定向如何工作12
2.2 Shopify主題設(shè)置的開(kāi)放式重定向漏洞14
2.3 Shopify 登錄的開(kāi)放式重定向漏洞14
2.4 HackerOne中間網(wǎng)頁(yè)重定向漏洞16
2.5 總結(jié)18
第3章 HTTP參數(shù)污染19
3.1 服務(wù)器端 HPP19
3.2 客戶(hù)端HPP22
3.3 HackerOne分享按鈕23
3.4 Twitter取消訂閱通知24
3.5 Twitter彈出窗口26
3.6 總結(jié)28
第4章 跨站請(qǐng)求偽造29
4.1 身份認(rèn)證30
4.2 通過(guò)GET請(qǐng)求發(fā)起CSRF攻擊32
4.3 通過(guò)POST請(qǐng)求發(fā)起CSRF攻擊33
4.4 抵御CSRF攻擊35
4.5 Shopify Twitter 斷連接攻擊37
4.6 改變用戶(hù)的Instacart地區(qū)攻擊38
4.7 Badoo全賬號(hào)接管39
4.8 總結(jié)42
第5章 HTML注入和內(nèi)容欺騙43
5.1 通過(guò)字符編碼進(jìn)行Coinbase評(píng)論注入攻擊44
5.2 HackerOne非預(yù)期HTML包含漏洞46
5.3 HackerOne非預(yù)期HTML包含補(bǔ)丁繞過(guò)漏洞48
5.4 Within Security內(nèi)容欺騙漏洞49
5.5 總結(jié)51
第6章 回車(chē)換行注入52
6.1 HTTP請(qǐng)求夾帶攻擊53
6.2 v.shopify.com響應(yīng)分割攻擊53
6.3 Twitter HTTP響應(yīng)分割攻擊55
6.4 總結(jié)57
第7章 跨站腳本58
7.1 XSS的類(lèi)型62
7.2 Shopify Wholesale XSS漏洞65
7.3 Shopify貨幣格式XSS漏洞67
7.4 雅虎郵件存儲(chǔ)型XSS漏洞68
7.5 Google圖像搜索XSS漏洞70
7.6 Google標(biāo)簽管理器存儲(chǔ)型XSS漏洞71
7.7 聯(lián)合航空網(wǎng)站XSS漏洞73
7.8 總結(jié)76
第8章 模板注入78
8.1 服務(wù)器端模板注入78
8.2 客戶(hù)端模板注入79
8.3 Uber AngularJS模板注入80
8.4 Uber Flask Jinja2模板注入81
8.5 Rails動(dòng)態(tài)呈現(xiàn)漏洞84
8.6 Unikrn Smarty模板注入86
8.7 總結(jié)89
第9章 SQL注入90
9.1 SQL數(shù)據(jù)庫(kù)90
9.2 防御SQLi92
9.3 雅虎體育盲SQLi93
9.4 Uber盲SQLi96
9.5 Drupal SQLi100
9.6 總結(jié)103
第10章 服務(wù)器端請(qǐng)求偽造105
10.1 展示SSRF的影響105
10.2 調(diào)用 GET 與 POST 請(qǐng)求106
10.3 執(zhí)行盲測(cè) SSRF107
10.4 使用 SSRF 響應(yīng)攻擊用戶(hù)108
10.5 ESEA SSRF 和 AWS 元數(shù)據(jù)請(qǐng)求108
10.6 Google內(nèi)部 DNS SSRF111
10.7 使用Webhook進(jìn)行內(nèi)網(wǎng)端口掃描115
10.8 總結(jié)117
第11章 XML外部實(shí)體118
11.1 XML118
11.1.1 文檔類(lèi)型定義119
11.1.2 XML 實(shí)體121
11.2 XXE攻擊如何發(fā)揮作用122
11.3 讀取Google的訪問(wèn)權(quán)限123
11.4 Facebook XXE Word漏洞124
11.5 Wikiloc XXE126
11.6 總結(jié)129
第12章 遠(yuǎn)程代碼執(zhí)行130
12.1 執(zhí)行Shell命令130
12.2 執(zhí)行函數(shù)132
12.3 遠(yuǎn)程調(diào)用的升級(jí)策略133
12.4 Polyvore ImageMagick漏洞134
12.5 Algolia RCE 漏洞137
12.6 SSH RCE 漏洞139
12.7 總結(jié)141
第13章 內(nèi)存漏洞142
13.1 緩沖區(qū)溢出143
13.2 越界讀取146
13.3 PHP ftp_genlist()整數(shù)溢出漏洞147
13.4 Python Hotshot模塊148
13.5 Libcurl越界讀取149
13.6 總結(jié)150
第14章 子域接管151
14.1 理解域名151
14.2 子域接管工作原理152
14.3 Ubiquiti的子域接管153
14.4 Scan.me指向Zendesk154
14.5 Shopify Windsor子域接管155
14.6 Snapchat Fastly接管156
14.7 Legal Robot接管157
14.8 Uber SendGrid Mail接管158
14.9 總結(jié)160
第15章 競(jìng)爭(zhēng)條件161
15.1 多次接受同一個(gè)HackerOne邀請(qǐng)162
15.2 Keybase超過(guò)邀請(qǐng)數(shù)上限164
15.3 HackerOne付款競(jìng)爭(zhēng)性條件165
15.4 Shopify合作伙伴競(jìng)爭(zhēng)條件166
15.5 總結(jié)168
第16章 不安全的直接對(duì)象引用169
16.1 查找簡(jiǎn)單的IDOR169
16.2 查找復(fù)雜的IDOR170
16.3 Binary.com 權(quán)限升級(jí)171
16.4 Moneybird 應(yīng)用程序創(chuàng)建172
16.5 Twitter Mopub API Token 被盜174
16.6 ACME 客戶(hù)信息泄露175
16.7 總結(jié)177
第17章 OAuth漏洞178
17.1 OAuth工作流179
17.2 竊取Slack OAuth令牌182
17.3 使用默認(rèn)密碼通過(guò)身份驗(yàn)證183
17.4 竊取微軟登錄令牌184
17.5 刷Facebook官方訪問(wèn)令牌186
17.6 總結(jié)187
第18章 應(yīng)用程序邏輯和配置漏洞189
18.1 繞過(guò)Shopify管理員特權(quán)190
18.2 繞過(guò)Twitter賬戶(hù)保護(hù)192
18.3 HackerOne信號(hào)處理193
18.4 HackerOne不正確的S3 Bucket
權(quán)限194
18.5 繞過(guò)GitLab雙重身份驗(yàn)證196
18.6 雅虎PHP的信息披露197
18.7 HackerOne Hacktivity投票199
18.8 訪問(wèn)PornHub的Memcache安裝201
18.9 總結(jié)203<