XSS全称为:Cross Site Scripting,指跨站攻击脚本,XSS漏洞发生在前端,攻击的是浏览器的解析引擎,XSS就是让攻击者的JavaScript代码在受害者的浏览器上执行。
JavaScript运行条件:
(1)代码位于”“标签中,如
<script>alert(1)</script>
代码位于超链接的href属性中,或者其他类似属性中
<a href="javascript:alert(1)">点击有惊喜</a>
利用iframe完成XSS攻击,将攻击者的模仿页面嵌入被攻击网页中:
<iframe src="https://www.tabao.com"></iframe>
xss原理
服务器对用户提交的数据过滤不严,导致浏览器把用户的输入当成了JS代码并直接返回给客户端执行,从而实现对客户端的攻击目的。
xss类型
反射性 (一次性的)
比较容易被发现。通常恶意连接会被修改成短链接,或钓鱼图片的形式。
存储型(永久性)
因为存储型XSS的页面会将用户输入的内容存入到数据库内,所以当其他人每访问一次的时候,服务器都会从数据库将攻击者输入的内容调取到前端浏览器解析,因此每一次访问就相当于一次XSS攻击。
DOM型(大部分都属于反射性的一种)
主要利用js使用dom对前端html进行操作时候产生的漏洞。DOM型XSS的难点就在于通过阅读JavaScript来确定输出的位置,才好构建输入的payload。
xss危害
(1)网页挂马,利用浏览器挖矿等
(2)盗取用户Cookie并扮演用户角色。
(3)DOS(拒绝服务)客户端浏览器。
(4)钓鱼攻击,高级的钓鱼技巧
(5)删除目标文章、恶意篡改数据、嫁祸。
(6)劫持用户Web行为,甚至进一步渗透内网。
(7)蠕虫式的 DDoS 攻击。
(9)蠕虫式挂马攻击、刷广告、刷浏量、破坏网上数据
xss防御
(1).对输入和URL参数进行过滤(最好使用白名单),对输出进行编码。
(2).使用内容安全策略(CSP)是对抗XSS的深度防御策略。
(3).做实体字符编码,htmlspecialchars(),函数功能就是把特殊符号,比如尖括号,引号,&转换成实体编码
(4)正则表达式或字符串判断
(5)使用httponly 限制js读取cookie信息
xss绕过
前端限制,直接用F12开发者选项修改JS既可,或者用burpsuite绕过。
字符过滤,双写,大小写绕过,通过注释符绕过,也可以通过换行符绕过。
测试其他标签