rce漏洞學習

什么是rce漏洞

rce漏洞又稱遠程代碼執行漏洞,它允許攻擊者在目標服務器上遠程執行任意代碼或操作系統命令。rce漏洞通常出現在 應用程序提供給用戶執行命令的接口,例如網頁的ping功能也就是網頁的url欄,如果不對上傳的數據進行嚴格的管控就可能出現rce漏洞。

許多程序、網站都對用戶提供交互功能,利用前端用戶提供的代碼或命令讓后端系統執行一些操作,如果對這些管控不嚴格就很容易產生rce漏洞。

PHP中執行系統命令的函數

system()
passthru()
exec()
shell_exec()
popen()
proc_open()
pcntl_exec()

執行代碼的函數

eval()

assert()

preg_replace()

creat_function()

call_user_func_arry()

call_user_func()

Windows系統命令拼接符

|:將前一個命令的輸出作為后一個命令的輸入,例如“echo a|b”,將第一個命令輸出的結果作為第二個命令輸入的結果。

||:運行前一個命令,若失敗則運行后一個命令,例如“a||b”,先運行a,如果a運行失敗了,則運行b,若成功了則不運行b

&:先運行前一個命令,后運行后一個命令,例如“a&b”,先運行a,然后運行b

&&:先運行前一個命令,如果成功則運行后一個命令,例如“a&&b”,先運行a命令如果成功則運行b,如果失敗則不運行b。

;:和&類似

rce繞過類型

這邊使用rce-labs靶場來了解

level1(一句話木馬,層級關系繞過)

上面有一個包含,下面post傳參a參數,看到這里其實第一印象是一句話木馬,網頁打開的這個php文件一個一句話木馬我們用蟻劍鏈接看看

連接成功可以得到flag,但是我又嘗試去傳參一些查詢函數,例如看一下ls

可以看到回顯,里面有一個類似flag的文件,但是通過上面我們知道flag文件的名字就是flag,所以就查一下上層目錄,但是不知道為什么查不出來

但是直接抓取上層目錄的flag可以抓出來

level2(代碼審計)

這關給了三個函數,逐一進行代碼審計

function?hello_ctf($function,?$content){global?$flag;$code?=?$function?.?"("?.?$content?.?");";echo?"Your?Code:?$code?<br>";eval($code);}

定義一個全局變量flag,將function參數和content參數拼接起來賦值給code參數,回顯拼接之后的code參數并執行它,其中.是字符串連接符

整體來看這個函數就是傳參兩個參數,將這兩個參數拼接之后輸出出來并執行它

function get_fun(){$func_list = ['eval','assert','call_user_func','create_function','array_map','call_user_func_array','usort','array_filter','array_reduce','preg_replace'];if (!isset($_SESSION['random_func'])) {$_SESSION['random_func'] = $func_list[array_rand($func_list)];}$random_func = $_SESSION['random_func'];$url_fucn = preg_replace('/_/', '-', $_SESSION['random_func']);echo "獲得新的函數: $random_func ,去 https://www.php.net/manual/zh/function.".$url_fucn.".php 查看函數詳情。<br>";return $_SESSION['random_func'];
}

定義了一個數組里面都是執行函數,定義一個會話變量,檢查這個會話變量是否被定義,如果沒定義就從上面定義的數組里面抽取一個賦值給它,對抽到的函數進行處理將_變成-這里是為了符合url的解析規則,后面就是將隨機抽取到的函數輸出到屏幕而已,這里起到一個提示作用

function start($act){$random_func = get_fun();if($act == "r"){ /* 通過發送GET ?action=r 的方式可以重置當前選中的函數 —— 或者你可以自己想辦法可控它x */session_unset();session_destroy(); }if ($act == "submit"){$user_content = $_POST['content']; hello_ctf($random_func, $user_content);}
}

這里有一個判斷,如果get傳參action=r就重置前面隨機選取到的執行函數,如果action=submit,就從post傳參中獲取名為content的參數值

整體看就是要分get傳參和post傳參

我們先個體傳參一下看看

可以看到上面抽取到的函數是assert這個函數,這個函數被賦值給了function變量我們后面用post傳參的參數是content,會將這兩個函數拼接并執行,那么我們結合assert函數的用法去post傳參一個能得到flag的數據即可

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

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

相關文章

