攻击危害
1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马 让更多人的受害
7、控制受害者机器向其它网站发起攻击 卖肉机
攻击分类
反射型
- 非持久性跨站点脚本攻击
- 攻击是一次性的,仅对当次的页面访问产生影响
存储型
- 持久型跨站点脚本
- 攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在
DOM型
- 既可能是反射型的,也有可能是存储型的
- 基于文档对象模型(Document Objeet Model,DOM)的一种漏洞
攻击流程
XSS产生的原因
Web应用对用户输入过滤不严谨
攻击者写入恶意的脚本代码到网页中
用户访问了含有恶意代码的网页
恶意脚本就会被浏览器解析执行并导致用户被攻击
构造xss攻击脚本
常用标签
常用HTML
标签:
<iframe>
iframe标签会创建包含另外一个文档的内联框架<textarea>
textarea标签定义多行的文本输入控件<img>
img标签向网页中嵌入一幅图像<script>
script标签用于定义客户端脚本,比如JavaScriptscript
标签既可以包含脚本语句,也可以通过src属性指向外部脚本文件
------必需的type属性规定脚本的类型。
------JavaScript的常见应用是图像操作、表单验证以及动态内容更新。
常用javascript
脚本:
alert
:alert方法用于显示带有一条指定消息和一个确认按钮的警告框window.location
:window.location对象用于获得当前页面的地址(URL) ,并把浏览器重定向到新的页面location.href
:返回当前显示的文档的完整URLonload
:一张页面或一幅图像完成加载onsubmit
:一个按钮被点击onerror
: 在加载文档或图像时发生错误
构造脚本的方式
弹窗警告
页面嵌套
页面重定向
弹窗警告并重定向
图片标签利用
绕开过滤的脚本
存储型xss基本演示
访问恶意代码(网站种马)
绕过检测
大小写 <ScrIpt>alert('xss')</SCRipt>
字符编码 字符编码采用URL
、Base64
、HTML
等编码
XSS防御
将容易导致XSS攻击的边角字符替换成全角字符
HttpOnly
限制输入长度
输入关键词过滤
使用富文本输出或者对输出使用安全的编码函数