XSS Challenges(1-12关)
XSS Challenges解析:
1.
什么过滤也没有,而且是直接输出。<scrip>alert(document.domain);</script>即可通过
2.
直接输入第一关不行,查看源代码:
<input type="text" name="p1" size="50" value="<scrip>alert(document.domain);</script>">
发现了这么一行代码,闭合语句试试,输入:"><script>alert(document.domain);</script>//
3.
大家仔细看这个题目,输入的地方有两处,只不过第二处只能从四个国家里面选择一个,但是通过burp抓包,我们可以解决。
先上来按照一般的思路,就直接在输入框里面输入:<script>alert(document.domain);</script>
我们查看源代码可以看到这个,

说明对我们直接输入的代码进行了过滤。但是看后边的这个USA,他是不是也过滤了呢,我们用burp抓个包。

将Japan的值直接修改为<script>alert(document.domain);</script>
发送,通过,USA并没有过滤。

4.
抓个包,发现提交三个参数。前两个肯定过滤了,不然给你第三个参数干啥。

发送后,看看源码。

真的是,第三个参数value没有过滤,只不过这个没有直接在页面上看出来。再发现就是闭合input就行了。构造:"><script>alert(document.domain);</script>//
5.
抓个包

原来是限制了长度,把3改成100,然后查看源代码,闭合input,和上边的一样。"><script>alert(document.domain);</script>//
6.
抓个包,发现只能提交一个参数。直接把上一贯关内容提交。

发现把<>都进行了编码。看一下hint。event handler attribute:事件处理程序。直接百度。


找到了我想要的答案。
这样正好绕开了<>的输入,构造:" onclick="alert(document.domain);"//
值得一提的是,这个onclick是点击输入框才会弹出来,而不是按钮哟。
7.
输入上一关的内容后,发现双引号被过滤。首先说一下,onclick,value,type这种="",其实可以不用存在双引号。
我们首先把alert()的双引号去掉。
构造:" onclick=alert(document.domain);//
在输入然后search,查看源代码

发现value就剩下一个编码后的双引号。what?我们现在只输入1看看
查看源代码

虽然不知道咋回事,但是我知道value引号不用闭合了。
构造1 onclick=alert(document.domain);// 查看源代码:

这个时候已经成功了,点那个输入框,通过。
8.
JavaScript伪协议,先直接输入javascript:alert(document.domain);。查看源代码:

什么也不用闭合,就这样就行了,然后点击页面的url,通过。
9.
发现 < > " 都被过滤了。
hint: utf-7编码,先源代码看一下怎么闭合。
" onclick=alert(document.domain)//
utf-7编码:
+AG8AbgBjAGwAaQBjAGsAPQBhAGwAZQByAHQAKABkAG8AYwB1AG0AZQBuAHQALgBkAG8AbQBhAGkAbgApAC8AL-
不行啊,百度xss utf-7,原理:没有指定编码,浏览器以utf-7编码来解析。
而且必须是IE7。都已经被修复的东西,而且IE7谁还用这老古董啊,就不继续研究6了。
过关方法:

百度的,真是会玩。
10.
随便输入,查看源码,闭合语句。search后,再次查看源码:

domain没了。看hint:s/domain//g;估计是正则表达式替换为了空字符串。如果没有循环替换,试一下双写绕过。domadomainin,这样他只替换一次,这个字符串就变成了domain。构造" onclick=alert(document.domdomainain);//过关.
11.
hint:"s/script/xscript/ig;" and "s/on[a-z]+=/onxxx=/ig;" and "s/style=/stxxx=/ig;"
script转化为xscript,onclick,onload之类转化为onxxx。
前边的都不能用了,不过还有个href。javascript那里虽然有script,但是可以用 制表符,回车符,换行符 来欺骗过滤器。

