XSS 挑战之旅通关记录
XSS 挑战之旅 是一个 xss 的靶场,一共 18 关,练练手
level 1
三步走
1 |
|
level 2
1 |
|
level 3
1 |
|
level 4
1 |
|
level 5
on替换为
o_n, script
替换为 scr_ipt
,且一律转为小写
1 |
|
点击 xss
level 6
herf 也被替换成 he_rf 了,其他和 l5 一样
但是少了大小写转换:
1 |
|
level 7
关键字替换为空,双写即可:
1 |
|
level 8
过滤地比较严格
可以换行隔开关键字
1 |
|
level 9
检测 http://
存在,不存在则阻止
且替换了 javascript,同样,回车隔开
1 |
|
level 10
keyword 过滤较严格。
但是有三个隐藏参数:
t_link
, t_history
,t_sort
,都手动加上:
?keyword=&t_link="&t_history="&t_sort="
发现只有 t_sort 有输出:
1 |
|
level 11
代码中有隐藏参数,只有 t_sort 有输出
t_ref
猜测是 referer 的 xss,bs 改报验证后,常规 payload:
增加一个 referer:
1 |
|
我做到 level 10 的时候中断了一下,然后直接输入网址打开了 level 11
按照正常情况,level 11 页面中的 t_ref 是有值的
level 12
t_ua
,这题是 ua xss:
1 |
|
level 13
Cookie xss
1 |
|
level 14
http://www.exifviewer.org
这个网站需要认证。。
这题暂时做不了,看了一下网上的 wp,是一个 EXIF XSS
level 15
注意
这题需要科学上网
这题网址有的问题,应该是
http://127.0.0.1/xsstest/level15.php?src=1.gif
涉及到 AngularJS
简单来说,AngularJS 通过新的属性和表达式扩展了 HTML
源码中的 ng-include
即包含外部的 HTML 文件,文件名来自 src
参数,包含的内容将作为指定元素的子节点。
由于 ng-include 遵循 SOP,所以我们可以选择包 level 1:
1 |
|
但是这样过不了,不知道为啥。。换 img 试试:
1 |
|
level 16
对特殊字符进行了编码。script 被限制,用 on 事件代替;空格被限制,用 %0a 的代替(可 fuzzing)
1 |
|
level 17
on 事件触发:
1 |
|
level 18
和 17 一样。。
1 |
|
来呀快活呀