您当前的位置: 首页 > 

合天网安实验室

暂无认证

  • 0浏览

    0关注

    748博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

xssgame通关攻略

合天网安实验室 发布时间:2018-06-28 20:38:00 ,浏览量:0

点击上方蓝色字体,关注我们

15

0x00前言

前两天打sctf的时候有一道题是考的AngularJS的xss,当时看了队友写的write up也没搞太懂,深感自己xss方面太过薄弱,然后看到队友write up中提到了这个xssgame,刷了下感觉题目的质量还是很不错的,循序渐进,而且对于像我这样的小白可以学到不少知识 这套题目一共8关 题目地址:(需科学上网食用) http://www.xssgame.com/ 

0x01:第一关 

这可以说是很贴心了,题目直接说了用户的输入会没有任何过滤直接输出到页面上 那么我们直接alert(/xss/)就可以了 

0x02:第二关

题目说明中说到,每比特用户的输入都被转义了 那么我们还是输入alert(/xss/)试试 

从上图我们可以看到,我们的输入被输出到页面上了,但是并没有产生xss弹窗 这时,我们可以按f12,来查看我们点击按钮后到底发生了什么

点击?timer=......,然后查看Response 

我们可以看到''符号都被转义为实体符号了 

但是如果我们注意,就会发现我们输入的数据,在onload事件里面,那么我们就可以不使用标签就可以达到弹窗的效果了 我们直接插入'+alert(/xss/)+' 这时onload就变成了如下:

οnlοad="startTimer(''+alert(/xss/)+'');"

startTimer在执行的时候,其参数是一个表达式,那么就会先计算表达式的值,当计算表达式的值的时候,就会首先执行alert(/xss/)这一句,然后就会弹窗了 

0x03:第三关 还是先看提示

根据提示,在页面上没有可供用户输入的地方,我们应该关注URL 为了方便,我们将题目页面单独打开

既然是xss,那么我们就看一下它的js代码吧: 

上面这句代码是用来动态载入图片的,其中chooseTab(name)的参数name就是url中的1,2,3 分别代表三张图片 在这里name被直接拼接到了img标签里,这样我们应该就知道该怎么弹窗了,我们只需要给一个不存在的图片名称,然后再利用onerror不就可以弹窗了吗 payload如下:

4' οnerrοr='alert(/xss/)'

拼接过后的img标签如下:

关注
打赏
1665306545
查看更多评论
立即登录/注册

微信扫码登录

0.0633s