前言
各位读者你们好,今天我将展示我是如何通过html注入将cookie劫持漏洞转化为危险漏洞的。
HTML注入和Cookie劫持:
HTML注入是一种注入问题,当用户能够控制输入点并能够将任意HTML代码注入易受攻击的网页时,就会发生这种问题。这个漏洞可能会导致许多问题,例如泄露可能用于冒充受害者的用户会话cookie,换句话说,它可以允许攻击者修改受害者看到的页面内容。
会话劫持攻击包括利用Web会话控制机制,该机制通常是由会话令牌管理的。
发现阶段:
这次,我必须对客户屏幕上的每个输入进行手动测试。我注意到输入没有按预期验证进行,但是既然必须通过登录帐户来激活HTML代码,那么我们该如何利用这种类型的漏洞呢?
第一次尝试
尝试利用CSRF登录漏洞,攻击者从中向受害者发送自定义代码用以登录自己的帐户,就像下面这样:
<html>
<! - CSRF Login PoC ->
<body>
<script> history.pushState ('', '', '/') </ script>
<form action = "https://private-company.com/account/signin" method = "POST">
<input type = "hidden" name = "customerlogin" value = "attacker-email@gmail.com" />
<input type = "hidden" name = "customerpassword" value = "attacker-password" />
<input type = "submit" value = "Submit request" />
</ form>
</ body>
</ html>
上面的代码失败了,因为该公司已经通过Token处理了客户端的登录问题。
第二次尝试
Cookie劫持!攻击成功,因为管理用户会话的Token在注销后没有过期。cookie继续在浏览器中运行,除非手动清理。我将在下面为您展示它:
1.我使用测试帐户登录,然后单击注销。请注意,在下面的屏幕截图中,注销后cookie仍存储在浏览器中:
2.请注意,管理客户端会话的cookie的有效期为一年。
3.我用工具(edit this cookie)复制了cookie,访问了浏览器Mozilla Firefox,用前一个截图中的值手动添加了cookie,然后终于完成了!我被重定向到受害者的个人资料。
结果非常棒!是时候练习Html注入并结合cookie劫持漏洞进行更有效的演示了。
如前所述,参数"customer_name"易受html注入攻击。因此为了确认是否存在漏洞,我用burp suite拦截了请求,并在它的名称中插入了H1标签:
在payload运行之后,我向自己的帐户发送了一封密码恢复邮件:
终于,我们成功确认了漏洞!
可能的原因:
由于name参数容易受到HTML注入攻击,因此可以自定义一个html代码,使其看起来更像一个只有用户才可以看到的表单。
此外,还有一个cookie劫持漏洞,它允许攻击者捕获存储在浏览器中的cookie并登录受害者的帐户。如果在LAN等公共环境中访问应用程序,那么我们有好几种方法可以利用此漏洞。
1.受攻击者在局域网上登录他的账户,在对公司的应用程序执行操作后,受害者将通过注销功能登出帐户。
2.攻击者访问与受害者各相同的公共计算机,捕获cookie并登录受害者的帐户。
3.攻击者自定义新的HTML代码并在易受攻击的字段中插入。
4.受害者在重新访问帐户时(在另外一台设备上),将会看到攻击者定制的新页面。
当然,这需要受害者本身的配合,但是著名的网络钓鱼攻击也许可以突破这个限制。
以上就是全部的内容了!希望你喜欢它。