xss-challenges题解与总结

2019年10月19日 0 作者 y1nhui

0x000前言

找到了一个xss的闯关站点:XSS Challenges 是yamagata21大佬写的
开始做题+学习
每天三题,似乎一共20题,七天写完吧√
大意了,中途被家里带出门了= =

0x001内容

Stage #1

先输入看一下

可以看到输入被包含在了<b>
而标签<b>内是可以直接使用<script>标签的,直接输入,

ok
然后发现要弹的是document.domain。。。。再弹一下进入下一题

Stage #2

老样子先qwq一下
blob
连回显都没有。。。看看源码
blob
东西放在了value里面,试试闭合blob
blob
完事

Stage #3

blob
这个样子长得让让我想到了dom xss。还是先qwq一下看看吧
blob
继续看源码blob
?我觉得应该没那么简单,不过还是试一下看看
blob
果然。或许真是dom-xss?我调burp看一下


真的是通过burp抓包修改打dom-xss?
询问了一下大佬,大佬说这个打法并非只能打自己,还有往缓存里打等方法来有请下一位受害者。

Stage #4

qwq?
先抓包看一下吧
blob
多了个参数,作用不确定,还是先赶一下japan看一下
blob
没能弹窗。
改一下第三个参数看看
blob
blob
找到你了,闭合双引号看一下。


完事

Stage #5

qwq?
blob
试一下闭合,然后发现直接被清空。。。
再试试。。。
blob
发现有长度限制。。。我想我猜到这题考点了。。。
blob
blob
果然,只是长度限制而已。。。。

Stage#6

qwq?blob
那。。。看看过滤?
blob
?居然全进去了,看来会有别的东西等我
blob
果然。。。被实体化了。不过好像只实体化了”<“和”>”?
那用个on事件咯
blob
ps:在结尾我加了个空格用来将后面的”分割开来以及用我这个payload的话鼠标移动就会弹窗一次建议自己换一个别的on事件
blob
成功

Stage #7

qwq
blob
在value里放着,试一下过滤
blob
blob
。。。真的有过滤吗
blob
blob
走你

Stage #8

blob
长得有点不一样啊
blob
blob
直接href了 而且估计也没过滤 不用纠结js编码与url编码 直接上
blob
blob
完事

Stage #9

utf-7编码绕过吗。。。但是我查了一下大部分浏览器已经修了这个洞而且我还没有ie7= =
直接f12自己打自己去下一题

Stage #10

qwq
blob
试试直接闭合弹窗blob
domain被过滤 双写绕过试试
blob
blob

Stage #11

qwq后看到在value内 然后发现script前方被加了一个x
blob
那。。。。用<a>标签来执行Unicode编码的JavaScript
"><a href="javascript:alert(document.domain)">a</a>
blob
完事

Stage #12

还是在value 测一下过滤
blob
blob
双引号和尖括号都过滤了不过ie浏览器有一个特性 即反引号会解析为引号
我们就可以闭合然后用一个on事件了
blob
blob

Stage #13

blob
emmmm css-xss?这个我在那些年我们一起学的xss这里看过,不过这个使用是ie浏览器特性而且已经被修复了
blob
尴尬了 直接f12打自己跳过去吧

Stage #14

。。。。同上 跳了

Stage #15

0w0blob
那直接打印?
blob
然后发现双尖括号被转义了。。。编码绕过
用\u形式
\u0026\u006c\u0074\u003bscript\u0026\u0067\u0074\u003balert(document.domain)\u0026\u006c\u0074\u003b/script\u0026\u0067\u0074\u003b
blob
所有反斜杠都被去掉了。。双写绕过看看?
\u0026\u006c\u0074\u003bscript\u0026\u0067\u0074\u003balert(document.domain)\u0026\u006c\u0074\u003b/script\u0026\u0067\u0074\u003b
blob
。。。。。
??????wtf?
emmm我好像知道原因了,回来写。
我们这次用16进制的方法编码转换
\u003cscript\u003ealert(document.domain);\u003c/script\u003e
blob

Stage #16

。。。。长得和上一关一模一样,让我直接试试上关的payload
blob
我傻了,真就白给嗷
据说后面的都是老版本ie才可以复现。摸了摸了~

0x002总结

我本来是刚刚学了一些svg的操作想来练练的,谁知道一直到写完都没有用到svg。。。。
这个东西似乎也没有什么需要总结的,那说一下之前那个编码时的问题吧。
一开始的长编码\u0026\u006c\u0074\u003b通过正常的转换是<
没错html实体了= =