5.1 攻击会话管理

身份认证和会话管理涵盖了处理用户身份认证和管理活动会话的方方面面。对Web应用来说,会话就是用户在某个网站上花费的时间。最佳实践是基于用户和设备是如何通过身份认证的来管理已通过身份认证的会话(也就是,允许你访问哪些资源),同时要控制活动会话期间哪些资源可用、能用多久。这使得身份认证成为管理授权会话的关键过程。

渗透测试人员的目标是找出具有高权限的允许访问特定资源的账户,并且访问Web应用的时间不受限制。这也是为什么要创建会话管理的安全功能,如会话超时时间和SSL证书,的主要原因。不管怎么说,Kali中带有的工具可以找出会话管理中的漏洞,比如截获Web应用中发送用户退出登录请求的活动会话,然后将那个会话给另外一个人用。这种攻击也称为会话固定攻击(session fixation attack)。

会话管理攻击可能会出现在利用了应用中的漏洞或是用户如何访问这些应用和进行身份验证的过程中的漏洞时。攻击者攻击的常见方式是对Web服务器进行跨站脚本攻击或是SQL注入攻击,本章后面将会介绍。攻击者还可能会利用浏览器中的会话cookie,或是网页中的漏洞来达到类似的结果。让我们先看个通过修改超链接和iFrame来欺骗用户泄漏敏感信息或是将用户自己暴露在攻击下的技术。

点击劫持

点击劫持(clickjacking)是欺骗用户点击其他东西而不是他们认为正在点击的东西的一种技术。点击劫持可用来显示机密信息,比如登录凭据,也可以用来帮助黑客控制受害者电脑。点击劫持通常会通过嵌入受害者不知情的代码或脚本来揭露Web浏览器的安全问题或是漏洞。执行点击劫持的一个例子是将超链接文本指向一个受信站点(如IE中的可信站点)而非真实的站点。普通用户并不会在点击前验证超链接,或是注意到跟常见的点击劫持意图相关的变更,这使得点击劫持成为非常有效的攻击形式。

在下面的例子中,用户会看到Visit us on Facebook.com(访问我们的Facebook主页) 链接,但当他们点击该链接时,实际上会被重定向到www.badfacebook.com

<a href="http://www.badfacebook.com">Visit us on Facebook.com</a>

点击劫持的危害性可能会更大更复杂,而不只是修改超链接这么简单。一般使用点击劫持的攻击者会在网页中嵌入iFrame。iFrame的内容会包含从目标网站上获取的数据,并且通常会放到合法的链接上面,使得它很难被发现。

要制作你自己的点击劫持攻击,你可以用Paul Stone 开发的点击劫持工具,你可以从http://www.contextis.com/research/tools/clickjacking-tool/ 下载。

下载好该工具后,你可以用它来从另外一个网站上获取代码,比如投票按钮或喜欢按钮。这个点击劫持工具可以跟Firefox 3.6搭配使用。Paul Stone 的工具没法跟更新版本的Firefox一起使用,不过,你可以在Kali工具集中运行多个版本的Firefox,包括Firefox 3.6或更早的版本。

网站代码会经常改变,所以确保调整了你的攻击代码,使其跟镜像的受信站点能够一起工作。