第一关

关键代码:

这一关两处的输出都没做任何防护,直接将用户的输入拼接到输出里面.

payload:

第二关

使用上一关的payload显示如下

闭合一下标签就好了.

第三关

htmlspecialchars编码会将预定义的字符转换为 HTML 实体。

字符	替换后
& (& 符号) &
" (双引号) ",除非设置了 ENT_NOQUOTES
' (单引号) 设置了 ENT_QUOTES 后, ' (如果是 ENT_HTML401) ,或者 ' (如果是 ENT_XML1、 ENT_XHTML 或 ENT_HTML5)。
< (小于) &lt;
> (大于) &gt;

这一关两处输出点都使用了htmlspecialchars编码.那么>和<都不能用,script标签也就不能用了. 但是这里单引号能用能起效果,应该是没有做特殊设置吧.

payload

回车之后点击搜索框即可

第四关

这一关用第三关的payload,将单引号改成双引号就行.

第五关

这一关将<script和on关键词进行了替换,并且用户的输入先用strtolower函数转成了小写, 前面的payload都无法使用了.

黑名单只禁用两个有啥用嘛,换个标签闭合就行.

payload:

第六关

这里黑名单禁用的比第五关多了.但是貌似忘了将用户的输入同意转成小写.大小写绕过即可

payload:

第七关:

这一关存在黑名单,并且将用户的输入转成了小写,但是只是将一些关键词替换为空,这样可以双写绕过

payload:

第八关

这一关并没有将关键词替换成空,最后还把双引号转义输出.但是这一关加了个功能点,用户的输入会拼接到a标签中做成一个可以跳转的友情链接.那么我们可以拼接一个javascript:alert(/xss/)进去,但是script会被替换,这里用到了html实体化编码,将script中的某个字符编码掉.

payload

javascript:alert(/xss/)

输入到框里面点击添加友情连接即可

第九关

这一题在上一题的基础上多加了一个strpos,strpos查找字符串首次出现的位置,如果没有查找到返回False,也就是说他这里指定了用户的输入中要有http://字符串,不然提示你的链接不合法.应该是认为链接中有http://开头的就算是合法的吧.

payload

javascript:alert(/xss/)//http://

第十关

这一关有点坑,我看源码之后才知道还隐藏了三个框,填上一些参数之后发现第三个框可以是有效的输入.

payload

第十一关

这一题不看源码真没办法.这一关在上一关隐藏的基础上多隐藏了一个t_ref.先是像上一关那样闭合但是没有弹窗

看源码,这里的$str11来自referer头.然后将>和<替换成空变成$str33然后拼接到字符串中.

那么我们需要在refer头里面插入xss

payload:

放包,点击,弹框.

第十二关

这次的$str11来自HTTP_USER_AGENT头

payload

hel10" onclick=alert(/xss/) type="text

将UA头修改成payload,放包,点击,弹框

第十三关

这一关建立了一个cookie头.

把payload插到cookie里面

Cookie: user=call+me+maybe?" hel10" onclick=alert(/xss/) type="text

第十四关

这一关用到了exif xss,但是跳转的这个网站好像有问题

简单说一下exif xss的原理,exif可以记录数码照片的属性信息和拍摄数据。可使用鼠标右键进入属性页面查看部分信息。有些网站就会读取图片的属性信息,当读取到的是恶意的信息的时候就会触发payload.先知上面的图.

第十五关

直接拿先知上面的payload吧,自己并没有复现成功

这一关用了angularjs的ng-include,直接在包含的页面里用<script>触发不了,用了img标签。

遵循SOP,只好调用第一关代码。

需要单引号包裹,否则变成注释。

paload:

/level15.php?src='level1.php?name=test<img src=1 onerror=alert(1)>'

AngularJS ng-include 指令

ng-include 指令用于包含外部的 HTML 文件。

包含的内容将作为指定元素的子节点。

ng-include 属性的值可以是一个表达式,返回一个文件名。

参考链接

https://xz.aliyun.com/t/1206?accounttraceid=74ab404d-2a01-4a1c-8b87-36ad367dbe11#toc-13

https://lanvnal.com/2019/02/01/xss-chuang-guan-you-xi-jie-ti-ji-lu/#toc-heading-15

