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. Angular CLI的简单使用(2)

    刚才创建了myApp这个项目,看一下这个项目的文件结构.    项目文件概览 Angular CLI项目是做快速试验和开发企业解决方案的基础. 你首先要看的文件是README.md. 它提供了一些如何 ...

  2. django ORM 简单示例简绍

    简单 models 操作 class Host(models.Model): nid = models.AutoField(primary_key=True) #Nid为主键 hostname = m ...

  3. java Vamei快速教程22 内存管理和垃圾回收

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 整个教程中已经不时的出现一些内存管理和垃圾回收的相关知识.这里进行一个小小的总结. ...

  4. linux 命令——42 kill (转)

    Linux 中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以 使用Ctrl+C键,但是,对于一个后台进程 ...

  5. Linux一键脚本合集vps

    首先,想说说一键脚本流行的原因何在? 众所周知的是,Linux 是占据大半壁江山的服务器系统,但在桌面上的占有率可就远不是那么回事儿了,使用和熟悉 Linux 的人远没有 Windows 多,但又因为 ...

  6. centos 7 虚拟机启用网卡

    1.vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 2.编辑默认网卡配置文件,将ONBOOT由no改为yes,编辑完成后,按ESC回至命令模板,输入&qu ...

  7. 复选框(checkbox)、多选框

    1.需求分析 可同时选中多个选项,实现全选.全不选.反选等功能. 2.技术分析 基础的HTML.CSS.JavaScript. 3.详细分析 3.1 HTML部分 图示是一个列表加底部一段文字说明,列 ...

  8. iOS 中push和pop到底系统做了些什么事

    iOS中的push和pop是一个很常用的视图切换方法,他们是成对出现的, 简而言之,push就是压栈,pop就是出栈! [self.navigationController pushViewContr ...

  9. rand()和srand()

    C++中rand() 函数的用法 1.rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数. 2.如果你要产生0~99这100个整数中的一个随机整数, ...

  10. STL笔记(こ)--删除数组中重复元素

    使用STL中的Unique函数: #include<bits/stdc++.h> using namespace std; void fun(int &n) //配套for_eac ...