OWASP Cheat Sheet Series翻译项目

没有了

WEB应用安全测试备忘单

2014-04-14 01:03

介绍

这个备忘单是一个对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
  • Asana在Templana的格式 (感谢Bastien Siebman)

作者与主编

Simon Bennetts
Rory McCune 
Colin Watson
Simone Onofri

包括Testing Guide v3的全部作者

其他贡献者


翻译TaoGOGO


英文原文: https://www.owasp.org/index.php/Web_Application_Security_Testing_Cheat_Sheet

阅读:938548 | 评论:0 | 标签:安全测试 web应用测试

想收藏或者和大家分享这篇好文章→复制链接地址

“WEB应用安全测试备忘单”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

参与本项目请私信联系:http://weibo.com/hackdig
目前项目参与成员:
taogogo
dor