Web安全測試

出版時間:2010-3  出版社:清華大學(xué)出版社  作者:霍普(Paco Hope),沃爾瑟(Ben Waltber)  頁數(shù):281  譯者:傅鑫  
Tag標(biāo)簽:無  

前言

Web應(yīng)用遭受著格外多的安全攻擊。其原因在于,網(wǎng)站及在網(wǎng)站上運(yùn)行的應(yīng)用在某種意義上是所有公司和組織的虛擬正門。Web自1993年以來的發(fā)展令人瞠目結(jié)舌,就其被廣泛采用的速度而言,甚至超過了電視和電力技術(shù)。Web應(yīng)用在軟件開發(fā)中所扮演的角色不斷成長并且越來越重要。事實上,評論家日前稱我們已經(jīng)進(jìn)入了Web 3.0時代。問題在于,安全性確實沒能跟上這種發(fā)展步伐。目前,我們在加固Web 1.0應(yīng)用的安全方面仍有很多的問題,以致于還沒有開始加固Web 2.0的安全,更別提Web 3.0了。在繼續(xù)之前,我有一些話不吐不快。Web應(yīng)用是很重要而且正在不斷發(fā)展的一類軟件,但它們并不是唯一的軟件類型!事實上,考慮到遺留應(yīng)用,嵌入式設(shè)備以及世界上的其他代碼,我相信Web應(yīng)用只占到所有軟件的一小部分。因此,當(dāng)世人將所有對軟件安全的注意力全部傾注在Web應(yīng)用上時,我感到擔(dān)憂。有大量其他類型的重要軟件并不依賴于Web。這就是我自稱是軟件安全人員而不是Web應(yīng)用安全人員的原因。無論如何,Web應(yīng)用安全和軟件安全確實存在許多共同的問題和缺陷(這一點也不奇怪,因為前者是后者的子集)。一個共同的問題是將安全作為一項功能,或者某種“東西”。安全并不是某種“東西”,它是系統(tǒng)的一項屬性。這意味著再多的身份驗證技術(shù)、神奇的加密技術(shù)或者面向服務(wù)架構(gòu)(SOA)Web服務(wù)安全API都無法自動地解決安全問題。事實上,與任何其他方面相比,安全與測試及保障都有著更多的關(guān)聯(lián)。打開這本書,哦,我們確實需要一種有效的Web應(yīng)用安全測試方法么?要知道,許多由安全專家為Web應(yīng)用測試所設(shè)計的“測試”都不具有任何測試嚴(yán)密性。原來測試本身就是一門學(xué)科,背后有整套的學(xué)問。Paco和Ben帶給我們的是對測試線索的深入了解。這真是一對珍貴的組合。所有稱職的測試人員都理解,關(guān)于測試的一項關(guān)鍵要素是:測試結(jié)果必須能夠用于指導(dǎo)行動。差的測試結(jié)果會給出像“bigjavaglob.java文件中存在XSS問題”這樣含糊的報告。開發(fā)人員怎么會知道如何去修復(fù)這個問題呢?這里缺少的是適當(dāng)?shù)卣f明XSS是什么(當(dāng)然,它指的是跨站式腳本),指出在成千上萬行代碼的文件中問題可能出現(xiàn)的位置,以及如何做才能修復(fù)它。本書中包含了大量技術(shù)信息,足以供像樣的測試人員向真正起作用的開發(fā)人員報告可用于指導(dǎo)行動的結(jié)果。但愿本書中的內(nèi)容不僅能夠被安全人員采用,而且也能夠被Web應(yīng)用的測試人員所采用。事實上,質(zhì)量保證(QA)人員會高興地看到,本書正好面向測試人員,書中采用了回歸測試、覆蓋率以及單元測試等術(shù)語。以我的經(jīng)驗來看,就測試而言,測試人員做得要比安全人員好得多。使用得當(dāng)?shù)脑?,本書可以將安全人員改造成更優(yōu)秀的測試人員,將測試人員改造成更優(yōu)秀的安全人員。本書的另一重要特點在于,它明確地將重點放在工具和自動化上。與現(xiàn)代安全人員一樣,現(xiàn)代測試人員也使用工具。本書包含了大量基于實際工具的真實例子,其中許多工具都可以從網(wǎng)上免費(fèi)下載。事實上,本書適用于指導(dǎo)正確的工具使用方法,因為書中描述的許多開源工具都沒有自帶內(nèi)置的手冊或入門指導(dǎo)。我喜歡實踐性的資料,而這本書在實際動手方面做到了極致。一種過度樂觀的軟件開發(fā)方法必然會創(chuàng)造出令人吃驚的東西,但是從安全角度而言,它同樣也會使我們陷入困境。簡單地說,我們會忽視去考慮自己的軟件在遭到故意和惡意攻擊時會發(fā)生什么。攻擊者就在大門口,每天都在探查我們的Web應(yīng)用。

