定义:
XSS攻击通常是指利用网页开发时留下的漏洞,以巧妙的方式将恶意指令代码注入网页,从而使用户加载并运行带有攻击者恶意编写的web程序。 这些恶意web程序通常是JavaScript,但实际上也可以包含Java、VBScript、ActiveX、Flash或常规HTML。 攻击成功后,攻击者可以包括但不限于更高的权限(如执行一些操作)、各种内容(如专用web内容、会话和cookie )。
原理:
HTML是超文本标记语言,它通过特殊处理某些字符来区分文本和标记,例如符号(小于)被视为HTML标记的开始,和之间的字符是页面标题。 如果插入到动态页面的内容包含特殊字符(如),则用户浏览器会将其误认为插入了HTML标记,并在这些HTML标记中引入JavaScript脚本时在用户浏览器中运行。 因此,如果这些特殊字符无法在动态页中检查,或者检查中存在错误,则会发生XSS漏洞。
类型:
根据攻击代码的结构可以分为三种类型。
)1)持续型跨站)最直接的危害类型,跨站代码存储在服务器(数据库)中。
)2)非持久型交叉点)反射型交叉点脚本漏洞,是最普遍的类型。 用户返回到访问服务器-交叉站点链接-交叉站点代码。
)3) DOM交叉点(DOM XSS ):DOM (documentobjectmodel文档对象模型)、客户端脚本处理逻辑引起的安全问题。
基于DOM的XSS漏洞意味着受害方web脚本在修改本地页面DOM环境时没有采取适当措施,而是运行了攻击脚本。 在攻击过程中,服务器响应的页面没有变化。 客户端脚本执行结果差异的原因是对本地DOM的恶意篡改。
常用的XSS攻击手段和目的如下。
1、盗用饼干获取机密信息。
2、利用移植闪存,通过crossdomain权限设置获得更高的权限; 或者利用Java等得到同样的操作。
3、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以用户身份执行一些管理动作,或者执行一般的微博、添加朋友、发私信等操作。
4 .利用可攻击域受其他域信任的特点,要求进行非法投票活动等平时不允许的操作作为可信源。
5、访问量较大的部分页面的XSS可以攻击一些小型网站,实现DDoS攻击的效果。
xss实战
1 .注册XSS平台帐户: https://xss8.cc/register/
2 .登录后创建项目
3 .自由输入项目名称、项目说明
4 .选择默认模块xss.js模块
5 .选择要插入的js语句
6 .打开构建的dvwa平台,将安全性设置为最低
7 .插入7.XSS(stored ) js语句
8 .然后在xss平台上看,拿到了cookie
确认cookie成功