XSS(跨站脚本攻击)多姿势绕过滤思路
0x01 什么是XSS?
恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击主要针对的是客户端的攻击。
0x02 XSS的危害
XSS能实现的的攻击有很多,一般攻击水平是取决于攻击者的js水平。
-
针对用户:窃取cookie劫持会话、网络钓鱼、放马挖矿、广告刷流量等。
-
针对WEB服务:劫持后台、篡改页面、传播蠕虫、内网扫描等。
0x03 XSS类型
-
反射型
又被称为非持久型XSS,将JS恶意代码暂时保存到网页前端,一旦重新请求页面,恶意代码会被消除,一般用于XSS注入点的盲测或者钓鱼。
-
存储型
存储型XSS,又称持久型XSS,它和反射型XSS最大的不同就是,攻击脚本将被永久地存放在目标服务器的数据库或文件中。允许用户存储数据的WEB应用程序都可能出现存储型漏洞,当攻击者提交一段XSS代码后,被服务器接受被储存,当访问者再次访问此网站,这段代码又被提取出来,响应给浏览器。形成储存型XSS漏洞攻击。
-
DOM型
全称Document Object Model,在网站页面中有许多页面的元素,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。简单来说DOM是通过url传入参数来触发XSS的,也可以认为是反射型的一种。
0x04 多姿势绕过
1.基本的xss
以DVWA(Reflected)的low等级举例(完全没有过滤的情况下)。
<script>alert(`Rdrug`);</script>
2.大小写绕过、字符拼接
以DVWA(Reflected)的middle等级举例。
源码:
<?php
header ("X-XSS-Protection: 0");
// Is there any input?
if( array_key_exists( "name"