xss跨站脚本攻击是一种超级常见的攻击方式了,因此攻击方式可能不仅仅
是单方向的此类攻击还存在于各种变种、变换。在实际的攻击方式中需要灵活变动。
xss 注入简介:
跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户目的。
XSS危害:流量劫持;获取用户cookie信息,盗取账号;篡改、删除页面信息(钓鱼);配合CSRF攻击,实施进一步攻击
XSS分类
- 反射型XSS:反射型XSS也被称为非持久性XSS,当用户访问一个带有XSS代码的HTML请求时,服务器端接收数据后处理,然后把带有XSS的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,就造成XSS漏洞,这个过程就像一次反射,所以叫反射型XSS。
- 存储型XSS:存储型XSS又被称为持久性XSS,存储型XSS是最危险的一种跨站脚本漏洞,当攻击者提交一段 XSS代码后,被服务端接收并存储,当攻击者或用户再次访问某个页面时,这段XSS代码被程序读出来响应给浏览器,造成XSS跨站攻击,这是存储型XSS。
- DOM型:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。
搜狐邮箱存储型xss一枚(已修复)
搜狐网盘上传文件未对文件名进行重命名,可以在linux下面创建一个带有xss代码的文件名,上传后触发存储型xss,不过漏洞有限,只能插自己,根据分享功能分享到邮箱后,也是只能插自己。后想到qq邮箱上传附件也未对文件名重命名,将上传的带有xss代码的附件发给搜狐邮箱后,触发搜狐邮箱存储型xss。
首先从搜狐网盘开始,由于没有对文件名过滤和重命名,所以上传一个如下名字的文件。
<img src=x onerror="alert(1)">
成功触发,不过只能插自己,通过分享功能分享到邮箱页面,同样弹了。
但是发给他人之后,浏览却不会触发,发现搜狐对其进行了过滤。
弹cookie获取登录信息
做一下变种,设计思路为,发送一个包含脚本的邮件给我们想要获取登录信息的人,当对方看过邮件之后把cookie发送到我们指定地方存储。而当我们拿到对方的cookie之后,便可进行cookie伪造登录,不用账号密码直接登录对方账号。
上面实例为xss注入典型应用,其中包括文件名注入,登录框注入,input框注入。
修复思路:
黑客中最著名的一句话就是:所有用户输入都不可信。对用户输入的所有数据均要进行过滤和验证。三种类型的XSS漏洞都可以通过过滤或编码进行修复。反射型XSS和存储型XSS可以在服务端对用户输入输出的内容过滤和编码操作,将关键字进行过滤处理,关键符号进行编码处理,如将所有on事件,script等关键字进行过滤,将所有<,>,”,’,=等特殊符号进行实体化编码或url编码便可以修复。DOM型XSS如有在服务端进行交互,也可参考上述的方法进行修复,如未和服务端进行交互,可在客户端使用JavaScript等客户端脚本语言进行编码和过滤处理。