VMware下Ubuntu空間擴容

目的&#xff1a; Ubuntu空間剩余不足&#xff0c;需要對Ubuntu進行擴容。 使用工具&#xff1a; 使用Ubuntu系統中的gparted工具進行系統擴容。 前提&#xff1a; 1、電腦有多余的未分配磁盤空間&#xff0c;比如我的Ubuntu磁盤G盤是200G&#xff0c;現在快滿了&#xff0c…

國產數據庫與Oracle數據庫事務差異分析

數據庫中的ACID是事務的基本特性&#xff0c;而在Oracle等數據庫遷移到國產數據庫國產中&#xff0c;可能因為不同數據庫事務處理機制的不同&#xff0c;在遷移后的業務邏輯處理上存在差異。本文簡要介紹了事務的ACID屬性、事務的隔離級別、回滾機制和超時機制&#xff0c;并總…

Dockerfile 學習指南和簡單實戰

引言 Dockerfile 是一種用于定義 Docker 鏡像構建步驟的文本文件。它通過一系列指令描述了如何一步步構建一個鏡像&#xff0c;包括安裝依賴、設置環境變量、復制文件等。在現實生活中&#xff0c;Dockerfile 的主要用途是幫助開發者快速、一致地構建和部署應用。它確保了應用…

青少年編程與數學 02-016 Python數據結構與算法 22課題、并行算法

青少年編程與數學 02-016 Python數據結構與算法 22課題、并行算法 一、GPU并行計算矩陣乘法示例 二、MPI并行計算allgather操作示例 三、Python中的并行計算多線程并行計算多進程并行計算 四、SIMD并行計算SIMD并行計算示例 總結 課題摘要: 并行算法是通過同時執行多個任務或操…

20250412 機器學習ML -(3)數據降維(scikitlearn)

1. 背景 數學小白一枚&#xff0c;看推理過程需要很多時間。好在有大神們源碼和DS幫忙&#xff0c;教程里的推理過程才能勉強拼湊一二。 * 留意&#xff1a; 推導過程中X都是向量組表達: shape(feature, sample_n); 和numpy中的默認矩陣正好相反。 2. PCA / KPCA PCAKPCA(Li…

宿舍管理系統(servlet+jsp)

宿舍管理系統(servletjsp) 宿舍管理系統是一個用于管理學生宿舍信息的平臺&#xff0c;支持超級管理員、教師端和學生端三種用戶角色登錄。系統功能包括宿舍管理員管理、學生管理、宿舍樓管理、缺勤記錄、添加宿舍房間、心理咨詢留言板、修改密碼和退出系統等模塊。宿舍管理員…

現代測試自動化框架教程:Behave接口測試與Airtest移動端UI自動化

前言 我發現每天還是陸陸續續有人在看我之前寫的自動化框架搭建的文檔&#xff1b;即使很早就有新的框架&#xff0c;更好的選擇出來了&#xff1b;所以特別寫了這一篇目前大廠也在使用的&#xff1b;日活400w有實際落地的自動化測試架構方案&#xff1b; 隨著測試技術…

.NET Core DI(依賴注入)的生命周期及應用場景

在.NET中&#xff0c;依賴注入&#xff08;DI&#xff0c;Dependency Injection&#xff09;是一種設計模式&#xff0c;它通過將依賴關系注入到類中&#xff0c;而不是讓類自己創建依賴項&#xff0c;來降低類之間的耦合度。這使得代碼更加模塊化、靈活和易于測試。在.NET中&a…

設計模式 --- 觀察者模式

觀察者模式是一種行為設計模式&#xff0c;它定義了對象之間的一對多依賴關系&#xff0c;當一個對象的狀態發生改變時&#xff0c;所有依賴它的對象都會得到通知并自動更新。 優點&#xff1a; ??1.解耦性強??&#xff1a; ??觀察者&#xff08;訂閱者&#xff09;與主…

PasteForm框架開發之Entity多級嵌套的表單的實現

你相信么,使用PasteForm框架開發&#xff0c;管理端居然不要寫代碼&#xff01;&#xff01;&#xff01; 一起來看看PasteForm是否支持多級表模式(外表) 需求假設 假如有這么一個需求&#xff0c;就是訂單表&#xff0c;包含了多級的信息&#xff0c;比如這個訂單包含了哪些…

