当前位置: 首页 > news >正文

2、xss-labs之level2

1、打开页面

2、传入xss代码

payload:<script>alert(xss)</script>,发现返回<script>alert(xss)</script>

3、分析原因

打开f12,没什么发现

看后端源码,在这form表单通过get获取keyword的值赋给$str,然后$str通过htmlspecialchars()过滤

htmlspecialchars() 是 PHP 中的一个函数,用于将特殊字符转换为 HTML 实体。这通常用于防止跨站脚本攻击(XSS),并确保特殊字符(如 <>&"' 等)在 HTML 上下文中被正确解析。

$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>

4、构建payload

所以我们通过前端可以看到:<input name=keyword value="<script>alert(xss)</script>">

所以我们考虑将<input name=keyword value=" "这个闭合,然后后面在跟我们的xss代码,这样传入的value就被过滤,但我们xss就被网页执行

所有构建payload:"> <script>alert("xss")</script>

然后变成:<input name=keyword value=" "> <script>alert("xss")</script>

5、疑惑反思

做题遇到的疑惑:

一开始我在想传入<script>alert("xss")</script>不是被htmlspecialchars 函数转义成&lt;script&gt;alert(&quot;ls /&quot;)&lt;/script&gt;了么,然后又通过代码:echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"  输出前端,为什么最后页面显示是“没有找到和 <script>alert("ls /")</script> 相关的结果。而不是”没有找到和&lt;script&gt;alert(&quot;ls /&quot;)&lt;/script&gt;相关的结果.“

通过查阅资料,就懂了

6、网页渲染过程

原理:

1、你参数传进去,PHP 后端中使用 htmlspecialchars 对输入进行转义

2、然后开始执行PHP的后端代码,你的参数就执行不了,传入的payload也执行不了

3、PHP后端代码执行完后,浏览器会将转义后的字符还原为原始字符进行显示

4、因此,页面最终显示的是用户原始输入的内容,而不是转义后的字符

所以我们要通过闭合来绕开后端的过滤,来执行我的payload

反思:开发与安全缺一不可

总结:

1、xss的payload的构建可以f12查看前端代码

2、理解构建xss的闭合过程,其实就是绕过过滤

http://www.lryc.cn/news/353091.html

相关文章:

  • 人才测评的应用:人才选拔,岗位晋升,面试招聘测评
  • 前端面试题日常练-day33 【面试题】
  • 非整数倍数据位宽转换24to128
  • html通过数据改变,图片跟着改变
  • centos7.9 安装SqlServer
  • Idea中flume的Interceptor的编写教程
  • java单元测试:JUnit测试运行器
  • 网络模型—BIO、NIO、IO多路复用、信号驱动IO、异步IO
  • 智能语义识别电影机器人的rasa实现
  • C# 实现腾讯云 IM 常用 REST API 之会话管理
  • MySQL之Schema与数据类型优化(三)
  • 大语言模型发展历史
  • Nginx - 安全基线配置与操作指南
  • 简述js的事件循环以及宏任务和微任务
  • [力扣题解] 797. 所有可能的路径
  • 【QT八股文】系列之篇章3 | QT的多线程以及QThread与QObject
  • 基于python flask的web服务
  • HTTP 响应分割漏洞
  • Algoriddim djay Pro Ai for Mac:AI引领,混音新篇章
  • 常见算法(3)
  • 集中抄表电表是什么?
  • 第八届能源、环境与材料科学国际学术会议(EEMS 2024)
  • 09.自注意力机制
  • 时政|杂粮产业
  • docker 安装 私有云盘 nextcloud
  • 第十一届蓝桥杯物联网试题(国赛)
  • 算法金 | Dask,一个超强的 python 库
  • Java 说唱歌手
  • 面试-软件工程与设计模式相关,Spring简介
  • IDEA中一些常见操作【持续更新】