目录

XSS-labs克隆/下载地址:

第一关

解法

 第二关

 解法

第三关 

解法 

第四关 

解法

第五关

解法

第六关

解法 

第七关

解法

第八关

解法

第九关 

解法

 第十关

解法

 第十一关

解法

第十二关

解法 

第十三关

解法

从XSS payload 中关于浏览器解码的一些总结




XSS-labs克隆/下载地址:

mirrors / do0dl3 / xss-labs · GitCode


xss靶场搭建docker_大小写

第一关

xss靶场搭建docker_xss靶场搭建docker_02

解法

上面搜索框name=后面直接输入任一xss代码即可

xss靶场搭建docker_xss_03


 第二关

xss靶场搭建docker_xss靶场搭建docker_04

 判断回显位置

xss靶场搭建docker_前端_05

 

xss靶场搭建docker_前端_06

 解法

逃逸双引号

xss靶场搭建docker_xss_07


第三关 

判断回显位置

xss靶场搭建docker_大小写_08

 用第二关方法逃逸不出来

xss靶场搭建docker_前端_09

 查看源码

xss靶场搭建docker_HTML_10

使用字符转换的函数将大小尖括号过滤过

官方文档如是说

xss靶场搭建docker_xss靶场搭建docker_11

解法 

既然大小尖括号被过滤我们可以不使用尖括号语句

使用单引号逃逸value值,再使用onclick事件进行xss弹窗

xss靶场搭建docker_HTML_12

 

xss靶场搭建docker_xss靶场搭建docker_13


第四关 

xss靶场搭建docker_xss靶场搭建docker_14

 php将大小尖括号替换为空,我们可以用第三题的思路,先将value绕过然后使用onclick事件进行弹窗

解法

xss靶场搭建docker_HTML_15

xss靶场搭建docker_大小写_16


第五关

xss靶场搭建docker_大小写_17

 第五关将payload转换为小写后,过滤了<script  和 on  我们的思路是先逃逸value值,后使用a标签JavaScript伪协议来尝试

解法

xss靶场搭建docker_HTML_18

xss靶场搭建docker_xss_19


第六关

xss靶场搭建docker_前端_20

第六关将<script        on        src        data        href都进行了过滤,我们可以尝试用大小写来绕过 

解法 

xss靶场搭建docker_HTML_21

xss靶场搭建docker_大小写_22


第七关

xss靶场搭建docker_xss靶场搭建docker_23

第七关和第六关的不同在于,第七关将payload转换为小写后将script        on        src        data        href都替换成了空字符        

我们可以尝试双写绕过

解法

xss靶场搭建docker_前端_24

xss靶场搭建docker_HTML_25


第八关

xss靶场搭建docker_前端_26

 第八关无法大小写、双写绕过。我们需要使用编码绕过

解法

javascript:alert(1)

xss靶场搭建docker_前端_27

xss靶场搭建docker_xss_28


第九关 

xss靶场搭建docker_大小写_29

xss靶场搭建docker_大小写_30

第九关判断了是否有http协议,没有http协议视为不合法

解法

xss靶场搭建docker_前端_31

 

xss靶场搭建docker_HTML_32


 第十关

xss靶场搭建docker_HTML_33

 第十关有隐藏form表单

解法

xss靶场搭建docker_HTML_34

xss靶场搭建docker_前端_35


 第十一关

xss靶场搭建docker_大小写_36

refer字段信息被传递到页面显示

解法

xss靶场搭建docker_前端_37

 

xss靶场搭建docker_xss_38


第十二关

xss靶场搭建docker_xss_39

从user agent中插入参数

解法 

xss靶场搭建docker_大小写_40

 

xss靶场搭建docker_大小写_41


第十三关

xss靶场搭建docker_xss靶场搭建docker_42

 对cookie的user值进行绕过

解法

xss靶场搭建docker_xss_43


从XSS payload 中关于浏览器解码的一些总结

  1. <script><style>数据只能有文本,不会有HTML解码和URL解码操作
  2. <textarea><title>里会有HTML解码操作,但不会有子元素
  3. 其他元素数据(如div)和元素属性数据(如href)中会有HTML解码操作
  4. 部分属性(如href)会有URL解码操作,但URL中的协议需为ASCII
  5. JavaScript会对字符串和标识符Unicode解码

根据浏览器的自动解码,反向构造 XSS Payload 即可