內(nèi)容概要

  在你對Web應(yīng)用所執(zhí)行的測試中,安全測試可能是最重要的,但它卻常常是最容易被忽略的。本書中的秘訣演示了開發(fā)和測試人員在進(jìn)行單元測試、回歸測試或探索性測試的同時,如何去檢查最常見的Web安全問題。與即興的安全評估不同的是,這些秘訣是可重復(fù)的、簡潔的、系統(tǒng)的——可以完美地集成到你的常規(guī)測試套裝中?! ”緯械拿卦E所覆蓋的基礎(chǔ)知識包括了從觀察客戶端和服務(wù)器之間的消息到使用腳本完成登錄并執(zhí)行Web應(yīng)用功能的多階段測試。在本書的最后,你將能夠建立精確定位到Ajax函數(shù)的測試,以及適用于常見懷疑對象(跨站式腳本和注入攻擊)的大型多級測試?! ”緯鴮椭悖骸  か@取、安裝和配置有用的——且免費(fèi)的——安全測試工具  ·理解你的應(yīng)用如何與用戶通信,這樣你就可以在測試中更好地模擬攻擊  ·從許多不同的模擬常見攻擊(比如SQL注入、跨站式腳本和操縱隱藏表單域)的方法中進(jìn)行選擇  ·作為自動化測試的出發(fā)點,通過使用秘訣中的腳本和例子,使你的測試可重復(fù)  不用再擔(dān)心午夜來電話告訴你站點被破壞了。通過本書和示例中所用的免費(fèi)工具,你可以將安全因素加入到你的測試套裝中,從而得以睡個安穩(wěn)覺。

作者簡介

Paco Hope,是Cigital公司的一名技術(shù)經(jīng)理,《Mastering FreeBsD and 0penBsDsecurity》  (由O’Reilly出版)的合著者之一。他也發(fā)表過有關(guān)誤用、濫用案例和PKI的文章。他曾被邀請到會議就軟件安全需求、Web應(yīng)用安全和嵌入式系統(tǒng)安全等話題發(fā)表演講。在Cigital,他曾擔(dān)任MasterCard Internationa!在安全策略方面的主題專家,而且曾協(xié)助一家世界500強(qiáng)的服務(wù)業(yè)公司編寫軟件安全策略。他也為軟件開發(fā)和測試人員提供軟件安全基礎(chǔ)方面的培訓(xùn)。他還曾為博彩業(yè)和移動通信行業(yè)中的幾家公司提出過軟件安全方面的建議。Paco曾在威廉瑪麗學(xué)院主修計算機(jī)科學(xué)和英語,并從弗吉尼亞大學(xué)獲得計算機(jī)科學(xué)方面的理學(xué)碩士學(xué)位。Ben Waltller,是Cigital公司的一名顧問,Edit C00kies工具的開發(fā)者之一。他同時參與標(biāo)準(zhǔn)質(zhì)量保證和軟件安全方面的工作。他日復(fù)一日地設(shè)計和執(zhí)行測試一一因此他理解忙碌的QA領(lǐng)域?qū)唵蚊卦E的需求。他也曾對開放式Web應(yīng)用程序安全項目(0WAsP)的成員就w曲應(yīng)用測試工具發(fā)表過演講。

書籍目錄