XSS闯关挑战(1-15)的更多相关文章

  1. XSS闯关游戏准备阶段及XSS构造方法

    请下载好XSS闯关文件后,解压后放在服务器的对应文件夹即可 在该闯关中,会在网页提示一个payload数值 payload,翻译过来是有效载荷 通常在传输数据时,为了使数据传输更可靠,要把原始数据分批 ...

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

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

  3. XSS Challenges闯关笔记

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

  4. 某xss挑战赛闯关笔记

    0x0 前言 在sec-news发现先知上师傅monika发了一个xss挑战赛的闯关wp([巨人肩膀上的矮子]XSS挑战之旅---游戏通关攻略(更新至18关)https://xianzhi.aliyu ...

  5. 《JavaScript闯关记》视频版硬广

    <JavaScript闯关记>视频版硬广 stone 在菜航工作时,兼任内部培训讲师,主要负责 JavaScript 基础培训,2016年整理的<JavaScript闯关记>课 ...

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

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

  7. Pythonchallenge一起来闯关(二)

    前情提要:Pythonchallenge一起来闯关(一) 这一篇来闯关10-15.感觉这几关比先前的难了不少,有的题目完全没思路. 10. 页面源码中的链接点击后有a = [1, 11, 21, 12 ...

  8. 《JavaScript 闯关记》

    为何写作此课程 stone 主要负责基于 Web 的企业内部管理系统的开发,虽然能够熟练地使用 JavaScript,但随着对 JavaScript 的理解越来越深,才发现自己尚未掌握其精髓. 201 ...

  9. python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点

    python 闯关之路四(下)(并发编程与数据库编程)   并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型   操作系统工作原理介绍.线程.进程演化史.特点.区别 ...

随机推荐

  1. Unity 异步加载 进度条

    当我们进行游戏开发时,时常会进行场景切换,如果下个场景较大,切换时就会出现卡顿现象,甚至看起来像是"死机",非常影响用户体验,我们这时就可以运用异步加载,在界面上显示加载的进度条以 ...

  2. kubernetes之副本控制器(RC/RS)

    1.了解ReplicationController ReplicationController是一种kubernetes资源,可确保它的pod始终保持运行状态. 如果pod因任何原因消失(例如节点从集 ...

  3. .net core 使用webservice

    开发环境在vs2017,2015 暂时没有试过 1.在扩展更新中添加Microsoft WCF Web Service Reference Provider 2.在core项目中添加链接的服务 3.键 ...

  4. Unity3D学习笔记2——绘制一个带纹理的面

    目录 1. 概述 2. 详论 2.1. 网格(Mesh) 2.1.1. 顶点 2.1.2. 顶点索引 2.2. 材质(Material) 2.2.1. 创建材质 2.2.2. 使用材质 2.3. 光照 ...

  5. Spring Cloud 专题之四:Zuul网关

    书接上回: SpringCloud专题之一:Eureka Spring Cloud专题之二:OpenFeign Spring Cloud专题之三:Hystrix 经过前面三章对Spring Cloud ...

  6. Centos7搭建k8s集群

    一.部署环境 操作系统:CentOS Linux release 7.6.1810 (Core) 安装软件: docker:18.06.3-ce kubernetes:v1.15.4 二.部署架构: ...

  7. JVM,我就不信学不会你了

    JVM 对 Java 有多重要,对程序员面试有多重要,这些不用多说. 如果你还没意识到学 JVM 的必要性,或者不知道怎么学 JVM,那么看完这篇文章,你就能知道答案了. 曾经的我很不屑于学 JVM, ...

  8. idea中IDEA优化配置,提高启动和运行速度

    IDEA优化配置,提高启动和运行速度 IDEA默认启动配置主要考虑低配置用户,参数不高,导致 启动慢,然后运行也不流畅,这里我们需要优化下启动和运行配置: 找到idea安装的bin目录: D:\ide ...

  9. hfctfwp(re)

    1.easy python revering 看字节码操作,昂哥直接看直接写exp太强了,我就直接手动写了个源码出来(昂哥永远滴神) arr0=[249,91,149,113,16,91,53,41, ...

  10. SpringBoot配置Https

    HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认 ...