天天看点

首次成功实施 XSS 攻击,盗取目标网站大量 VIP 帐号

前言

之前做网站时有做代码防御 xss(cross site script) 攻击,但是却只处于了解的阶段,并不知道其中具体的原理,更别说使用了。最近有朋友要求我帮助他 hack 一个网站,达到一定的目的。思考来思考去,最后想了一套方案,并最终成功实施。现在回想起来,整套解决方案中,其实主要就是 xss。

(   本文不会公布目标网站地址。主要是为了交流技术,以帮助大家在 web 开发中更好地防御 xss。

看文章标题说得比较牛,其实我也不会去修改他们的密码,太坏的事咱可不能干,哈哈。 :)   )

xss 简述

攻击流程

假设我想盗取 www.target.com 中的其他用户,并使用他们的身份来登录该站点。那么我同时还需要一个自己的服务器,假设为 www.hackhost.com。然后,使用我自己的帐号登录到 target.com,然后在我的个人页面中提交脚本(例如在个人档案中加入一定的脚本。关于如何提交,后面再讨论。)。该脚本内容比较简单,如下:

这样,每个浏览我的个人页面的其他用户,都会自动下载 www.hackhost.com/clienthacker.js 这个 javascript 文件执行。这个文件是部署到我的 hackhost.com 服务器上的,我可以在其中加入任意的脚本。这样,当前登录的用户的整个客户端都处于这个脚本的控制当中。

而服务端接收到这个请求后,可以把 cookie、ip、时间等记录下来。这样就可以方便我慢慢地分析每个请求。

所需工具

这次 hack 涉及到的工具不多,主要是用 fiddler 分析和伪造各种 http 请求。

结果截图

首次成功实施 XSS 攻击,盗取目标网站大量 VIP 帐号

好多 vip 帐号啊。 :)

难点

别处,用 js 并不能获取到完整的 cookie 值,这是因为如果 cookie 中带有 httponly 标记的话,js 是不能读取的。例如,asp.net 网站的 sessionid 对应的客户端 cookie 就是标记了 httponly的。否则,我们就可以通过 js 获取到最近可用的 session,并伪造该 session 进行(session 劫持)。

小结

总体上来说,这次的攻击是比较简单的。而且这次的目标网站对于自身的安全性确实没有做什么工作,很轻易我就把 js 注入了。另外,他们还把用户标识保存在 cookie 中,虽然标识是加密后的,但是这不影响我的使用场景。

之前做过秒杀,但是算不上 hack,这是第一次成功 hack,所以写这篇文章简单纪念一下。 :)

(一月最少一篇总结,总算是在本月最后关头提交上来了,差一点断,哈。)

继续阅读