《Web安全测试》读书笔记
第1章 绪论
什么是安全测试:安全测试就是要提供证据表明,在面对敌意和恶意输入的时候,应用仍然能够充分地满足需求。
安全是一种必须存在的非功能性需求。
通用的安全输入类:SQL注入字符串、跨站式脚本字符串、其他类(功能输入类)的编码形式(用Base64将攻击字符串编码)。
Web应用安全测试:web安全测试就是使用多种工具,包括手动工具和自动工具,来模拟和激发web应用的活动。测试者会模拟跨站式脚本攻击
安全测试的方法是重点
通过安全测试,设法使每个人确信,即使面临恶意输入,应用仍然可以像宣传的那样正常工作。我们设法模拟真实的攻击和真实的漏洞,同时
第2章 安装免费工具
第3章 基本观察
使用HTML实体数据
篡改URL
第6章 自动化批量扫描
爬行网站
使用特定的会话Cookie
第7章 使用cURL实现特定任务的自动化
第8章 使用LibWWWPerl实现自动化
第1章 绪论
什么是安全测试:安全测试就是要提供证据表明,在面对敌意和恶意输入的时候,应用仍然能够充分地满足需求。
安全是一种必须存在的非功能性需求。
通用的安全输入类:SQL注入字符串、跨站式脚本字符串、其他类(功能输入类)的编码形式(用Base64将攻击字符串编码)。
Web应用安全测试:web安全测试就是使用多种工具,包括手动工具和自动工具,来模拟和激发web应用的活动。测试者会模拟跨站式脚本攻击
等恶意输入,并使用手动或脚本的方法将它们提交给web应用。
安全测试的方法是重点
通过安全测试,设法使每个人确信,即使面临恶意输入,应用仍然可以像宣传的那样正常工作。我们设法模拟真实的攻击和真实的漏洞,同时
使这些模拟
与我们有限的测试计划融为一体。
第2章 安装免费工具
第3章 基本观察
查看网页的HTML源代码
查看源代码有两项作用:可以帮助你发现最明显的安全问题;使你能够为将来的测试建立一个比较基准。
使用Firebug观察实时的请求头
查看源代码有两项作用:可以帮助你发现最明显的安全问题;使你能够为将来的测试建立一个比较基准。
使用Firebug观察实时的请求头
威胁建模和信任边界图是用于评估应用安全的很好的练习。
查看隐藏表单域:要查找开发人员不希望被修改的参数,隐藏域是首选位置。
第4章 面向Web的数据编码
在web中使用Base-64
解码字符串:echo 'Q29uZ3JhdHVsYXRpb25zIQ==' | openssl base64 -d
编码文件的全部内容:openssl base64 -e -in input.txt -out input.b64 //将Base64编码的输出写入iinput.b64文件
编码简单字符串:echo -n '&a=1&b=2&c=3' | openssl base64 -e
使用以URL方式编码的数据
URL编码的数据使用%字符和十六进制数字来传送URL中不允许直接使用的字符。空格、尖括号和斜线是常见的例子。
如果在web应用中看到URL编码的数据,而且需要理解或处理它,那么必须对它进行解码或编码。
查看隐藏表单域:要查找开发人员不希望被修改的参数,隐藏域是首选位置。
第4章 面向Web的数据编码
在web中使用Base-64
解码字符串:echo 'Q29uZ3JhdHVsYXRpb25zIQ==' | openssl base64 -d
编码文件的全部内容:openssl base64 -e -in input.txt -out input.b64 //将Base64编码的输出写入iinput.b64文件
编码简单字符串:echo -n '&a=1&b=2&c=3' | openssl base64 -e
使用以URL方式编码的数据
URL编码的数据使用%字符和十六进制数字来传送URL中不允许直接使用的字符。空格、尖括号和斜线是常见的例子。
如果在web应用中看到URL编码的数据,而且需要理解或处理它,那么必须对它进行解码或编码。
使用HTML实体数据
HTML规范提供了一种特殊字符的编码方法,这样它们就不会被解释为HTML,JavaScript或其他类型的命令。
计算散列值
散列值是单向的数学函数,给定任意数量的输入,它们会产生长度完全相等的输出。
在我们最重要的安全函数中使用的加密很坚固的散列值,有几项重要的属性:
抗原像:给定一个散列值,应该很难找到能够产生该散列值的文档或输入数据。
抗冲突:给定一份文档或某些输入,应该很难找到另一份具有相同散列值的文档或输入。
MD5 echo -n "my data" | openssl md5
第5章 篡改输入
绕过输入限制
计算散列值
散列值是单向的数学函数,给定任意数量的输入,它们会产生长度完全相等的输出。
在我们最重要的安全函数中使用的加密很坚固的散列值,有几项重要的属性:
抗原像:给定一个散列值,应该很难找到能够产生该散列值的文档或输入数据。
抗冲突:给定一份文档或某些输入,应该很难找到另一份具有相同散列值的文档或输入。
MD5 echo -n "my data" | openssl md5
第5章 篡改输入
绕过输入限制
篡改URL
http://guogf.com/web/index.php?userStyle="/><script>alert("XSS");</script>
编辑cookie
用于对用户进行身份验证并保持永久有效的Cookie是Cookie窃取的最佳目标,而Cookie窃取是跨站式脚本的一种常见目标。
上传大文件
上传恶意XML文件
上传恶意ZIP文件
绕过用户界面的限制
编辑cookie
用于对用户进行身份验证并保持永久有效的Cookie是Cookie窃取的最佳目标,而Cookie窃取是跨站式脚本的一种常见目标。
上传大文件
上传恶意XML文件
上传恶意ZIP文件
绕过用户界面的限制
第6章 自动化批量扫描
爬行网站
使用特定的会话Cookie
第7章 使用cURL实现特定任务的自动化
第8章 使用LibWWWPerl实现自动化
第9章 查找设计缺陷
第10章 攻击AJAX
第11章 操纵会话
第12章 多层面的测试
注:
Web安全测试 Web Security Testing Cookbook Paco Hope & Ben Waltber著 傅鑫等译 清华大学出版社 2010.3
注:
Web安全测试 Web Security Testing Cookbook Paco Hope & Ben Waltber著 傅鑫等译 清华大学出版社 2010.3