目录
一、测试SSL证书的有效性
1.看网站是不是 HTTPS 链接,或者手动输入 HTTPS 链接看网站能否打开,能打开则说明网站部署了 SSL证书。
2.看网站地址栏有没有小锁或者绿色地址栏显示,有此类显示说明网站部署了 SSL证书。反之,如果网站地址栏小锁打叉或者显示"不安全"等就说明网站没有部署 SSL证书或者部署了错误的 SSL证书。
3.点击浏览器小锁标志,会出现【小锁 + 连接是安全的】显示,单击此栏目会出现【证书有效】,再点击就会显示证书信息。
4.打开SSL证书,检查如下信息,包括确定证书有效期:
a.检查认证机构( CA )是否已知(意思是一个值得信赖的)
b.检查该证书目前未过期
c.检查网站的名称是否与证书中报告的相符
二、用户输入口令/密码时采用HTTPS安全协议
1、无法看到明文的口令/密码;
2、对于Web应用,修改口令时,往服务器端传递用户名和口令时,采用HTTPS安全协议(也就是带服务器端证书的SSL)。如果没有用https协议,也应该是加密显示;(通过burp抓包检查)
三、认证方式
WEB系统禁止使用BASIC认证方式,用户名和密码进行一个Base64加密后得到的密文,虽然简单,但是安全级别太低了。
WEB系统禁止使用DIGEST认证方式;
检查请求头的Authenticate;
四、检查Cookie属性
检查Cookie是否设置Secure、HttpOnly属性
Secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,HttpOnly属性的目的是防止程序获取cookie后进行攻击(如防止XSS窃取cookie)。
1.登录系统;
2.验证是否设置Secure属性。如果没有设置,说明存在问题。
3.查看响应的HttpOnly属性:HttpOnly属性能防止客户端脚本使用该Cookie,以加强Cookie的安全。如果没有设置,说明存在问题。
检查Cookie的Domain安全属性
1.登录系统;
2.使用Web代理工具捕获响应消息,查看Set-Cookie响应头的Domain属性:如果Web应用存在于app.mysite.com 服务器上,那么它应该被设置成 ";domain=app.mysite.com"而不能设置成"; domain=.mysite.com",因为这种设置会允许其它存在漏洞的服务器接收到 Cookie 。
检查Cookie的Path安全属性
1.登录系统;
2.使用Web代理工具捕获响应消息,查看Set-Cookie响应头的Path属性:如果Web应用存在于"/myapp/",确认Cookie路径设置是否为"; path=/myapp/",而不是设置为"; path=/"或";path=/myapp"。注意在"myapp"之后必须使用"/"。如果没有使用,浏览器将Cookie发送给任何匹配"myapp"的路径,如"myapp-exploited"。
检查Cookie的Expires安全属性
Expires 表示Cookie的存在时间,允许客户端在这个时间之前不去检查(发请求),等同HTTP缓存中的max-age的效果。但是如果同时存在,则被HTTP缓存Cache-Control的max-age覆盖。未使用Expires进行Cookie超时管理的不涉及
1.登录系统;
2.使用Web代理工具或浏览器插件捕获响应消息,查看Set-Cookie响应头的Expires属性:如果Cookie设置为"; expires=Fri, 13-Jun-2010 13:45:29 GMT"(2010 年6月13日),而当前时间是2008年6月10日,则需要检测该Cookie。如果Cookie是存储在用户硬盘中的会话令牌,那么有权限读取这个Cookie的攻击者或本地用户(如管理员)就能在过期时间前通过重复提交这个令牌进入应用程序。
检查Cookie的Samesite安全属性
SameSite用于定义cookie如何跨域发送,目的是尝试阻止CSRF跨站请求伪造以及XSSI攻击。
1.登录系统
2.使用抓包工具捕获响应消息,查看Set-Cookie响应头的Samesite属性,如果没有添加SameSite关键字的时候,默认是空的,不安全。SameSite=Strict或SameSite=Lax是安全的,可以防御单次点击产生的CSRF攻击。
检查Cookie的名称前缀设置
通过设置cookie名称前缀"__Host-",可进一步保证cookie的secure、path、domain的正确设置