序 1前言 3第1章 緒論 131.1 什么是安全測試 131.2 什么是Web應(yīng)用 171.3 Web應(yīng)用基礎(chǔ) 211.4 Web應(yīng)用安全測試 251.5 方法才是重點 26第2章 安裝免費(fèi)工具 292.1 安裝Firefox 292.2 安裝Firefox擴(kuò)展 302.3 安裝Firebug 312.4 安裝OWASP的WebScarab 322.5 在Windows上安裝Perl及其軟件包 332.6 在Linux, Unix或OS X上安裝Perl和使用CPAN 342.7 安裝CAL9000 352.8 安裝ViewState Decoder 362.9 安裝cURL 362.10 安裝Pornzilla 372.11 安裝Cygwin 382.12 安裝Nikto 2 392.13 安裝Burp Suite 402.14 安裝Apache HTTP Server 41第3章 基本觀察 433.1 查看網(wǎng)頁的HTML源代碼 443.2 查看源代碼,高級功能 453.3 使用Firebug觀察實時的請求頭 483.4 使用WebScarab觀察實時的POST數(shù)據(jù) 523.5 查看隱藏表單域 553.6 使用TamperData觀察實時的響應(yīng)頭 563.7 高亮顯示JavaScript和注釋 593.8 檢測JavaScript事件 603.9 修改特定的元素屬性 613.10 動態(tài)跟蹤元素屬性 633.11 結(jié)論 65第4章 面向Web的數(shù)據(jù)編碼 664.1 辨別二進(jìn)制數(shù)據(jù)表示 674.2 使用Base-64 694.3 在網(wǎng)頁中轉(zhuǎn)換Base-36數(shù)字 714.4 在Perl中使用Base-36 714.5 使用以URL方式編碼的數(shù)據(jù) 724.6 使用HTML實體數(shù)據(jù) 744.7 計算散列值 764.8 辨別時間格式 784.9 以編程方式對時間值進(jìn)行編碼 804.10 解碼ASP.NET的視圖狀態(tài) 814.11 解碼多重編碼 83第5章 篡改輸入 855.1 截獲和修改POST請求 865.2 繞過輸入限制 895.3 篡改URL 905.4 自動篡改URL 935.5 測試對URL長度的處理 945.6 編輯Cookie 965.7 偽造瀏覽器頭信息 995.8 上傳帶有惡意文件名的文件 1015.9 上傳大文件 1045.10 上傳惡意XML實體文件 1055.11 上傳惡意XML結(jié)構(gòu) 1075.12 上傳惡意ZIP文件 1095.13 上傳樣例病毒文件 1105.14 繞過用戶界面的限制 111第6章 自動化批量掃描 1146.1 使用WebScarab爬行網(wǎng)站 1156.2 將爬行結(jié)果轉(zhuǎn)換為清單 1176.3 減少要測試的URL 1206.4 使用電子表格程序來精簡列表 1206.5 使用LWP對網(wǎng)站做鏡像 1216.6 使用wget對網(wǎng)站做鏡像 1236.7 使用wget對特定的清單做鏡像 1246.8 使用Nikto掃描網(wǎng)站 1256.9 理解Nikto的輸出結(jié)果 1276.10 使用Nikto掃描HTTPS站點 1286.11 使用帶身份驗證的Nikto 1296.12 在特定起始點啟動Nikto 1306.13 在Nikto中使用特定的會話Cookie 1316.14 使用WSFuzzer測試Web服務(wù) 1326.15 理解WSFuzzer的輸出結(jié)果 134第7章 使用cURL實現(xiàn)特定任務(wù)的自動化 1377.1 使用cURL獲取頁面 1387.2 獲取URL的許多變體 1397.3 自動跟蹤重定向 1407.4 使用cURL檢查跨站式腳本 1417.5 使用cURL檢查目錄遍歷 1447.6 冒充特定類型的網(wǎng)頁瀏覽器或設(shè)備 1477.7 以交互方式冒充另一種設(shè)備 1497.8 使用cURL模仿搜索引擎 1517.9 通過假造Referer頭信息來偽造工作流程 1527.10 僅獲取HTTP頭 1537.11 使用cURL發(fā)送POST請求 1547.12 保持會話狀態(tài) 1567.13 操縱Cookie 1577.14 使用cURL上傳文件 1587.15 建立多級測試用例 1597.16 結(jié)論 164第8章 使用LibWWWPerl實現(xiàn)自動化 1668.1 編寫簡單的Perl腳本來獲取頁面 1678.2 以編程方式更改參數(shù) 1698.3 使用POST模仿表單輸入 1708.4 捕獲和保存Cookie 1728.5 檢查會話過期 1738.6 測試會話固定 1758.7 發(fā)送惡意Cookie值 1778.8 上傳惡意文件內(nèi)容 1798.9 上傳帶有惡意名稱的文件 1818.10 上傳病毒到應(yīng)用 1828.11 使用Perl解析接收到的值 1848.12 以編程方式來編輯頁面 1868.13 使用線程化提高性能 189第9章 查找設(shè)計缺陷 1919.1 繞過必需的導(dǎo)航 1929.2 嘗試特權(quán)操作 1949.3 濫用密碼恢復(fù) 1959.4 濫用可預(yù)測的標(biāo)識符 1979.5 預(yù)測憑證 1999.6 找出應(yīng)用中的隨機(jī)數(shù) 2009.7 測試隨機(jī)數(shù) 2029.8 濫用可重復(fù)性 2049.9 濫用高負(fù)載操作 2069.10 濫用限制性的功能 2089.11 濫用競爭條件 209第10章 攻擊AJAX 21110.1 觀察實時的AJAX請求 21310.2 識別應(yīng)用中的JavaScript 21410.3 從AJAX活動回溯到源代碼 21510.4 截獲和修改AJAX請求 21610.5 截獲和修改服務(wù)器響應(yīng) 21810.6 使用注入數(shù)據(jù)破壞AJAX 22010.7 使用注入XML破壞AJAX 22210.8 使用注入JSON破壞AJAX 22310.9 破壞客戶端狀態(tài) 22410.10 檢查跨域訪問 22610.11 通過JSON劫持來讀取私有數(shù)據(jù) 227第11章 操縱會話 22911.1 在Cookie中查找會話標(biāo)識符 23011.2 在請求中查找會話標(biāo)識符 23211.3 查找Authentication頭 23311.4 分析會話ID過期 23511.5 使用Burp分析會話標(biāo)識符 23911.6 使用WebScarab分析會話隨機(jī)性 24011.7 更改會話以逃避限制 24511.8 假扮其他用戶 24711.9 固定會話 24811.10 測試跨站請求偽造 249第12章 多層面的測試 25112.1 使用XSS竊取Cookie 25112.2 使用XSS創(chuàng)建覆蓋 25312.3 使用XSS產(chǎn)生HTTP請求 25512.4 以交互方式嘗試基于DOM的XSS 25612.5 繞過字段長度限制(XSS) 25812.6 以交互方式嘗試跨站式跟蹤 25912.7 修改Host頭 26112.8 暴力猜測用戶名和密碼 26312.9 以交互方式嘗試PHP包含文件注入 26512.10 制作解壓縮炸彈 26612.11 以交互方式嘗試命令注入 26812.12 系統(tǒng)地嘗試命令注入 27012.13 以交互方式嘗試XPath注入 27312.14 以交互方式嘗試服務(wù)器端包含(SSI)注入 27512.15 系統(tǒng)地嘗試服務(wù)器端包含(SSI)注入 27612.16 以交互方式嘗試LDAP注入 27812.17 以交互方式嘗試日志注入 280

