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转化为xscriptonclickonload之类转化为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关)的更多相关文章

  1. XSS Challenges闯关笔记

    前言 做xss做疯了再来一个. 地址:https://xss-quiz.int21h.jp/ ,这个貌似是日本的一个安全研究员yamagata21做的. 做到第九关就跪了,而总共有二十关.一半都还没有 ...

  2. XSS练习平台-XSS Challenges

    XSS Challenges http://xss-quiz.int21h.jp/   XSS基础不好的建议优先查看 关于XSS中使用到的html编码 js编码各种场景用法 http://su.xmd ...

  3. XSS Challenges学习笔记 Stage#1~ Stage#19

    开门见山 Stage #1 http://xss-quiz.int21h.jp/?sid=2a75ff06e0147586b7ceb0fe68ee443b86a6e7b9 这一道题发现我们写入的内容直 ...

  4. XSS Challenges 练习(1-10)

    这几天对XSS Challenges平台进行了练习,网上也有一些相应的解答博客,但是写得都差不多,我觉得可以试一下从怎么做这种题的角度出发去思考问题. 第一题:http://xss-quiz.int2 ...

  5. xss challenges平台学习

    虽然在很早之前就接触过xss,有一段时间还就着一本书研究过,但是始终没有实感,掌握的也不够系统,所以现在借着这几个平台再学习一遍 首先来玩一玩xss challenge平台 第一关:http://xs ...

  6. XSS Challenges练习及解答

    一个偶然的机会在知道创宇的技能表里看到了一个练习XSS的网站http://xss-quiz.int21h.jp,正好想研究这个,于是试着做了一下. 第一.二题是最简单的,直接在搜索框中输入以下代码就成 ...

  7. XSS Challenges xss-quiz.int21h.jp

    概述: https://xss-quiz.int21h.jp/ Stage #1 payload: <script>alert(document.domain);</script&g ...

  8. XSS challenges 1-10

    学长发的xss靶场,刚好js学完了,上手整活. 这个提示说非常简单,直接插入就完事了 <script>alert(document.domain)</script> 第二关. ...

  9. XSS Challenges

    平台: http://www.zixem.altervista.org/XSS/ level1: Payload: http://www.zixem.altervista.org/XSS/1.php? ...

随机推荐

  1. 六、C++离散傅里叶逆变换

    C++离散傅里叶逆变换 一.序言: 该教程承接上文的离散傅里叶变换,用于进行离散傅里叶逆变换. 二.设计目标 对复数数组进行离散傅里叶逆变换,并生成可供使用的图像类. 三.详细步骤 输入:经傅里叶变换 ...

  2. ASP.NET的三种开发模式

    前言 ASP.NET 是一个免费的Web开发框架,是由微软在.NET Framework框架中所提供的,或者说ASP.NET是开发Web应用程序的类库,封装在System.Web.dll 文件中.AS ...

  3. 无法通过CTRL+空格及SHIFT+CTRL调出输入法的解决方案

    打开任务管理器: 运行:CTFMON.EXE

  4. 前端三大框架 Vue.js、AngularJS、React 的区别

    Vue.js Vue.js 是一种构建数据驱动的Web界面的渐进式框架,Vue.js 采用自底向上增量开发的设计. Vue.js 轻量高效,数据双向绑定(响应式数据绑定), 它会自动响应数据的变化情况 ...

  5. 关于请求时状态为cancel

    项目中发现有一个问题,在我发送某些请求的时候请求一会状态就变为cancel了,我滴个乖乖,这是咋回事,被取消了,后来经过仔细排查后发现了以下两个问题 1.AJAX和form表单同时使用,(form提交 ...

  6. 区块链工作 jd

    https://www.lagou.com/jobs/4096098.html 技术咨询网站: https://mp.weixin.qq.com/s/hs37UZFGI3uR4qmQ7v346g## ...

  7. Oracle ORA-01722 无效数字

    ORA-01722 无效数字 以下几种情况,数据库会报“ORA-01722 无效数字”错误: ① 对于两个类型不一致,一个“数字类型”,一个“非数字类型”进行赋值,或者比较操作: ② to_numbe ...

  8. eclipse部署web项目至本地的tomcat但在webapps中找不到问题

    一.发现问题 在eclipse中新建Dynamic Web Project,配置好本地的tomcat并写好代码后选择Run on Server,但运行后发现在tomcat的安装目录下的webapps并 ...

  9. java基础面试题:java中有没有goto? 在JAVA中如何跳出当前的多重嵌套循环?

    goto是Java的保留关键字,但是从来没有直接使用到goto,goto的跳转作用在Java中受到了限制,只有在特定场合下才能使用,如while for等循环中用continue.break或结合标签 ...

  10. @property 关键字的区别详解

    @property 关键字的区别详解:assign 与weak. __block 与 __weak.strong 与copy的区别 字数911 阅读269 评论2 喜欢8 在开发中经常使用属性@pro ...