点击上方蓝色字体,关注我们
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标签如下:
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录