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

Less-2(闭合)

 

我们使用第一关的测试方法尝试一下,打咩

直接看源码,看到,尝试一下闭合

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

 查看源码

可以看到在<h2> </h2>标签之中的恶意代码被编码了。

其中<和>都被编码成了html字符实体。

猜测在服务器端用htmlspecialchars()函数对keyword参数的值进行了处理。

接着往下看可以看到插入到value参数值中的恶意代码并没有被编码而是直接原样返回

但是问题是这里的js代码在标签属性值中,浏览器是无法执行的。

既然上面的恶意代码被编码了,那么只能从属性值中的恶意代码处进行突破了。

要想浏览器执行这里的弹窗代码,只需要将属性的引号和标签先闭合就可以了。

将keyword的参数值重新赋值"><script>alert('xss')</script>//

 

左边的">去闭合原先的"
右边的//去注释原先的">

可以看到浏览器成功弹窗了,说明我们提交的恶意代码被浏览器执行了。

去服务器端看看level2.php代码

箭头1处将get方式传递到服务器端的keyword参数的值赋给str变量。

在箭头2处是用htmlspecialchars()函数对变量str进行处理之后显示到网页上。

在箭头3处却是直接将变量值插入到了<input>标签的value属性值中

因为这里并没有对敏感字符进行编码和过滤,所以可以通过构造实现XSS攻击。

 

 

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

相关文章:

  • mysql介绍
  • 【ROS学习】ROS中 use_sim_time 参数的含义与作用
  • python-查找元素3(赛氪OJ)
  • 苹果 Safari 的隐私保护与广告追踪问题 :技术进展与挑战
  • pytest之fixture
  • Rancher
  • Wordpress建站问题记录
  • JavaFx中通过线程池运行或者停止多个周期性任务
  • 使用RabbitMQ实现异步支付状态通知
  • [最短路dijkstra],启动!!!
  • Java企业微信服务商代开发获取AccessToken示例
  • How does age change how you learn?(2)年龄如何影响学习能力?(二)
  • 可验证随机函数 vrf 概述
  • 鸿蒙双向绑定组件:TextArea、TextInput、Search、Checkbox,文本输入组件,图案解锁组件PatternLock
  • JS 算法 - 计数器
  • JavaScript基础——JavaScript运算符
  • E23.【C语言】练习:不创建第三个变量实现两个整数的交换
  • 如何搭建一个web系统?
  • 三十种未授权访问漏洞复现 合集( 二 )
  • C语言学习笔记[29]:函数①
  • 使用Springboot + netty 打造聊天服务之Nacos集群问题记录
  • 全网唯一!R语言顶刊配色包TheBestColors
  • 链表题型思路错误总结
  • 算法学习day28
  • C语言基础题:迷宫寻路(C语言版)
  • 力扣-1两数之和2两数相加-2024/8/3
  • 简站WordPress主题 专业的WordPress建站服务商
  • Final Shell for Mac 虚拟机连接工具【简单易操作,轻松上手】【开发所需连接工具】
  • Oracle JDK:版本、支持与许可
  • 大模型学习笔记 - LLM 之RLHF人类对齐的简单总结