章節(jié)摘錄

插圖:提供證據(jù)在安全測試中,我們考慮無法接受的輸入的全體集合——無限集——并重點關(guān)注那些很可能在我們軟件的安全需求方面造成嚴(yán)重失效的輸入子集——仍然是無限集。我們需要確定這些安全需求是什么,并決定什么類型的測試能夠證明這些需求得到滿足。這并不簡單,但是通過邏輯和勤奮,我們能夠向產(chǎn)品所有者提供有用的證據(jù)。我們證明安全滿足需求的方式將與證明功能滿足要求的方法相同。我們建立輸入,確定預(yù)期結(jié)果,然后建立并運(yùn)行測試來鍛煉系統(tǒng)。以我們與不熟悉安全測試的測試人員交往的經(jīng)歷來看,第一步和最后一步是最難的。設(shè)計反安全的輸入和對軟件進(jìn)行測試是最難做的事情。大多數(shù)時間,預(yù)期的結(jié)果相當(dāng)簡單。如果我詢問產(chǎn)品經(jīng)理:“有人能夠在不登錄的情況下下載敏感數(shù)據(jù)嗎?”。通常他很容易就會說不。因此,提供證據(jù)過程中較難的部分是創(chuàng)造出可能會造成這種狀況的輸入,然后確定這種狀況是否會發(fā)生。滿足需求有關(guān)軟件工程學(xué)的ANSI/IEEE標(biāo)準(zhǔn)729將“需求”定義為用戶為了解決問題或達(dá)成目標(biāo)所需要的條件或功能,或為了滿足合同、標(biāo)準(zhǔn),規(guī)范或其他正式起效的文檔.系統(tǒng)所必須擁有或滿足的條件或功能。在得知需求的情況下,所有測試人員都進(jìn)行測試直到滿足需求。即使需求并不是以充斥著“該軟件應(yīng)當(dāng)”語句的形式出現(xiàn)。軟件測試人員也往往能夠就正確的響應(yīng)達(dá)成共識,然后以預(yù)期結(jié)果的形式將其整理到測試之中。安全測試與功能測試相似,因為它同樣也依賴于對“我們想要怎樣的行為”的理解。當(dāng)然也可以說,與功能測試相比,安全測試更加依賴于需求,因為它有更多可能的輸入和輸出可供篩選。在需求編寫者的腦海里,安全行為的定義往往更加模糊,因為大多數(shù)軟件都不是安全軟件。該軟件有一些其他方面的主要用途,而安全是一種必須存在的非功能性需求。因為對安全的關(guān)注不夠,所以這方面的需求常常缺失或不完整。

