WF曲速未来告诫:注意Augur的重大漏洞前端黑攻击
近日, 一名白帽黑客发现了分散预测市场Augur的一个重要漏洞,黑客可据此向用户发送虚假信息并控制系统。虽然Augur的核心功能是预测市场情况,允许用户进行市场预判,所有的数据由分散式的以太坊区块链保护,UI配置文件存储用户信息的到本地计算机。但是Augur应用程序上的所有内容,包括交易数据、钱包地址和市场行情,目前都处于被黑客篡改的风险下。据悉,用户一旦访问来自Augur的链接,其以太坊地址等关键信息将被黑客截取。
现此漏洞已被修补,据表示说Augur漏洞是一个典型的前端黑攻击,这种攻击依赖一些条件,比如攻击者需要准备好一个页面链接(不是 Augur 链接),并无论通过什么手法能让安装了Augur的用户访问到,然后用户需要重启Augur应用,这样才能形成后续的攻击。由于此时Augur应用里配置的 Augur节点地址被替换了,后续的攻击本质就是一种MITM中间人)攻击,理论上确实可以做很多恶事。
因为有说明Augur漏洞是一个典型的前端黑攻击。随着互联网的不断发展,web应用的互动性也越来越强。但正如一个硬币会有两面一样,在用户体验提升的同时安全风险也会跟着有所增加。现在,我们就来讲一讲web渗透中常见的一种攻击方式:XSS攻击。
什么是XSS攻击
先看一段标准解释(摘自百度百科)。
相信以上的解释也不难理解,但为了再具体些,这里举一个简单的例子,就是留言板。我们知道留言板通常的任务就是把用户留言的内容展示出来。正常情况下,用户的留言都是正常的语言文字,留言板显示的内容也就没毛病。然而这个时候如果有人不按套路出牌,在留言内容中丢进去一行:
那么留言板界面的网页代码就会变成形如以下:
那么这个时候问题就来了,当浏览器解析到用户输入的代码那一行时会发生什么呢?答案很显然,浏览器并不知道这些代码改变了原本程序的意图,会照做弹出一个信息框。就像这样:
利用xss窃取用户名密码
当然这个示例很简单,尽管一个信息框突然弹出来并不怎么友好,但也不至于会造成什么真实伤害。几乎攻击不到任何网站。但我们知道很多登陆界面都有记住用户名、密码的功能方便用户下次登录,有些网站是直接用明文记录用户名、密码,恶意用户注册账户登录后使用简单工具查看cookie结构名称后,如果网站有xss漏洞,那么简单的利用jsonp就可以获取其它用户的用户名、密码了。
恶意用户会这么输入:
我们看看http://test.com/hack.js里藏了什么
几句简单的javascript,获取cookie中的用户名密码,利用jsonp把向http://test.com/index.php.发送了一个get请求http://test.com/index.php
在用户浏览器执行了hack.js,获取了用户密码,并发起一个黑客工程的http url请求,这样黑客工程就拿到了用户的账号和密码。就这样,用户名和密码就泄露了。
XSS的危害:
1)窃取网页浏览中的cookie值
2)劫持流量实现恶意跳转
实例应用:
1.劫持访问:
这个很简单,就是在网页中想办法插入一句像这样的语句:
那么所访问的网站就会被跳转到百度的首页。XSS相关的恶意代码传播、大范围用户信息窃取及基于XSS的DDoS攻击等
早在2011年新浪就曾爆出过严重的xss漏洞,导致大量用户自动关注某个微博号并自动转发某条微博。还自动关注一位名为hellosamy的用户。
还有百度贴吧xss攻击事件
2014年3月9晚,六安吧等几十个贴吧出现点击推广贴会自动转发等。并且吧友所关注的每个关注的贴吧都会转一遍,病毒循环发帖。并且导致吧务人员,和吧友被封禁。
2.盗用cookie实现无密码登录
这里以DVWA渗透测试平台为例
我们发现网页对于message长度有限制。审查元素看一下。
发现最大长度有限制,但这仅仅是前端的限制,直接双击修改成更大的数字即可。再次尝试,没问题,我们已经将脚本植入完毕。
然后就是坐等别的用户访问这个界面。
这时,另一个用户gordonb登录并访问了留言界面,那么他的cookie就会被窃取。我们可以从xss平台的后台获取到。
拿到cookie之后要登录他的帐号就好办了。
打开登录界面,调出火狐的firebug插件,调至cookie选项卡(注意,如果你的firebug插件没有cookie选项卡,请再安装firecookie插件即可看到)
然后依次点击cookies-create cookie,随后再弹出的界面中填入两个xss平台获取到的cookie,如图
这里注意要把我箭头所指的地方勾上,这是设置cookie有效期的地方,不然会在设置完下一秒cookie就失效。
完成之后再次刷新页面,发现已经不是之前的登录界面了,而是登录后的界面。至此,一个从cookie窃取到利用的过程就已完成。
3、配合csrf攻击完成恶意请求
先简单解释以下csrf攻击。Csrf攻击就是在未经你许可的情况下用你的名义发送恶意请求(比如修改密码,银行转账等),下面演示一个用xss配合csrf修改用户密码的例子。
首先对修改用户密码的界面进行抓包。
发现没有对原密码进行校验。于是一股邪恶的力量油然而生:要是在xss的恶意脚本中自动提交get请求修改密码的话。。
说干就干,具体插入语句如下:
有人会问,这不是引用脚本吗?其实不然,本质上这还是发起了一起get请求,因此可以直接使用。与上例一样,插入到message中,再坐等上钩。等下一个用户访问该界面时,密码就会被改为123456了。
我们再看下访问该页面时的抓包情况,发现每次访问该页面都发送了更改密码的请求
效果看数据库(密码md5加密)
访问了该页面的用户密码都被更改了。
防范手段
区块链安全公司WF曲速未来表示:都说知己知彼方能百战不殆,知道了xss攻击的原理那么防御的方法也就显而易见了。
1.
2.其次是编码。像一些常见的符号,如<>在输入的时候要对其进行转换编码,这样做浏览器是不会对该标签进行解释执行的,同时也不影响显示效果。
3.最后是限制。通过以上的案例我们不难发现xss攻击要能达成往往需要较长的字符串,因此对于一些可以预期的输入可以通过限制长度强制截断来进行防御。
本文内容由区块链安全公司WF曲速未来 编译,转载请注明来自区块链安全社区WF曲速区。欢迎关注区块链安全社区WF曲速区,知识星球请搜索“曲速区”,微信关注公众号“曲速未来安全区”。