Web安全測試

所属分类:計算機安全  
出版时间:2010-3   出版时间:清華大學出版社   作者:霍普(Paco Hope),沃爾瑟(Ben Waltber)   页数:281   译者:傅鑫  

前言

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

内容概要

  在你对Web应用所执行的测试中,安全测试可能是最重要的,但它却常常是最容易被忽略的。本书中的秘诀演示了开发和测试人员在进行单元测试、回归测试或探索性测试的同时,如何去检查最常见的Web安全问题。与即兴的安全评估不同的是,这些秘诀是可重复的、简洁的、系统的——可以完美地集成到你的常规测试套装中。  本书中的秘诀所覆盖的基础知识包括了从观察客户端和服务器之间的消息到使用脚本完成登录并执行Web应用功能的多阶段测试。在本书的最后,你将能够建立精确定位到Ajax函数的测试,以及适用于常见怀疑对象(跨站式脚本和注入攻击)的大型多级测试。  本书将帮助你:  ·获取、安装和配置有用的——且免费的——安全测试工具  ·理解你的应用如何与用户通信,这样你就可以在测试中更好地模拟攻击  ·从许多不同的模拟常见攻击(比如SQL注入、跨站式脚本和操纵隐藏表单域)的方法中进行选择  ·作为自动化测试的出发点,通过使用秘诀中的脚本和例子,使你的测试可重复  不用再担心午夜来电话告诉你站点被破坏了。通过本书和示例中所用的免费工具,你可以将安全因素加入到你的测试套装中,从而得以睡个安稳觉。

作者简介

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

书籍目录

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

章节摘录

插图:提供证据在安全测试中,我们考虑无法接受的输入的全体集合——无限集——并重点关注那些很可能在我们软件的安全需求方面造成严重失效的输入子集——仍然是无限集。我们需要确定这些安全需求是什么,并决定什么类型的测试能够证明这些需求得到满足。这并不简单,但是通过逻辑和勤奋,我们能够向产品所有者提供有用的证据。我们证明安全满足需求的方式将与证明功能满足要求的方法相同。我们建立输入,确定预期结果,然后建立并运行测试来锻炼系统。以我们与不熟悉安全测试的测试人员交往的经历来看,第一步和最后一步是最难的。设计反安全的输入和对软件进行测试是最难做的事情。大多数时间,预期的结果相当简单。如果我询问产品经理:“有人能够在不登录的情况下下载敏感数据吗?”。通常他很容易就会说不。因此,提供证据过程中较难的部分是创造出可能会造成这种状况的输入,然后确定这种状况是否会发生。满足需求有关软件工程学的ANSI/IEEE标准729将“需求”定义为用户为了解决问题或达成目标所需要的条件或功能,或为了满足合同、标准,规范或其他正式起效的文档.系统所必须拥有或满足的条件或功能。在得知需求的情况下,所有测试人员都进行测试直到满足需求。即使需求并不是以充斥着“该软件应当”语句的形式出现。软件测试人员也往往能够就正确的响应达成共识,然后以预期结果的形式将其整理到测试之中。安全测试与功能测试相似,因为它同样也依赖于对“我们想要怎样的行为”的理解。当然也可以说,与功能测试相比,安全测试更加依赖于需求,因为它有更多可能的输入和输出可供筛选。在需求编写者的脑海里,安全行为的定义往往更加模糊,因为大多数软件都不是安全软件。该软件有一些其他方面的主要用途,而安全是一种必须存在的非功能性需求。因为对安全的关注不够,所以这方面的需求常常缺失或不完整。

媒体关注与评论

“贯穿整本书的精彩的真实示例,使理论生动起来,并使攻击引人入胜。”  ——Lee Copeland.StarEast和StarWest测试会议的议程主席“最后,这是一本供测试人员使用的普通意义上的手册,它讲授安全测试的机制。与其秘诀使用方法不相符的是,这本书实际上武装了测试人员,使他们能够找出甚至连某些最著名的安全工具也无法发现的漏洞。”  ——MattFisher,Piscis有限责任公司的创始人和CEO

编辑推荐

《Web安全测试》将帮助你:获取、安装和配置有用的——且免费的——安全测试工具理解你的应用如何与用户通信,这样你就可以在测试中更好地模拟攻击从许多不同的模拟常见攻击(比如SQL注入、跨站式脚本和操纵隐藏表单域)的方法中进行选择作为自动化测试的出发点,通过使用秘诀中的脚奉和例子,使你的测试可重复不用再担心午夜来电话告诉你站点被破坏了。通过《Web安全测试》和示例中所用的免费工具,你可以将安全因素加入到你的测试套装中,从而得以睡个安稳觉。

图书封面




    Web安全測試下載



用户评论 (总计17条)

 
 

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

計算機與互聯網 PDF免费下载,計算機安全PDF免费下载。 计算机教程网 

计算机教程网 @ 2017