一. 首先你得了解Web
Web分为好几层,一图胜千言:
事实是这样的:如果你不了解这些研究对象是不可能搞好安全研究的。
这样看来,Web有八层(如果把浏览器也算进去,就九层啦,九阳神功……)!!!每层都有几十种主流组件!!!这该怎么办?
别急,一法通则万法通,这是横向的层,纵向就是数据流啦!搞定好数据流:从横向的层,从上到下→从下到上,认真看看这些数据在每个层是怎么个处理的。
数据流中,有个关键的是HTTP协议,从上到下→从下到上的头尾两端(即请求响应);通过百度/Google一些入门的HTTP协议,大概了解,然后Chrome浏览器F12实际看看“Network”标签里的HTTP请求响应,不出几小时,就大概知道HTTP协议这玩意了。(这是快速研究的精髓啊)
搞明白HTTP协议后,你就会明白安全术语的“输入输出”。
黑客通过输入提交“特殊数据”,特殊数据在数据流的每个层处理,如果某个层没处理好,在输出的时候,就会出现相应层的安全问题。
搞懂这些,就算入门啦。
记好:一切的安全问题都体现在“输入输出”上,一切的安全问题都存在于“数据流”的整个过程中。
记好:“数据流”、“输入输出”这两个关键点。
二、web网站系统架构
从上面网站的架构来看,web的安全主要存在于:客户端浏览器、web前端安全、web后端安全、服务器操作系统安全、数据库安全
三、web测试关注点
Web应用可以按照下面的方案进行安全测试,这个方案是一个全方位的安全审计,列出目录,具体的测试工具和方法可以根据项目自行搜索确定
测试对象:服务器(宿主机)、Servlet容器,数据库,第三方服务及接口、Web应用程序(各种处理动态请求的文件.ASP .php JSP等等)
1、应用程序的部署环境(服务器):
操作系统用户名密码强度
操作系统用户、用户组及权限设置
系统漏洞及补丁
系统端口安全
应用部署环境目录及文件安全
防火墙及网络端口设置
2、数据库:
数据库服务器版本及漏洞
用户名
密码设置
数据库用户权限设置及授权设置
数据库服务器端口及网络连接设置
3、web应用安全测试:
sql注入
表单漏洞
cookie欺骗
session测试
日志文件测试
跨站攻击(ZAP)
认证及会话攻击(Hackbar)
不安全对象直接引用攻击(Burp)
CSRF(Tamper Data)
4、第三方服务及接口
系统/服务版本及漏洞
安全性配置测试
数据传输安全性测试
数据合法性测试
数据完整性测试