xss-labs靶场训练(1~4关)

2023-10-31

第一关

前端F12查看代码:
在这里插入图片描述
这里只能看到参数test输出在h2里面,可以尝试直接构造payload:

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


成功!

后台关键源码:

<?php 
ini_set("display_errors", 0);
$str = $_GET["name"];
echo "<h2 align=center>欢迎用户".$str."</h2>";
?>

这里是以GET方法获取参数name,并直接输出,没有任何过滤或转义。

第二关

尝试上一关的方法:
在这里插入图片描述
Payload没有执行成功,而且被原封不动的输出来了,估计是被实体转义了。
尝试一下构造闭合input的payload:

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

成功
在这里插入图片描述
后台关键源码:

<?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>';
?>

这里面的输出用了htmlspecialchars()函数做实体转义,payload的一些字符被转换为HTML实体了,所以不能作为标签运行。
htmlspecialchars()函数具体参考如下:
在这里插入图片描述
这里的字符转换只是作为HTML输出,浏览器输出还是和原来的字符一样,例如:
在这里插入图片描述

第三关

先试一下第二关的方法:
在这里插入图片描述
这里可以看到用来构造闭合的双引号被转义了。

后台关键源码:

<?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>";
?>

和第二关的源代码做一下对比,发现这里不仅输出用了htmlspecialchars()函数做实体转义,输入也用了该函数。所以只能用来尝试

因为&、<、>还有双引号都被转换了,可以尝试构造不包含这些字符的payload
方法一:构造onclick事件(点击一下输入框,就可以触发onclick事件,响应onclick中的javascript代码)

Payload='onclick=alert(/xss/)//

在这里插入图片描述
在这里插入图片描述
方法二:构造onmouseover事件(鼠标移动到输入框,就可以触发onmouseover事件,响应onmouseover中的javascript代码)

Payload='onmouseover=alert(/xss/)//

在这里插入图片描述
在这里插入图片描述

第四关

用上一关的方法:
在这里插入图片描述
发现单引号闭合不了,那就用双引号试试:
在这里插入图片描述
成功闭合,鼠标移动到输入框,成功!
在这里插入图片描述

后台关键源码:

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

此处用了str_replace()函数将用户输入个keyword中的字符 > < 替换为空,所以不能用<>的payload。

总结

碰到字符被转义的情况,尝试用其他没有被转义的字符构造payload。

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

