XSS漏洞靶场---(复现)

XSS漏洞靶场—(复现)

反射型 XSS 的特点是攻击者诱导用户点击包含恶意脚本的 URL,服务器接收到请求后将恶意脚本反射回响应页面,浏览器执行该脚本从而造成攻击,恶意脚本不会在服务器端存储。

Level 1(反射型XSS)

image-20250317193251342

image-20250317193110501

此漏洞主要源于代码对用户输入未进行充分的过滤和转义处理。在 PHP 代码里,通过 $_GET["name"] 接收用户从 URL 传递过来的 name 参数,接着直接将该参数输出到 HTML 页面中。若攻击者在 name 参数里注入恶意的 JavaScript 代码,当页面加载时,这些恶意代码就会被浏览器执行,进而达成 XSS 攻击。

通过分析源码,可在name参数上尝试用简单的JS代码进行XSS攻击,看到下面代码执行成功

image-20250317192313770

攻击示例:

http://127.0.0.1/xss-labs-master/level1.php?name=<script> alert("攻击成功")</script>

修复建议:

为了防止 XSS 攻击,需要对用户输入进行过滤和转义处理。在 PHP 中,可以使用 htmlspecialchars 函数将特殊字符转换为 HTML 实体,从而避免恶意代码被执行

解释

  • htmlspecialchars($str, ENT_QUOTES, 'UTF-8'):该函数把字符串中的特殊字符(如 <>"' 等)转换为 HTML 实体(如 <>"' 等),如此一来,即使攻击者注入了恶意的 JavaScript 代码,这些代码也会以文本形式显示,而不会被浏览器执行。
<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()  
{     confirm("完成的不错!");window.location.href="level2.php?keyword=test"; 
}
</script>
<title>欢迎来到level1</title>
</head>
<body>
<h1 align=center>欢迎来到level1</h1>
<?php 
ini_set("display_errors", 0);
$str = $_GET["name"];
// 对用户输入进行转义处理
$escapedStr = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
echo "<h2 align=center>欢迎用户".$escapedStr."</h2>";
?>
<center><img src=level1.png></center>
<?php 
// 对用于计算长度的字符串也可以考虑进行必要的验证
$lengthStr = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
echo "<h3 align=center>payload的长度:".strlen($lengthStr)."</h3>";
?>
</body>
</html>

Level 2(反射型XSS)

image-20250317193401601

image-20250317193759284

虽然代码在部分输出时使用了 htmlspecialchars 函数对用户输入进行了处理,但在表单输入框的 value 属性赋值时,没有对用户输入进行足够的转义处理。攻击者可以通过构造特殊的输入,绕过这种部分防护,使得恶意的 JavaScript 代码在页面中被执行,从而实现 XSS 攻击。

在上述代码里,$str 是从 $_GET["keyword"] 获取的用户输入,在 <input> 标签的 value 属性中直接使用了 $str,而没有进行合适的转义。

在h2标签之中的恶意代码被htmlspecialchars编码了。其中<、>都被编码成了html字符实体,恶意代码被编码了,只能从属性值中的恶意代码处进行突破了,,只需要将属性的引号和标签先闭合就可以了。

攻击示例:

http://127.0.0.1/xss-labs-master/level2.php?keyword="><script>alert('XSS 攻击成功!')</script><"

image-20250317193900303

修复建议

为了防止这种 XSS 攻击,需要对表单输入框 value 属性中的用户输入也进行转义处理。可以继续使用 htmlspecialchars 函数。

<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()  
{     confirm("完成的不错!");window.location.href="level3.php?writing=wait"; 
}
</script>
<title>欢迎来到level2</title>
</head>
<body>
<h1 align=center>欢迎来到level2</h1>
<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
// 对输出到 h2 标签中的内容进行转义
$escapedStrH2 = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
// 对输出到 input 标签 value 属性中的内容进行转义
$escapedStrInput = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
echo "<h2 align=center>没有找到和".$escapedStrH2."相关的结果.</h2>".'<center>
<form action=level2.php method=GET>
<input name=keyword  value="'.$escapedStrInput.'">
<input type=submit name=submit value="搜索"/>
</form>
</center>';
?>
<center><img src=level2.png></center>
<?php 
// 对用于计算长度的字符串也进行必要的验证
$lengthStr = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
echo "<h3 align=center>payload的长度:".strlen($lengthStr)."</h3>";
?>
</body>
</html>

Level 3(反射型XSS)

image-20250317194935969

尝试Level 2 的攻击方法后未能成功

image-20250317195153096

image-20250317195340074

代码中对 $str 进行了 htmlspecialchars 处理,在大部分情况下能防止常见的 XSS 攻击。不过,当攻击者利用 HTML 事件属性时,仍可能构造出能执行恶意脚本的情况。在 HTML 标签的属性中,如果输入包含事件处理函数(如 onclickonload 等),即使使用了 htmlspecialchars 转义了引号,攻击者依然可以通过构造合适的输入绕过部分防护。

image-20250317195534631

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

虽然对 value 属性的值进行了转义,但如果攻击者输入的是包含事件处理函数的内容,可能会引发 XSS 攻击

攻击示例:

http://127.0.0.1/xss-labs-master/level3.php?writing='onmouseover='alert("XSS")

'οnmοuseοver='alert(“XSS”)

onmouseover

当用户将鼠标悬停在输入框上时,onmouseover 事件触发,恶意脚本 alert("XSS") 就会被执行

image-20250317201539168

修复建议:

为了更安全地处理用户输入,除了使用 htmlspecialchars 对普通字符进行转义,还需要对可能的 HTML 事件属性进行过滤和验证,或者采用更严格的白名单机制来允许的字符和属性。另外,在现代 Web 开发中,可以考虑使用 htmlentities 函数来进行更全面的转义。

<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()  
{     confirm("完成的不错!");window.location.href="level4.php?keyword=try harder!"; 
}
</script>
<title>欢迎来到level3</title>
</head>
<body>
<h1 align=center>欢迎来到level3</h1>
<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
// 更全面的转义处理
$escapedStr = htmlentities($str, ENT_QUOTES, 'UTF-8');
echo "<h2 align=center>没有找到和".$escapedStr."相关的结果.</h2>"."<center>
<form action=level3.php method=GET>
<input name=keyword  value='".$escapedStr."'>	
<input type=submit name=submit value=搜索 />
</form>
</center>";
?>
<center><img src=level3.png></center>
<?php 
// 对用于计算长度的字符串也进行转义
$lengthStr = htmlentities($str, ENT_QUOTES, 'UTF-8');
echo "<h3 align=center>payload的长度:".strlen($lengthStr)."</h3>";
?>
</body>
</html>

Level 4 (反射型XSS)

image-20250317202516270

image-20250317202234224

漏洞分析

  1. 过滤不彻底

代码尝试通过 str_replace 函数去除输入中的 <> 字符,以防止用户注入 HTML 标签。然而,攻击者可以利用 HTML 实体编码绕过这种过滤。HTML 实体编码允许将特殊字符用特定的编码表示,例如 < 可以用 < 表示,> 可以用 > 表示。当页面输出时,浏览器会将这些实体编码解析为对应的字符。

  1. 部分输出转义问题

虽然在 <h2> 标签中使用了 htmlspecialchars 对输出进行转义,但在 <input> 标签的 value 属性中,使用的是经过 str_replace 处理后的 $str3,没有再次进行全面的转义,这就给攻击者留下了可乘之机。

攻击示例:

http://127.0.0.1/xss - labs - master/level4.php?keyword="onfocus=javascript:alert('xss') "

当用户点击该 URL 时,浏览器会向服务器发送请求,服务器端代码通过 $_GET["keyword"] 获取到 keyword 参数的值为 "onfocus=javascript:alert('xss') "

原代码中处理逻辑:

$str = $_GET["keyword"];
$str2 = str_replace(">", "", $str);
$str3 = str_replace("<", "", $str2);

这里代码只是简单地去除了 <> 字符,而攻击者输入的内容中并没有直接使用 <> 来包裹脚本,所以这种过滤方式对该恶意输入无效,$str3 仍然是 "onfocus=javascript:alert('xss') "

修复建议:

为了防止此类 XSS 攻击,需要对用户输入进行更严格的过滤和转义处理。可以使用 htmlspecialcharshtmlentities 函数对输出进行全面转义,确保特殊字符被正确处理

<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()  
{     confirm("完成的不错!");window.location.href="level5.php?keyword=find a way out!"; 
}
</script>
<title>欢迎来到level4</title>
</head>
<body>
<h1 align=center>欢迎来到level4</h1>
<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
// 对输入进行全面的 HTML 实体编码转义
$escapedStr = htmlentities($str, ENT_QUOTES, 'UTF-8');
echo "<h2 align=center>没有找到和".$escapedStr."相关的结果.</h2>".'<center>
<form action=level4.php method=GET>
<input name=keyword  value="'.$escapedStr.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
?>
<center><img src=level4.png></center>
<?php 
// 对用于计算长度的字符串也进行转义
$lengthStr = htmlentities($str, ENT_QUOTES, 'UTF-8');
echo "<h3 align=center>payload的长度:".strlen($lengthStr)."</h3>";
?>
</body>
</html>

Level 5(反射型XSS)

image-20250317210244626

image-20250317210338381

在这段代码中,$str 变量接收用户输入的 keyword 参数,经过一系列处理后存储在 $str3 中,而 $str3 被直接嵌入到 HTML 表单的 input 标签的 value 属性中,没有进行足够的 HTML 实体转义,这就为 XSS 攻击提供了可能。

攻击原理:

攻击者通过构造恶意的 keyword 参数,将包含 JavaScript 代码的字符串注入到页面中。当页面加载时,浏览器会执行注入的 JavaScript 代码,从而实现攻击目的。例如,使用如下 URL:

http://127.0.0.1/xss-labs-master/level5.php?keyword="><a href=javascript:alert("攻击成功")>"点这"</a>

在这个 URL 中,keyword 参数的值为 "><a href=javascript:alert("攻击成功")>"点这"</a>。当页面加载时,这个恶意代码会被嵌入到 input 标签的 value 属性中,导致浏览器执行 alert("攻击成功") 代码,显示一个提示框,表明攻击成功。

image-20250317211641196

代码中存在问题的部分:

echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level5.php method=GET>
<input name=keyword  value="'.$str3.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';

在上述代码中,$str3 直接被嵌入到 input 标签的 value 属性中,没有进行足够的 HTML 实体转义,使得攻击者可以通过构造恶意的 keyword 参数注入 JavaScript 代码。

修复建议:

为了防止 XSS 攻击,需要对用户输入的数据进行充分的 HTML 实体转义。可以使用 htmlspecialchars 函数对 $str3 进行转义,修改后的代码如下:

echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level5.php method=GET>
<input name=keyword  value="'.htmlspecialchars($str3, ENT_QUOTES, 'UTF-8').'">
<input type=submit name=submit value=搜索 />
</form>
</center>';

在这个修改后的代码中,htmlspecialchars 函数将 $str3 中的特殊字符(如 <>" 等)转换为 HTML 实体,从而避免了 JavaScript 代码的注入。ENT_QUOTES 参数表示同时转换单引号和双引号,'UTF-8' 表示使用 UTF-8 编码。

Level 6(反射型)

image-20250317212042882

image-20250317212103797

代码尝试对一些常见的用于 XSS 攻击的关键词进行替换,例如将 <script 替换为 <scr_ipt,将 on 替换为 o_n 等。但这种过滤方式存在严重缺陷:

  • 大小写绕过:过滤操作是基于小写关键词进行的,攻击者可以使用大小写混合的方式绕过过滤。例如,在攻击 payload "><a hRef=javascript:alert(1)>test</a> 中,使用 hRef 而不是 href,就绕过了对 href 的替换。
  • 不完整过滤:只对部分关键词进行了替换,攻击者可以利用其他未被过滤的 HTML 属性和事件来注入恶意脚本。
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level6.php method=GET>
<input name=keyword  value="'.$str6.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';

这是漏洞的关键所在。虽然对 $str 进行了 htmlspecialchars 处理,但在将 $str6 嵌入到 input 标签的 value 属性时,没有对其进行充分的 HTML 实体转义。这意味着攻击者构造的恶意代码会被直接插入到 HTML 页面中。

攻击示例:

http://127.0.0.1/xss-labs-master/level6.php?keyword="><a hRef=javascript:alert(1)>test</a>

当用户访问包含恶意 keyword 参数的 URL 时,浏览器会解析并执行嵌入在页面中的恶意脚本。例如,对于 "><a hRef=javascript:alert(1)>test</a> 这个 payload,当页面加载后,input 标签的 value 属性会被提前闭合,后面插入的 <a> 标签会正常显示。当用户点击这个链接时,浏览器会执行 javascript:alert(1) 代码,弹出一个警告框,表明攻击成功。

image-20250317212810046

Level 7(反射型)

image-20250317213103716

image-20250317213134017

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

代码尝试对一些常见的用于 XSS 攻击的关键词进行过滤,将它们替换为空字符串。但这种过滤方式存在明显缺陷:

  • 过滤不全面:只对部分关键词进行了过滤,攻击者可以使用其他未被过滤的 HTML 属性和事件来注入恶意脚本。
  • 可绕过过滤:攻击者可以通过一些技巧绕过这些过滤,例如使用大小写混合、重复关键字等方式。比如构造 javascscriptript 绕过对 script 的过滤,当过滤操作移除 script 后,仍能形成有效的 javascript
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>';

这是漏洞的关键所在。在将处理后的 $str6 嵌入到 input 标签的 value 属性时,没有对其进行充分的 HTML 实体转义。这意味着攻击者构造的恶意代码会被直接插入到 HTML 页面中,当浏览器解析该页面时,就会执行恶意脚本。

攻击示例:

http://127.0.0.1/xss-labs-master/level7.php?keyword="><a hrhrefef=javascscriptript:alert(1)>test</a>

image-20250317213920685

攻击者构造的 keyword 参数为 "><a hrhrefef=javascscriptript:alert(1)>test</a>。通过重复关键字符(如 hrhrefefjavascscriptript),使得过滤函数在移除 hrefscript 后,依然能保留有效的可执行代码。经过过滤后,hrhrefef 变成 hrefjavascscriptript 变成 javascript,最终在页面中形成有效的 <a href="javascript:alert(1)">test</a> 代码,当用户点击链接时,就会触发 alert(1) 弹出警告框。

修复建议:
为了防止 XSS 攻击,需要对最终输出到页面的内容进行充分的 HTML 实体转义。可以使用 htmlspecialchars 函数对 $str6 进行处理,修改后的代码如下:

$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);
$escaped_str6 = htmlspecialchars($str6, ENT_QUOTES, 'UTF-8');
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level7.php method=GET>
<input name=keyword  value="'.$escaped_str6.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';

通过 htmlspecialchars 函数将特殊字符(如 <>"' 等)转换为 HTML 实体,这样即使攻击者构造了恶意的 keyword 参数,也无法在页面中执行恶意脚本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/73641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025/3.17 郭院安排会议与南京银行参访

目录 *郭院会议&#xff1a;服务外包*1.会遇到的问题以及解决方案2.考虑行业目前会碰到的瓶颈3.后端应该呈现处理图像的过程4.记得做报告、文档说明和视频等工作 *南京银行&#xff08;鑫合易家&#xff09;参访记录*1. 风险评分业务流程笔记![在这里插入图片描述](https://i-b…

Cloud Ace 宣布成为 Langfuse 亚太地区首个代理商,提供 LLM 全链路解决方案

Cloud Ace 宣布正式代理 Langfuse 产品&#xff0c;是 Langfuse 在亚太地区唯一的官方授权经销商&#xff0c;全面负责其商用许可证的销售、部署与技术支持服务。通过此次合作&#xff0c;Cloud Ace 将充分发挥 Langfuse 的先进技术能力与行业专业知识&#xff0c;为企业级客户…

Helm 的仓库管理与 Chart 搜索

在使用 Helm 管理 Kubernetes 应用的过程中&#xff0c;仓库管理与 Chart 搜索是两个核心功能。通过 Helm 仓库&#xff0c;用户可以方便地存储、分享和获取 Helm Chart&#xff0c;而搜索功能则帮助用户快速找到所需的 Chart。本文将详细介绍 Helm 仓库的概念、管理方法以及如…

Matlab 汽车振动多自由度非线性悬挂系统和参数研究

1、内容简介 略 Matlab 169-汽车振动多自由度非线性悬挂系统和参数研究 可以交流、咨询、答疑 2、内容说明 略 第二章 汽车模型建立 2.1 汽车悬架系统概述 2.1.1 悬架系统的结构和功能 2.1.2 悬架分类 2.2 四分之一车辆模型 对于车辆动力学&#xff0c;一般都是研究其悬…

免训练指标(Zero-Cost Proxies)

1. 什么是免训练指标&#xff08;Zero-Cost Proxies&#xff0c;ZC proxies&#xff09;&#xff1f; 免训练指标是一类 无需完整训练模型即可评估其性能的度量方法&#xff0c;主要用于提高 神经架构搜索&#xff08;NAS&#xff09; 的效率。 传统 NAS 需要训练候选架构来评…

C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷二)

目录 1. 数组名与地址 2. 指针访问数组 3.一维数组传参本质 4.二级指针 5. 指针数组 6. 指针数组模拟二维数组 1. 数组名与地址 我们先看下面这个代码&#xff1a; int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p &arr[0]; 这里我们使用 &arr[0] 的方式拿到了数…

基于Python pyscard库采集ACS ACR122U NFC读卡器数据的详细操作步骤

步骤1&#xff1a;安装驱动 1. 下载驱动&#xff1a; - 访问ACS官网的驱动下载页面&#xff1a;[ACR122U驱动下载](https://www.acs.com.hk/en/drivers/6/acr122u-nfc-reader/)。 - 选择适用于Windows的驱动&#xff08;如 ACR122U Driver (Windows) V3.05.02.zip&#xff09;…

深度学习 Deep Learning 第1章 深度学习简介

第1章 深度学习简介 概述 本章介绍人工智能&#xff08;AI&#xff09;和深度学习领域&#xff0c;讨论其历史发展、关键概念和应用。解释深度学习如何从早期的AI和机器学习方法演变而来&#xff0c;以及如何有效解决之前方法无法应对的挑战。 关键概念 1. 人工智能的演变 …

python实现简单的图片去水印工具

python实现简单的图片去水印工具 使用说明&#xff1a; 点击"打开图片"选择需要处理的图片 在图片上拖拽鼠标选择水印区域&#xff08;红色矩形框&#xff09; 点击"去除水印"执行处理 点击"保存结果"保存处理后的图片 运行效果 先简要说明…

软件功能性测试有哪些步骤和挑战?软件测评服务机构分享

软件功能性测试是对软件系统进行验证的一种基本方法。其主要目标是确保软件系统能够按照预期的要求和功能进行操作。从用户的角度看&#xff0c;功能性测试旨在检查软件是否实现了所有要求的功能&#xff0c;保证用户体验的顺畅与满意。 一、软件功能性测试的测试步骤   1、…

《C#上位机开发从门外到门内》3-4:基于TCP/IP的远程监控系统设计与实现

文章目录 一、项目概述二、系统架构设计三、通信协议设计四、功能模块实现五、系统安全性与稳定性六、性能优化与测试七、实际应用案例八、结论 随着信息技术的飞速发展&#xff0c;远程监控系统在工业自动化、智能家居、环境监测等领域的应用日益广泛。基于TCP/IP协议的远程监…

在react当中利用IntersectionObserve实现下拉加载数据

目录 一、传统的下拉加载方案 二、存在问题 1.性能较差 2.不够精确 三、IntersectionObserve版本下拉加载 1、callback 2、options 四、IntersectionObserver实例 1、Intersection的优势 2、实现思路 3、代码实现 在进行前端开发的过程中&#xff0c;常常会碰到下拉…

深入理解C++编程:从内存管理到多态与算法实现

C 是一门功能强大的编程语言&#xff0c;广泛应用于系统编程、游戏开发和高性能计算等领域。本文将通过一系列经典问题&#xff0c;深入探讨 C 的核心知识点&#xff0c;包括内存管理、多态&#xff08;结合函数重载与覆盖&#xff09;、多线程、TCP/IP 模型、软链接与硬链接的…

相对论之光速

然而&#xff0c;基础物理学的进步很少全部由实验取得。为了解实验结果背后的机制&#xff0c;法拉第问道&#xff0c;既然磁铁没有接触导线&#xff0c;导线中怎么会产生电流?一股电流又怎么能使指南针指针发生偏转?有某种作用因素必然在磁铁、导线和指南针之间的空隙中传递…

文本检测-文本内容审核-文本过滤接口如何用PHP调用?

一、什么是文本检测接口呢&#xff1f; 文本内容审核过滤&#xff0c;提供对敏感事件、违规词语及监管要求封禁词语的识别审核能力&#xff0c;包含海量历史数据&#xff0c;有效过滤违禁违规、恶意推广、低俗辱骂、低质灌水、广告法审核&#xff0c;该接口应用场景广泛&#…

突破极限:猎板PCB在HDI盲埋孔树脂塞孔工艺中的创新与挑战

在高端电子制造领域&#xff0c;HDI&#xff08;高密度互连&#xff09;技术凭借其高精度、高可靠性的特点&#xff0c;已成为5G通信、航空航天、智能汽车等领域的核心技术支撑。作为HDI板制造的核心环节&#xff0c;盲埋孔树脂塞孔工艺直接决定了电路板的信号完整性、散热性能…

群体智能优化算法-䲟鱼优化算法 (Remora Optimization Algorithm, ROA,含Matlab源代码)

摘要 䲟鱼优化算法&#xff08;Remora Optimization Algorithm&#xff0c;ROA&#xff09;是一种基于䲟鱼在海洋中寄生与捕食者间交互关系而提出的元启发式算法。通过模拟䲟鱼在宿主附近进行寄生、吸附和随机机动等行为&#xff0c;ROA 在全局与局部搜索之间取得平衡。本文提…

【数学建模】一致矩阵的应用及其在层次分析法(AHP)中的性质

一致矩阵在层次分析法(AHP)中的应用与性质 在层次分析法(AHP)中&#xff0c;一致矩阵是判断矩阵的一种理想状态&#xff0c;它反映了决策者判断的完全合理性和一致性&#xff0c;也就是为了避免决策者认为“A比B重要&#xff0c;B比C重要&#xff0c;但是C又比A重要”的矛盾。…

DeepSeek R1 与 ktransformers:结合苹果 M4 Mac 的 LLM 推理深度分析

引言 大型语言模型&#xff08;LLM&#xff09;的快速发展为人工智能领域带来了革命性变化。DeepSeek R1 和 ktransformers 代表了软件层面的最新突破&#xff0c;而苹果在 2025 年 3 月 12 日发布的 M4 Mac 系列则提供了硬件支持。本文将深入分析这些技术的交汇点&#xff0c…

JavaScript基本知识

文章目录 一、JavaScript基础1.变量&#xff08;重点&#xff09;1-1 定义变量及赋值1-2 变量的命名规则和命名规范判断数据类型&#xff1a; 2.数据类型转换2-1 其他数据类型转成数值2-2 其他数据类型转成字符串2-3 其他数据类型转成布尔 3.函数3-1函数定义阶段3-2函数调用阶段…