白帽巫师都是报团成长的。主心骨,团结,无畏的精神缺一不可。
0x00 什么是xss?危害?
什么是xss?
跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击盗取用户cookie和session,、破坏页面结构、重定向到其它网站等。
跨站脚本重要的是脚本,跨站是浏览器的特性,不是缺陷。造成这样的假象是因为大多说的XSS攻击都采用嵌入远程或者第三方域的脚本资源。这样的脚本主要有javascript和actionscript。
xss这类攻击是浏览器来解析执行的,浏览器会严格按照同源策略解析,不符合约定的不会执行。
xss的危害有多大?
真正的xss攻击不是简单的弹个测试的框,而是诸如<script src=“http://xxx/x.js”></script>
的js代码。
危害是由行为决定的,在各大漏洞平台总结的XSS可能造成的行为及危害有
- 网络钓鱼,包括盗取各类用户账号
- 窃取用户cookie,从而利用身份进一步对网站操作
- 劫持用户浏览器会话,从而执行任意操作,诸如非法转账,发表日志,发送email等
- 强制弹广告,刷流量,影响网站声誉。
- 网页挂马,会影响搜索引擎的排名,也可能泄露网站数据,网站被篡改的面目全非
- 进行大量的客户端攻击,DDOS之类
- 结合其他csrf漏洞等,进行其他的不良行为
- 提升用户权限,进一步渗透网站
- 传播跨站脚本蠕虫
0x01 xss的分类
xss可以分为这几类
- 反射型xss
- 储存型xss
- DOM XSS
- flash xss
- m XSS
1.反射(非持久)型xss攻击
非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。
2.储存(持久)型xss攻击
持久型xss攻击会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie等
其他XSS暂时未接触
0x02 实例
反射型xss
某赴美生子
说实话,我也想子女是外国的。欧洲瑞士瑞典乌克兰那边挺好。
因为写日记得经过2D审核,毕竟这个网站是赚钱的,不能让咱们随便发日志文件。所以我只 用搜索框得到自己的饼干(cookie)。
验证了xss的弹窗
,于是我换成获取饼干的js代码”/> 并在源码中插入有效成功
成功看到连个url请求说明可以获取饼干
然后我再次输入”/>
在我外网地址获取到自己饼干
人物周刊
个人主页
用户名可以显示,我们找到了输出点,测试下:”<>/
发现用户名直接在P标签里面
所以我们直接插入弹窗代码试试
可以弹窗
不用抓包,直接插入就加载了JS代码
然后把获取饼干(cookie)的js代码加入查看源码发现只显示26个字符
所以要在26个字符内写入自己外网JS 如何缩短代码是个问题。然后就放弃了,毕竟只是测试。
存储型XSS
某手机论坛
** 尝试发帖验证是否字符实体化。
查看源码发现
尝试抓包修改并放行
代码:</div><script>alert(0)</script>
//因为在div标签里面所以得闭合标签,没引用前面这段代码,本地测试弹窗了。。
就看到了弹窗
在弹窗之后我尝试回帖抓包插入获取饼干代码只有一个js的url请求不知道为什么
** 没有php的url请求就无法实现获取饼干(cookie)。
在改写了js文件后,有了php请求
然后重新进入帖子,获取到自己的饼干,在自己外网查看获取到的饼干。
** 只做测试,未尝试其他,把自己帖子删除了。不知道过去那么长时间修复了没有。
某电影网
在可关注话题处,在验证了弹窗之后,由于只有30字符输入限制,所以
重新构造payload
之后就成功请求.js .php
刷新时光网之后的时间是我服务器的时间,右下角是我电脑的时间。
如果某个很厉害的玩家,嗯,被关注度很高,然后能打到好多cookie啊。
0x04 防御
几乎每篇谈论 XSS 的文章,结尾多少都会提到如何防止,然而大多万变不离其宗。要转义什么,要过滤什么,不要忘了什么之类的。尽管都是众所周知的道理,但 XSS 漏洞十几年来几乎从未中断过,不乏一些大网站也时常爆出,小网站更是家常便饭。
而本文介绍的则是另一种预防思路 —— 通过前端监控脚本,让每一个用户都参与漏洞的监控和上报。
详情可见源博客XSS 前端防火墙 —— 内联事件拦截
freebuf也有篇借上述博客谈的 前端xss报警
题外话:如果你对本站文章字体有任何不适,请告知我,我会回复你,字体问题请配置浏览器,调到对眼睛舒适的大小;默认不允许转载,除非转载注明出处。
end