xss-labs靶场训练(1~4关) 的相关文章

  • 您能否关闭 IE7 中的 XSS 保护,以便 Intranet 应用程序可以知道异地 IFRAME 的内容?

    TL DR 我是否可以在受控环境中关闭 Internet Explorer 中的 XSS 保护 以便可以操作 IFRAMES 内的 DOM 我正在接待区为公共计算机创建一个信息亭 让我们的用户可以浏览我们的网站以及其他一些地方政府相关网站
  • CORS和XSS有什么联系吗?

    维基百科页面中提到了跨站脚本 XSS CORS http en wikipedia org wiki Cross origin resource sharing 但我不明白它们有什么关系 CORS 和 XSS 之间有什么联系 维基百科文章中
  • 如何在不使用脚本标签的情况下注入javascript? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我无法使用脚本标签 当我这样做时它会发出警报 这仅对测试有用 它过滤掉它们 script gt SCRIPT gt SCRIPT sCriP
  • 你们有 SQL 注入测试“Ammo”吗?

    当阅读有关 SQL 注入和 XSS 的内容时 我想知道你们是否有一个字符串可以用来识别这些漏洞和其他漏洞 可以放入网站数据库中的字符串 用于黑盒检查该字段是否安全 将对一些内部工具进行大型测试 粗略的例子 想知道你们是否知道更多 a 或 1
  • 跨站脚本攻击和同源策略

    我熟悉持久性和非持久性XSS http en wikipedia org wiki Cross site scripting 我也知道同源政策 http en wikipedia org wiki Same origin policy防止
  • V-html只用于文本,安全吗?

    我现在在关于原始 HTML 的 Vue 文档 https v2 vuejs org v2 guide syntax html Raw HTML说明我们可以使用v html渲染一些内部 html 我承认这是合法且最简单的技巧 但由于我很担心
  • 在Golang中实现XSS防护

    我正在使用 Golang 构建 API Rest 我有一个包含很多字段 超过 100 个 的结构 因此我使用以下命令将来自客户端的值分配给该结构gorilla schema效果很好 现在 我想避免用户在任何字符串字段中插入 Javascri
  • 使用 Python 清理用户输入

    针对基于 Python 的 Web 应用程序清理用户输入的最佳方法是什么 是否有一个函数可以删除 HTML 字符和任何其他必要的字符组合以防止XSS http en wikipedia org wiki Cross site scripti
  • javascript html5 使用来自不同域的图像绘制图像

    所以我有以下代码 var element document getElementById myCanvas var width element width var height element height var context elem
  • ValidateRequest 错误还是 SQL Server Bug?

    我正在读这个article http software security sans org blog 2011 07 22 bypassing validaterequest in asp net 它说 该字符用值 uff1c 表示 如果将
  • 将 html 内容从 iframe 复制到 div ( ajax )?

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

    我有一个页面调用另一个页面 在另一台服务器上 我希望该页面从父页面读取标题 这可能吗 或者这是否存在一些安全问题 您无法像这样跨服务器进行通信
  • 什么是 http 标头“X-XSS-Protection”?

    所以我现在一直在 telnet 中玩弄 HTTP 即只需输入telnet google com 80并放入具有不同标头的随机 GET 和 POST 等 但我遇到了 google com 在其标头中传输的一些我不知道的内容 我一直在翻阅htt
  • img src 属性中使用 javascript 进行 XSS 攻击

    一些较旧的浏览器容易受到 XSS 攻击 img src 当前版本的 IE FF Chrome 不是 我很好奇是否有浏览器容易受到类似的攻击 img src somefile js or 或其他类似的地方 somefile js 包含一些恶意
  • 将用户输入显示为输入值而不进行清理是否安全?

    假设我们有一个表单 用户可以在其中输入各种信息 我们验证了信息 发现有些问题 字段丢失 电子邮件无效等等 当再次向用户显示表单时 我当然不希望他必须再次输入所有内容 因此我想填充输入字段 如果不进行消毒 这样做安全吗 如果没有 首先应该进行
  • 为什么 XSS 注入需要对 & 进行转义

    OWASP 建议转义以防止 XSS 注入的五个字符是 lt gt 其中 我无法理解为什么 符号 应该被转义以及如何将其用作注入脚本的向量 有人可以举个例子 所有其他四个字符都被转义 但与号没有转义 所以会有 XSS 注入漏洞 我已经检查了另
  • html() 与 innerHTML jquery/javascript 和 XSS 攻击

    我正在对我自己的代码测试 xss 攻击 下面的示例是一个简单的框 用户可以在其中输入他想要的任何内容 按 测试 后按钮 JS 会将输入字符串显示为两个 div 这是我为了更好地解释我的问题而制作的示例
  • 使用 CSP 防止自动点击链接 XSS 攻击

    当将 CSP 用于稍微不同的目的 沙箱 时 我意识到一个非常简单的自动点击链接似乎甚至可以绕过相对严格的 CSP 我所描述的内容如下 内容安全政策 default src none script src unsafe inline 还有身体
  • PHP 中的 htmlspecialchars() 或 Ruby on Rails 中的 h() 是否足以防御所有 XSS(跨站脚本)攻击?

    Is htmlspcialchars user data 在 PHP 中或h user data Ruby on Rails 是否足以防御所有 XSS 跨站脚本 攻击 使用的编码或任何其他可能的考虑因素怎么样 Both htmlspecia
  • 遭受xss攻击后如何恢复站点?

    最近我正在研究XSS攻击以及它们对网站的破坏性有多大 让我惊讶的是 网络 even SO 充满了关于如何防止xss攻击但没有相关资源说明如何在网站受到 xss 攻击后恢复网站 我遇到过一些事情 比如 将备份网站代码上传回服务器 下载整个网站

