XSS:跨站脚本,是代码注入的一种,它允许恶意用户将代码注入网页,其他用户在浏览网页时就会收到影响,xss代码执行成功后可能获得很多权限、私密网页内容、会话、cookie等。 分为3种:反射型、存储型、DOM型 反射型: 又称为非持久型XSS,这种攻击都只有一次性。攻击方式:攻击者通过电子邮件等形式,当用户访问链接时,服务器接收目标用户的请求并进行处理,然后服务器把带有xss代码的数据发送给目标用户的浏览器,浏览器就会解析这段xss代码的脚本,触发xss漏洞。 存储型: 又叫做持久型XSS,攻击脚本将被永久地存放在目标服务器的数据库或文件中,具有很高的隐蔽性。攻击方式:这种攻击多见于论坛、博客和留言板,攻击者在发帖的过程中,将恶意脚本连同正常信息一起注入帖子的内容中。随着帖子被服务器存储下来,恶意脚本也被存放在服务器的后端存储器中,当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本会在他们的浏览器中得到执行。 DOM型: 全称是 Document Object Model,使用dom可以使程序和脚本能够动态访问和更新文档的内容、结构及样式 DOM型XSS其实是一种特殊类型的反射型,他是基于DOM文档对象模型的一种漏洞。 HTML的表情都是节点,而这些节点组成了DOM的整体结构—节点树。树中的所有节点均可通过JavaScript进行访问,所有HTML节点都可被修改、创建、删除。攻击方式:用户请求一个经过专门设计的URL,它由攻击者提交,而且其中包含XSS代码。服务器的响应不会以任何形式包含攻击者的脚本。当用户的浏览器处理这个响应时,DOM对象就会处理XSS代码,导致存在XSS漏洞。
XSS常见的测试语句:
XSS的绕过方法: 1、JS编码 2、HTML编码 3、URL编码 首先在XSS平台上注册并登录账号,点击我的项目中的创建,然后点默认模块然后就会生成很多代码,根据情况选择自己要用的,将代码插入到存在xss漏洞的url里,如果有浏览器执行在xss平台就能够获取信息。
修复建议:过滤输出的数据例如’ “ < > on等非法字符 对输出到页面的数据进行相应的编码转换,HTML编码,JavaScript编码等。