# WEB 應用安全測試備忘單
> 原文:[Web Application Security Testing Cheat Sheet](https://www.owasp.org/index.php/Web_Application_Security_Testing_Cheat_Sheet)
> 來源:[WEB應用安全測試備忘單](http://cheatsheets.hackdig.com/?8.htm)
## 介紹
這個備忘單是一個對WEB應用程序執行黑盒測試的任務清單。
## 目的
這個清單可以當成有經驗的測試老手的備忘錄、結合OWASP測試指南一起使用。清單將與測試指南v4一起更新(<https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents>)。
我們希望把這個備忘單做成XML文檔,這樣就可以使用腳本來將其轉換成各種格式,如pdf、Media Wki、HTML等,這樣同樣使得將文檔轉換為某種打印格式變得容易。
感謝所有給予反饋和幫助的人,如果你有任何意見或建議,歡迎提出并加入到編輯隊伍中來。
## 檢查列表
### 收集信息
手動訪問站點
使用爬蟲來抓取(手工)無法訪問或隱藏的內容
檢查泄露信息的文件,如robots.txt, sitemap.xml, .DS_Store
檢查主要的搜索引擎索引的此站點的公開內容
檢查不同的瀏覽器UA獲取的內容的差異(如使用爬蟲的UA訪問手機站點)
檢查WEB應用程序的指紋(Fingerprinting)
確認使用的技術
確認用戶角色
確認應用程序的入口地址
確認客戶端代碼
確認不同的版本的差異(如web, mobile web, mobile app, web services)
確認位于同一主機或業務相關的應用程序
確認所有的主機名和端口
確認第三方的托管內容
### 配置管理
檢查常用的應用程序和管理URL
檢查舊文件、備份文件和未引用文件是否存在
檢查支持的HTTP方法和XST漏洞(<http://www.hackdig.com/?01/hack-11.htm>)
檢查對文件后綴的處理
檢查安全HTTP頭(如CSP, X-Frame-Options, HSTS,見<http://www.hackdig.com/?07/hack-4958.htm>)
測試安全策略(如Flash, Silverlight, robots)
在線上環境測試非生產數據或做相反的操作
檢查客戶端代碼中的敏感信息(如API keys,憑據等)
### 安全傳輸
檢查SSL版本、算法和密鑰長度
檢查數字證書有效性
檢查憑據是否只通過HTTPS傳輸數據
檢查登陸表單是否只通過HTTPS傳輸數據
檢查會話令牌是否只通過HTTPS傳輸
檢查是否使用了HSTS
### 認證
測試枚舉用戶
測試認證繞過
測試暴力破解保護
測試密碼規則的質量
測試記住密碼功能
測試密碼表單的自動完成的功能
測試密碼重置和找回
測試密碼修改流程
測試驗證碼
測試多因子認證
測試注銷功能
測試HTTP的緩存管理(如Pragma, Expires, Max-age)
測試默認登陸賬號
測試用戶認證歷史
測試賬號鎖定和密碼修改成功的通知渠道
測試跨應用程序共享模式/SSO的一致性
### 會話管理
確定應用程序管理會話的方式(如將cookie tokens、url中的token)
檢查會話cookie的標示(httpOnly和secure)
檢查會話cookie的返回(path和domain)
檢查會話cookie的有效期(expires和 max-age)
檢查會話cookie的過期失效
檢查會話cookie的相對超時失效
檢查會話cookie退出后失效
測試用戶是否可以同時擁有多個會話
測試會話cookie的隨機性
確認會話令牌在登陸、角色變化和退出時的更新
測試跨應用共享session會話的一致性
測試會話過載(未限制會話應用范圍,見:<https://www.owasp.org/index.php/Testing_for_Session_puzzling_(OTG-SESS-010)>)
測試是否存在CSRF和點擊劫持漏洞
### 授權
測試路徑遍歷
測試繞過授權
測試垂直訪問控制問題
測試水平訪問控制問題
測試授權檢查缺失
### 數據驗證
測試反射型XSS
測試存儲型XSS
測試DOM型XSS
測試CSF(flash XSS)
測試HTML注入
測試SQL注入
測試LDAP注入
測試ORM注入
測試XML注入(<http://www.hackdig.com/?03/hack-8921.htm>)
測試XXE注入
測試SSI注入(<http://www.hackdig.com/?01/hack-7955.htm>)
測試XPath注入
測試XQuery注入
測試IMAP/SMTP注入
測試Code注入
測試EL注入(<https://www.owasp.org/index.php/Expression_Language_Injection>)
測試Command注入
測試Overflow (堆, 棧和整形溢出)
測試Format String(錯誤的字符串格式化)
測試incubated vulnerabilities(缺陷孵化)
測試HTTP Splitting/Smuggling(協議層)
測試HTTP Verb Tampering(權限干涉)
測試Open Redirection
測試本地文件包含
測試遠程文件包含
比較客戶端與服務端的驗證規則
測試NoSQL注入
測試HTTP參數污染
測試自動綁定(auto-binding:<https://click.apache.org/docs/user-guide/html/ch02s03.html>)
測試Mass Assignment(見ror經典漏洞,<http://blog.xdite.net/posts/2012/03/05/github-hacked-rails-security/>)
測試NULL/Invalid Session Cookie
### 拒絕服務
測試反自動化/機器請求
測試賬號鎖定
測試HTTP 協議DoS
測試SQL通配符DoS/sleep Dos
### 業務邏輯
測試功能濫用
測試缺乏不可否認性(非對稱加密作用)
測試信任關系
測試數據完整性
測試指責分離
### 密碼學
檢查應加密數據是否加密
根據上下文檢查是否使用了錯誤的算法
檢查使用弱算法
檢查是否合理使用鹽
檢查隨機函數(的隨機性)
### 風險功能—文件上傳
檢查可接受的文件類型是否在白名單內
檢查文件尺寸限制、上傳頻率和總文件數的閾值與限制情況
檢查文件內容是否與定義的文件類型相符
檢查所有上傳的文件都經過殺毒軟件掃描
檢查不安全的文件名是否經過處理
檢查不能在web根目錄下直接訪問上傳文件
檢查上傳的文件是否存儲在相同的主機名和端口
檢查文件和其他媒體繼承了身份驗證和授權功能
### 風險功能—支付信息
測試WEB服務器或應用程序是否存在已知漏洞和配置問題
測試默認或易被猜到的密碼
測試生產環境的非生產數據或做相反的測試
測試注入漏洞
測試緩沖區溢出
測試不安全的加密存儲
測試傳輸層保護不足
測試不適當的錯誤處理
測試CVSS v2 評分> 4.0的全部漏洞
測試身份驗證和授權的問題
測試CSRF
### HTML 5
測試WEB消息傳遞
測試WEB本地存儲SQL注入
檢查CORS的實現
檢查離線的WEB應用程序
## 其他格式
DradisPro模板格式 [on github](https://github.com/raesene/OWASP_Web_App_Testing_Cheatsheet_Converter/blob/master/OWASP_Web_Application_Testing_Cheat_Sheet.xml)
Asana在[Templana](http://templana.com/templates/owasp-website-security-checklist/)的格式 (感謝Bastien Siebman)
## 作者與主編
[Simon Bennetts](https://www.owasp.org/index.php/User:Simon_Bennetts)
[Rory McCune](https://www.owasp.org/index.php/User:Raesene)
Colin Watson
Simone Onofri
包括Testing Guide v3的全部作者
## 其他貢獻者
[Ryan Dewhurst](https://www.owasp.org/index.php/User:Ryan_Dewhurst)
[Amro AlOlaqi](https://www.owasp.org/index.php/User:Amro_Ahmed)
翻譯 TaoGOGO