构造"><a href="javascr
ipt:alert(document.domain);">1<a>
12.
把\x00-\x20 < > " '都过滤掉了。
看别人的wp,
`在 IE下会被解析为引号,所以用这个闭合前边的value。
构造
`
onclick=alert(document.domain);`
XSS Challenges(1-12关)的更多相关文章
- XSS Challenges闯关笔记
前言 做xss做疯了再来一个. 地址:https://xss-quiz.int21h.jp/ ,这个貌似是日本的一个安全研究员yamagata21做的. 做到第九关就跪了,而总共有二十关.一半都还没有 ...
- XSS练习平台-XSS Challenges
XSS Challenges http://xss-quiz.int21h.jp/ XSS基础不好的建议优先查看 关于XSS中使用到的html编码 js编码各种场景用法 http://su.xmd ...
- XSS Challenges学习笔记 Stage#1~ Stage#19
开门见山 Stage #1 http://xss-quiz.int21h.jp/?sid=2a75ff06e0147586b7ceb0fe68ee443b86a6e7b9 这一道题发现我们写入的内容直 ...
- XSS Challenges 练习(1-10)
这几天对XSS Challenges平台进行了练习,网上也有一些相应的解答博客,但是写得都差不多,我觉得可以试一下从怎么做这种题的角度出发去思考问题. 第一题:http://xss-quiz.int2 ...
- xss challenges平台学习
虽然在很早之前就接触过xss,有一段时间还就着一本书研究过,但是始终没有实感,掌握的也不够系统,所以现在借着这几个平台再学习一遍 首先来玩一玩xss challenge平台 第一关:http://xs ...
- XSS Challenges练习及解答
一个偶然的机会在知道创宇的技能表里看到了一个练习XSS的网站http://xss-quiz.int21h.jp,正好想研究这个,于是试着做了一下. 第一.二题是最简单的,直接在搜索框中输入以下代码就成 ...
- XSS Challenges xss-quiz.int21h.jp
概述: https://xss-quiz.int21h.jp/ Stage #1 payload: <script>alert(document.domain);</script&g ...
- XSS challenges 1-10
学长发的xss靶场,刚好js学完了,上手整活. 这个提示说非常简单,直接插入就完事了 <script>alert(document.domain)</script> 第二关. ...
- XSS Challenges
平台: http://www.zixem.altervista.org/XSS/ level1: Payload: http://www.zixem.altervista.org/XSS/1.php? ...
随机推荐
- uLua学习之读取外部Lua脚本(四)
前言 上节说到了Lua脚本与unity3d中C#脚本的数据交互,但是我感觉上节中的数理方式不太好,因为我们是把Lua脚本以字符串形式粘贴到C#脚本中的,如果读取配置数据都这样做的话,那就太可怕了.想想 ...
- 服网LNMP集群-1.0.5
平台: arm 类型: ARM 模板 软件包: haproxy linux mysql nginx application server arm basic software fuwang infra ...
- 巧用netsh命令实现端口转发(端口映射)不求人
好处:即时生效,随意修改删除,不影响其他ip映射 记事本保存为bat格式批量添加后,并查看映射: netsh interface portproxy add v4tov4 listenport=701 ...
- POJ 2385 Apple Catching(01背包)
01背包的基础上增加一个维度表示当前在的树的哪一边. #include<cstdio> #include<iostream> #include<string> #i ...
- 2018.6.18 MyEclipse导入jquery-1.8.0.min.js等文件报错的解决方案
MyEclipse导入jQuery-1.8.0.min.js等文件的时候有时候会报了一堆missing semicolon的错误.怎么解决这个报错呢?方法如下: 1.选中报错的jquery文件例如&q ...
- js转换时间戳成日期格式
<script> function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleString().rep ...
- C# 运用StreamReader类和StreamWriter类实现文件的读写操作
对文件的读写操作应该是最重要的文件操作,System.IO命名空间为我们提供了诸多文件读写操作类,在这里我要向大家介绍最常用也是最基本的StreamReader类和StreamWriter类.从这两个 ...
- 如何利用WordPress的菜单功能实现友情链接功能?
导语:对于wordpress网站的友情链接,有很多种方法可以实现,例如我们可以利用WordPress的链接功能,或者利用WordPress的菜单功能.本文章介绍的是如何利用菜单功能来实现友情链接. 前 ...
- SQL SERVER 2012数据库自动备份的方法
SQL SERVER 2012数据库自动备份的方法 为了防止数据丢失,这里给大家介绍SQL SERVER2012数据自动备份的方法: 一.打开SQL SERVER 2012,如图所示: 服务器类型:数 ...
- 如何在vue项目中使用md5加密
npm安装: npm install --save js-md5 1.在需要使用的项目文件中引入: import md5 from 'js-md5'; 使用: md5('hello world') / ...