3-XSS漏洞
1.XSS原理
跨站脚本攻击是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。它允许恶意用户将代码注入网页,其他用户在浏览网页时会受到影响。恶意用户利用xss代码攻击成功后,可能得到很高的权限、私密网页内容、会话和cookie等各种内容。
2.XSS分类
反射型xss
反射型xss又称非持久型xss,这种攻击方式往往具有一次性。
攻击方式:攻击者通过电子邮件等方式将包含xss代码的恶意链接发送给目标用户。当目标用户访问该链接时,服务器接收该用户的请求并进行处理,然后服务器把带有xss代码的数据发送给目标用户的浏览器,浏览器解析这段带有xss代码的恶意脚本后就会触发xss漏洞。
payload:
"><img src=1 onerror="alert(/xss/)"/>
存储型xss
存储型xss又称持久型xss,攻击脚本将被永久的存放在目标服务器的数据库或文件中,具有很高的隐蔽性。
攻击方式:这种攻击多见于论坛、博客和留言板中,攻击者在发帖的过程中,将恶意脚本连同正常的信息一起注入帖子的内容中。随着帖子被服务器存储下来,恶意脚本也永久的存放在服务器的后端存储器中。当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本会在他们的浏览器中得到执行。
paylaod
<img src=1 onerror="alert(/xss/)"/>
DOM型xss
DOM型xss其实是一种特殊类型的反射型xss,它是基于DOM文档对象模型的一种漏洞。
攻击方式:用户请求一个经过专门设计的URL,它由攻击者提交,而且其中包含xss代码。服务器的响应不会以任何的形式包含攻击者的脚本,当用户的浏览器处理这个响应时,DOM对象就会处理xss代码,导致存在xss漏洞。
payload
<img src=1 onerror="alert(/xss/)"/>
3.XSS绕过
3.1JS编码
3.2HTML编码
3.3URL编码
4.XSS修复
4.1 过滤输入的数据
4.2 对输出到页面的数据进行相应的编码转换