深入解析分類模型評估指標:ROC曲線、AUC值、F1分數與分類報告

標題&#xff1a;深入解析分類模型評估指標&#xff1a;ROC曲線、AUC值、F1分數與分類報告 摘要&#xff1a; 在機器學習中&#xff0c;評估分類模型的性能是至關重要的一步。本文詳細介紹了四個核心評估指標&#xff1a;ROC曲線、AUC值、F1分數和分類報告。通過對比這些指標…

多模態醫學AI框架Pathomic Fusion,整合了組織病理學與基因組的特征

小羅碎碎念 在醫學AI領域&#xff0c;癌癥的精準診斷與預后預測一直是關鍵研究方向。 這篇文章提出了Pathomic Fusion這一創新框架&#xff0c;致力于解決現有方法的局限。 傳統上&#xff0c;癌癥診斷依賴組織學與基因組數據&#xff0c;但組織學分析主觀易變&#xff0c;基因…

《Python星球日記》第27天:Seaborn 可視化

名人說&#xff1a;路漫漫其修遠兮&#xff0c;吾將上下而求索。—— 屈原《離騷》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 專欄&#xff1a;《Python星球日記》&#xff0c;限時特價訂閱中ing 目錄 一、Seabor…

【scikit-learn基礎】--『監督學習』之 決策樹回歸

決策樹算法是一種既可以用于分類&#xff0c;也可以用于回歸的算法。 決策樹回歸是通過對輸入特征的不斷劃分來建立一棵決策樹&#xff0c;每一步劃分都基于當前數據集的最優劃分特征。 它的目標是最小化總體誤差或最大化預測精度&#xff0c;其構建通常采用自上而下的貪心搜索…

解決安卓開發“No Android devices detected.”問題

解決安卓開發“No Android devices detected.”問題 ? 當我們插入移動設備的USB時&#xff0c;卻發現這并未顯示已連接到的設備 點擊右側的Assistant,根據提示打開移動設備開發者模式并啟用USB調試模式,然后發現我們未連接到移動設備的原因是ABD服務的原因 問題確定了&…

idea如何使用git

在 IntelliJ IDEA 中使用 Git 的詳細步驟如下&#xff0c;分為配置、基礎操作和高級功能&#xff0c;適合新手快速上手&#xff1a; ?一、配置 Git? ?安裝 Git? 下載并安裝 Git&#xff0c;安裝時勾選“Add to PATH”。驗證安裝&#xff1a;終端輸入 git --version 顯示版本…

軟件架構設計:MVC、MVP、MVVM、RIA 四大風格優劣剖析

MVC、MVP、MVVM 和 RIA 都是軟件架構中常見的設計風格&#xff0c;以下是對它們的詳細介紹&#xff1a; 一、MVC 架構風格&#xff08;Model - View - Controller&#xff09; 1.簡介&#xff1a;MVC 架構風格將軟件應用程序分為三個核心部分&#xff0c;通過這種劃分來分離不…

Centos/RedHat 7.x服務器掛載ISCSI存儲示例(無多路徑非LVM)

客戶讓幫忙掛載個ISCSI存儲&#xff0c;大概結構如下圖所示&#xff1a; ISCSI存儲為一臺安裝了truenas的X86服務器&#xff0c;提供存儲服務的IP地址為10.16.0.1 服務器的ETH1網卡配置與10.16.0.1同段網絡。 為了給客戶做個簡單培訓&#xff0c;整理了一下操作步驟。下面是配…

TV板卡維修技術【二】

【一】測量未知MOS引腳定義的好壞 TO-252封裝的MOS管子&#xff0c;上面的大焊盤是D極&#xff0c;下面的3個不同品牌的NMOS或者PMOS驗證了這個結論&#xff1a; 利用這個特性&#xff0c;可以在不知道MOS引腳定義的情況下測量出MOS的好壞&#xff0c;如下圖&#xff1a; 插件…

基于 cefpython 實現嵌入 Chromium (CEF)

CEF Python是一個開源項目&#xff0c;旨在為Chromium Embedded Framework提供Python綁定&#xff0c;許多流行的GUI工具包都提供了嵌入CEF瀏覽器&#xff0c;例如QT。 安裝 pip install cefpython366.1支持的Python版本&#xff1a; 實現打開網頁 from cefpython3 import…