xss-challenges题解与总结
Contents
0x000前言
找到了一个xss的闯关站点:XSS Challenges 是yamagata21大佬写的
开始做题+学习
每天三题,似乎一共20题,七天写完吧√
大意了,中途被家里带出门了= =
0x001内容
Stage #1
先输入看一下
可以看到输入被包含在了<b>
内
而标签<b>
内是可以直接使用<script>
标签的,直接输入,
ok
然后发现要弹的是document.domain。。。。再弹一下进入下一题
Stage #2
老样子先qwq一下
连回显都没有。。。看看源码
东西放在了value里面,试试闭合
完事
Stage #3
这个样子长得让让我想到了dom xss。还是先qwq一下看看吧
继续看源码
?我觉得应该没那么简单,不过还是试一下看看
果然。或许真是dom-xss?我调burp看一下
真的是通过burp抓包修改打dom-xss?
询问了一下大佬,大佬说这个打法并非只能打自己,还有往缓存里打等方法来有请下一位受害者。
Stage #4
qwq?
先抓包看一下吧
多了个参数,作用不确定,还是先赶一下japan看一下
没能弹窗。
改一下第三个参数看看
找到你了,闭合双引号看一下。
完事
Stage #5
qwq?
试一下闭合,然后发现直接被清空。。。
再试试。。。
发现有长度限制。。。我想我猜到这题考点了。。。
果然,只是长度限制而已。。。。
Stage#6
qwq?
那。。。看看过滤?
?居然全进去了,看来会有别的东西等我
果然。。。被实体化了。不过好像只实体化了”<“和”>”?
那用个on事件咯
ps:在结尾我加了个空格用来将后面的”分割开来以及用我这个payload的话鼠标移动就会弹窗一次建议自己换一个别的on事件
成功
Stage #7
qwq
在value里放着,试一下过滤
。。。真的有过滤吗
走你
Stage #8
长得有点不一样啊
直接href了 而且估计也没过滤 不用纠结js编码与url编码 直接上
完事
Stage #9
utf-7编码绕过吗。。。但是我查了一下大部分浏览器已经修了这个洞而且我还没有ie7= =
直接f12自己打自己去下一题
Stage #10
qwq
试试直接闭合弹窗
domain被过滤 双写绕过试试
过
Stage #11
qwq后看到在value内 然后发现script前方被加了一个x
那。。。。用<a>
标签来执行Unicode编码的JavaScript
"><a href="javascript:alert(document.domain)">a</a>
完事
Stage #12
还是在value 测一下过滤
双引号和尖括号都过滤了不过ie浏览器有一个特性 即反引号会解析为引号
我们就可以闭合然后用一个on事件了
Stage #13
emmmm css-xss?这个我在那些年我们一起学的xss这里看过,不过这个使用是ie浏览器特性而且已经被修复了
尴尬了 直接f12打自己跳过去吧
Stage #14
。。。。同上 跳了
Stage #15
0w0
那直接打印?
然后发现双尖括号被转义了。。。编码绕过
用\u形式
\u0026\u006c\u0074\u003bscript\u0026\u0067\u0074\u003balert(document.domain)\u0026\u006c\u0074\u003b/script\u0026\u0067\u0074\u003b
所有反斜杠都被去掉了。。双写绕过看看?
\u0026\u006c\u0074\u003bscript\u0026\u0067\u0074\u003balert(document.domain)\u0026\u006c\u0074\u003b/script\u0026\u0067\u0074\u003b
。。。。。
??????wtf?
emmm我好像知道原因了,回来写。
我们这次用16进制的方法编码转换
\u003cscript\u003ealert(document.domain);\u003c/script\u003e
过
Stage #16
。。。。长得和上一关一模一样,让我直接试试上关的payload
我傻了,真就白给嗷
据说后面的都是老版本ie才可以复现。摸了摸了~
0x002总结
我本来是刚刚学了一些svg的操作想来练练的,谁知道一直到写完都没有用到svg。。。。
这个东西似乎也没有什么需要总结的,那说一下之前那个编码时的问题吧。
一开始的长编码\u0026\u006c\u0074\u003b通过正常的转换是<
没错html实体了= =