媒體關(guān)注與評論

“貫穿整本書的精彩的真實示例,使理論生動起來,并使攻擊引人入勝。”  ——Lee Copeland.StarEast和StarWest測試會議的議程主席“最后,這是一本供測試人員使用的普通意義上的手冊,它講授安全測試的機(jī)制。與其秘訣使用方法不相符的是,這本書實際上武裝了測試人員,使他們能夠找出甚至連某些最著名的安全工具也無法發(fā)現(xiàn)的漏洞?!薄  狹attFisher,Piscis有限責(zé)任公司的創(chuàng)始人和CEO

編輯推薦

《Web安全測試》將幫助你:獲取、安裝和配置有用的——且免費(fèi)的——安全測試工具理解你的應(yīng)用如何與用戶通信,這樣你就可以在測試中更好地模擬攻擊從許多不同的模擬常見攻擊(比如SQL注入、跨站式腳本和操縱隱藏表單域)的方法中進(jìn)行選擇作為自動化測試的出發(fā)點,通過使用秘訣中的腳奉和例子,使你的測試可重復(fù)不用再擔(dān)心午夜來電話告訴你站點被破壞了。通過《Web安全測試》和示例中所用的免費(fèi)工具,你可以將安全因素加入到你的測試套裝中,從而得以睡個安穩(wěn)覺。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Web安全測試 PDF格式下載


用戶評論 (總計17條)

 
 

  •   花了一個晚上 看了一大半 感覺比小說還不經(jīng)看整體上只是很粗淺的介紹了一些工具而且作者太偏愛通過firefox來進(jìn)行調(diào)試了,比如firebug之類的工具 Chrome上面直接有何必費(fèi)那么多功夫去介紹?連介紹網(wǎng)絡(luò)記錄都花了那么多的篇幅雖然亞馬遜打了那么多的折扣 但是感覺還是不太值得當(dāng)然 不是一點干貨也沒有。此書在廁所讀比較合適 呵呵
  •   書寫得不錯,翻譯也可以,但印刷尤其是紙的質(zhì)量較差。
  •   感覺內(nèi)容最用不大。。
  •   測試人員應(yīng)該了解了解,大致看了一下,對網(wǎng)站安全有了進(jìn)一步的認(rèn)識
  •   可以吧,對謝謝安全測試很有幫助。
  •   web安全范圍太廣,該書題目很大內(nèi)容很少.
  •   總體來說,內(nèi)容還算不錯
  •   怎么說呢,這本書嘛,里面的代碼全是SHELL和PERL代碼,不懂這兩個腳本語言的,最好不要買……全是例子也不錯。
  •   這本書籍對于挖掘安全漏洞的職業(yè)人員非常棒。
  •   大體看了一遍,還要有時間細(xì)看一下,服務(wù)號。書的質(zhì)量一般
  •   還沒有看內(nèi)容,但是紙張一看就像盜版,質(zhì)量太差,與其他三本書一起買的,這本連塑料包裝都沒有,其他三本質(zhì)量都很好。
  •   是正版書,很喜歡,同學(xué)推薦。
  •   100-20 湊單買的 是驗證web安全的好書
  •   書的內(nèi)容還沒有看,不過紙張不怎么樣
  •   web安全測試
  •   很好 非常喜歡 后面會繼續(xù)賣
  •   了解下web的安全測試
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7