随机推荐

  • [DCDC](DC-DC 电感)纹波率r是难题?来我这里来学习

    大家可能都有深刻体会 电子知识博大精深 无穷无尽 每个简单的知识点背后 都蕴含着无穷无尽的宝藏 古人云 学无止境 我现在就是这种感觉 学的越多 也就更加战战兢兢 如履薄冰 但我始终相信 虽然知识是无限的 但人的能力也是无限的 只要你肯 明天
  • kubeasz一键部署harbor、containerd运行时、高可用k8s(1.26.x)集群-Day 02

    1 生产环境部署架构 1 多master节点 实现master节点的高可用和高性能 2 单独的etcd分布式集群 生产使用SSD盘 高可用持久化k8s资源对象数据 并实现高可用 3 多node节点运行业务pod node节点可以是不同硬件规
  • 升级Linux下的sudo

    1 sudo 命令情景分析 介绍 Linux 下使用 sudo 命令 可以让普通用户也能执行一些或者全部的 root 命令 本文就对我们常用到 sudo 操作情景进行简单分析 通过一些例子来了解 sudo 命令相关的技巧 情景一 用户无权限
  • git常用命令记录

    多人合作开发代码提交流程 暂存新增的代码 快捷使用 git stash git stash save record 更新代码 快捷使用 git pull git pull origin master 释放刚刚暂存的代码 git stash
  • PMP考试必备-概念区分篇(二)

    一 组织过程资产和经验教训的区别 组织过程资产包括 模版 数据库 经验教训 模版和数据库是相对客观的资料 经验教训都是主观总结出来的东西 二 经验教训和问题的区别 1 经验教训必须和选择有关 你的选择让你感到得意或后悔的事情 叫经验教训 2
  • 【全网最强】2022年最新,一文带你学习并掌握C/C++基础知识,技巧,举一反三,C/C++语法知识与实用技巧。题解两种代码(C语言和C++).覆盖知识面广.代码有注释让你理解更快

    必须读的 前言 通俗易懂 小白来了都说好 包括C C 基本知识 精选136道题 C C 语法知识与实用技巧 题解两种代码 C语言和C 覆盖知识面广 1 变量 表达式与顺序语句 2 scanf printf语法及判断语句 3 循环语句 4 数
  • c言语库函数qsort的最详细用法

    qsort递增排序 qsort函数参数 void qsort void base 要比较数组的起始地址 size t num 要比较数组的大小 size t width 一个数组元素的大小 int comple const void ele
  • 蓝桥杯单片机数码管技巧

    数码管使用技巧 1如何运用数码管配合按键切换界面显示切换界面 方法 定义一个变量来显示显示界面 通过按键来改变变量的数值 从而切换显示界面 include
  • VS+QT没有自动生成.ui对应的ui_XXXX.h头文件问题

    1 在qt安装包下 gt qbase gt bin 目录下有对应的uic exe用来生成 ui对应的ui XXXX h头文件 所以 cmd进入bin目录 运行uic XXXX ui ui XXXX h就可以生成 也可以添加路径进行指定 如
  • EOS 数据签名与公匙验证代码用例

    本文编写了一个小例子诠释了EOS是如何对数据签名与校验的 通过本文可以理解了签名的重要性和数据的不可篡改性 系统 ubuntu 版本为EOS1 1 1 注 因为本文的程序是把EOS里面的钱包和fc工具的代码全部提取出来编译的 这个过程相对复
  • Redis简单入门

    一提起数据库 大多数人可能想到的主要是Oracle MySQL以及Microsoft SQL Server这三大巨头 但除了这三巨头外 很多新兴的数据库也慢慢进入开发者的眼帘 比如最近越来越火的搜索引擎式数据库Elasticsearch D
  • 202303读书笔记

    202302读书笔记 长安的荔枝 只要肯努力 办法总比困难多 长安的荔枝 这本书真是酣畅淋漓啊 读起来一气呵成 以讲故事的口吻叙述 上林署九品小官员 李善德 兢兢业业工作多年 终于借贷买了房 让妻子儿女有一个安身之所 一面沉浸在喜悦里 一面
  • 顺序表----数组结构c++

    include
  • js数组sort()方法按指定顺序排序

    数组的sort 方法可以把数组排序 不传参数的默认按字典排序 sort 方法还接受一个回调函数 按回调函数内代码逻辑排序 该函数要比较两个值 然后返回一个用于说明这两个值的相对顺序的数字 比较函数应该具有两个参数 a 和 b 若 a 小于
  • Centos7 rsync 实现文件同步

    rsync remote sync 是unix及类unix平台下的数据镜像备份软件 它不像FTP那样需要全备份 rsync可以根据数据的变化进行差异备份 从而减少数据流量 提高工作效率 序号 类型 ip 1 server 10 200 13
  • Unity LayerMask 的切换功能的实现

    组里需求 需要做一个按钮用来开启和关闭不同层的渲染 这是一个简单的问题 但是实现起来稍微繁琐 实现一个layermask的切换状态 你可能会做 你需要读取当前的某个层的状态 将该层的状态设置为相反的状态 因为layermask设计为二进制保
  • 记录好项目D13

    记录好项目 你好呀 这里是我专门记录一下从某些地方收集起来的项目 对项目修改 进行添砖加瓦 变成自己的闪亮项目 修修补补也可以成为毕设哦 本次的项目是个宠物商城系统 一 系统介绍 未注册用户 非注册用户 即游客身份 进入宠物官网首页 可以浏
  • redis-cli

    文章目录 集群中手动切换节点 xac xed 问题 查看集群节点 集群中手动切换节点 connect host port xac xed 问题 首先出现这个现象是因为序列化器没设置好 直接 get xac xed x00 x05t x00
  • Python os.walk 遍历指定深度的方法

    用os walk可以遍历多层目录 但是有时需要只遍历指定层数目录 比如 要获取某个目录的1级和2级子目录 可以用下面的方法 coding UTF 8 Python 3 6 import os def get sub dirs root pa
  • xss-labs靶场训练(1~4关)

    第一关 前端F12查看代码 这里只能看到参数test输出在h2里面 可以尝试直接构造payload 成功 后台关键源码 这里是以GET方法获取参数name 并直接输出 没有任何过滤或转义 第二关 尝试上一关的方法 Payload没有执行成功