标记红色的部分为今日更新内容。
第四章、测试身份验证和会话管理
4.0、介绍
4.1、用户名枚举
4.2、使用Burp Suite进行登陆页面的字典攻击
4.3、使用Hydra强制进行暴力攻击
4.4、使用Metasploit破解Tomcat的密码
4.5、手动识别Cookie中的漏洞
4.6、攻击会话固定漏洞
4.7、使用Burp排序器评估会话标识符的质量
4.8、滥用不安全的直接对象引用
4.9、执行跨站点请求伪造攻击
4.5、手动识别Cookie中的漏洞
Cookie是服务器存放在客户端上的信息片段,它可以是长效的,也可以是短期的。在现如今的Web应用当中,Cookie被更多地用来做会话跟踪。服务器会将生成的会话标识符简称Session ID存储在Cookie中用于用户的身份验证,来自用户的每一次请求都将附带该Cookie,以此向服务器证明身份。
在本小节,我们将了解Cookie存在的常见漏洞。
实战演练
在学习之前建议先删除浏览器中所有存储的Cookie。
1. 在浏览器中:http://192.168.56.11/WackoPicko/。
2. 我们可以使用Cookies Manager来查看cookie中的值,只需要在浏览器右上角点击它的图标即可打开Cookie Manager
3. 任选一个cookie,例如来自192.168.56.11的PHPSESSID,双击它或者是选中后单击Edit按钮,便可打开一个新的窗口用来编辑它内部存储的值。
PHPSESSID是所有基于PHP搭建的WEB服务器的默认cookie名称。通过上面的实验我们可以发现,我们可以轻而易举地查看cookie的参数和值,因为Cookie是没有安全机制的,而且Http-Only并没有开启,所以这意味着该会话有很大的可能被劫持。
4. 我们也可以使用浏览器的默认开发者工具来查看的修改cookie的值。
在图中我们选择了一个名为session的cookie,通过Path可以看出它只
对/WackoPicko/admin/生效。与PHPSESSID一样,当关闭浏览器时它便会被销毁。它并没有开启HttpOnly或安全标志,所以它可以被任意编辑修改后发送给服务器,造成会话劫持。
原理剖析
在这个小节中,我们仅仅检查了Cookie的配置,虽然这并不激动人心,但是在真实的渗透测试中Cookie的安全配置检查是必要的。就像我们之前所说,Cookie的不正确配置会导致会话的劫持。
如果Cookie的HttpOnly并没有开启,那么使用脚本语言就可以查看它的值,也就是说,如果此处存在XSS漏洞,那么攻击者可以使用该Cookie来冒充用户身份向服务器发起有害的请求。
其他
PSPSESSID是PHP平台的默认Cookie名称,那么其他平台的呢?如下:
ASP.NET_SessionId是ASP.Net平台的默认Cookie
JSESSIONID是JSP的默认Cookie
OWASP有一篇关于Cookie保护的文章,讲的很详细,网址如下:
https://www.owasp.org/index.php/Session_Management_Cheat_Sheet