title: Xss攻击 tags:
- XSS
- 安全 categories: 工作日志 date: 2017-02-25 18:18:55
XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重点是“跨域”和“客户端执行”。有人将XSS攻击分为三种,分别是:
1. Reflected XSS(基于反射的XSS攻击)
2. Stored XSS(基于存储的XSS攻击)
3. DOM-based or local XSS(基于DOM或本地的XSS攻击)
基于反射的XSS攻击,主要依靠站点服务端返回脚本,在客户端触发执行从而发起Web攻击。
基于反射的XSS攻击:
-
做个假设,在192.168.1.19上面进行客户搜索
-
在搜索框搜索内容,填入">", 点击搜索。
-
当前端页面没有对返回的数据进行过滤,直接显示在页面上, 这时就会alert那个字符串出来。
-
进而可以构造获取用户cookies的地址,通过QQ群或者垃圾邮件
但在该画面上可能并没有弹出alert,这是为啥呢,通过查看开发者工具 延伸阅读understanding-xss-auditor
具体实现应该是请求会校验request和response如果发现执行的script在request中存在就会拒绝执行该脚本
现代的浏览器确实在安全性上得到了提升(服务端千万不要相信用户的任何输入,比如将header写入)但是IE等环境未测试,并不清楚,小伙伴 何文娟可以测试一下
基于存储的XSS攻击:
用户将有害的脚本存储到数据库中(服务器未过滤),当用户访问到特定数据时,就会执行到脚本
-
新建材料名称为的材料(cookie的httponly一定要选)
-
重新访问列表页
-
比如此人通过某些请求执行投票(刷票哈哈)发送ajax请求等(关于跨域问题如下说明,跨越失败并不表示请求没有发送出去,只是浏览器会把拒绝接受结果,事实上请求已经发送出去)
因此此种安全危害比较严重,比如在论坛或者微博等发送包含特殊符号的内容基于DOM或本地的XSS攻击
这种主要是中间人攻击,比如运营商的流量弹窗等等
总体来说危害较严重的为前两种,事实上xss攻击和sql攻击却别不大,通过开发者的疏忽构建意料之外的脚本执行攻击者希望的脚本进而获取一些机密信息
一般来说对于此类的攻击防范措施为转义特殊字符(' " < > &),屏蔽有害代码,杜绝有害代码执行
除此之外还有一些比较需要注意的比如eval 等等 延伸阅读XSS - html过滤
使用更加现代更加安全的浏览器吧^^chrome值得拥有