linux获取明文密码,XSS获取用户明文密码

浏览器特性导致,firefox与chrome是默认这样的。IE8默认不会。其他的不关心不测试。

浏览器在用户登录时,会提示用户是否记住密码:

1、对于firefox,用户有三个选择:记住、不记录本站、暂不。

2、对于chorme,用户只有在输入正确密码登录成功后,才会出现提示:“想让谷歌浏览器保存您的密码吗?”,用户有两个选择:保存密码、此站一律不保存密码。

3、而当在“自动完成”设置里开启IE8的“表单上的用户名和密码”功能时,IE8会在用户登录时弹窗提醒是否记住。

其实这些都是类似于普通的表单自动完成功能,不过又不太一样。

最关键的一点在于密码是“顶级”隐私信息,浏览器会专门有一个安全策略来保护记住的密码。

比如不像普通表单那样可以在不同的域共享表单信息。

在Web层面上,既然不可能违背同源策略,那要攻击,只有考虑XSS这样的方法。XSS此时威力无穷。

这三个浏览器安全策略有点差异,比较有意思。先来看firefox。登录后出现的提醒,很多人为了方便都会选择“记住”:

如果退出后,浏览器会记住用户名与密码

4c7a2caef458fdea79c55ea4a71b76fb.png

PS:恩,上面这两张图有水分,明白的人会知道的,不同源,我赖,就不换图了。

当包含用户名密码的表单被渲染后,浏览器会自动填充值,密码是星号显示,直接查看源码是看不到的。

但却可以通过DOM操作来获取到星号密码的值,比如简单的这样测试,在浏览器地址栏上输入:

javascript:alert(document.getElementsByTagName('form')[0].getElementsByTagName('input')[1].value);

执行,效果如下:

87f8de999a901929a7bd591887895e29.png

而在实际攻击中,如果有XSS漏洞的话,简单的POC需要这样:

window.οnlοad=function(){

alert(document.getElementsByTagName('form')[0].getElementsByTagName('input')[1].value);

在实际攻击中,用户如果是登录状态,则可以采用CSRF让用户退出登录,再执行攻击。上面这个TIP,在一定程度上可以让我们的最终攻击效果更好。chrome浏览器与firefox半斤八两,不说。IE8在这方面的设计就好些了。因为即使IE8记住了你的用户名与密码,但是在整个页面渲染后,IE8不会直接填充相应的用户名密码表单项。而需要用户先键入用户名,焦点出现在密码表单项时,才会显示出星号密码。但是也许这样可以继续:

javascript:alert(document.getElementById('username').value='admin');document.getElementById('password').focus();

实际攻击我没测试,但是我想是可以的!

转载请注明来自WebShell'S Blog,本文地址:https://www.webshell.cc/2449.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值