極客大挑戰 2019 PHP1

2022-06-05 01:15:09 字數 1675 閱讀 5140

他說備份了,就肯定掃目錄,把原始檔備份掃出來

dirsearch掃目錄掃到www.zip壓縮包

然後解壓發現是,序列化。

具體特徵如下:

index.php包含如下**:接收引數,進行序列化

<?php 

include 'class.php';

$select = $_get['select'];

$res=unserialize(@$select);

?>

class.php含: 原始碼都放在著

<?php 

include 'flag.php';

error_reporting(0);

class name

function __wakeup()

function __destruct()

if ($this->username === 'admin') else

}}?>

開始構造

然後根據判斷句得知,username必須是admin,password必須是100所以,構造序列化

o是物件,s是字串,i是數字因為是private修飾的所以要加%00充當空格構造:o:4:"name":2:

我看大佬的payload的時候,很疑惑為什麼要寫%00name%00username這樣的形式?

然後我進行了三種修飾方式的測試:public,protected,private

我忽然明白:

只有public修飾的不用太多的修飾原生態構造就好,而private需要加%00name%00

protected則需要使用%00*%00username這樣的方式

<?php 

class name

}$a = new name('admin',100);

$b=serialize($a);

echo $b;

//看這看這看這看這!!!!!!!!!

//執行會輸出 o:4:"name":2:

?>

<?php 

class name

}$a = new name('admin',100);

$b=serialize($a);

echo $b;

//o:4:"name":2:

?>

<?php 

class name

}$a = new name('admin',100);

$b=serialize($a);

echo $b;

//o:4:"name":2:

?>

極客大挑戰 2019 PHP

開啟以後,是三個php原始碼,其中最重要的是class.php,如下 include flag.php error reporting 0 class name function wakeup function destruct if this username admin else 看了一下,這個...

極客大挑戰 2019 PHP

剛進入 我們可以看到這樣的乙個介面 根據內容提示,有備份 的習慣 日常後台掃瞄,發現有www.zip檔案,我們進行解壓得到 看到flag.php開啟檢視,發現沒有什麼有用的資訊。我們開啟index.php看看 我們可以看到通過get方式傳入引數select,並對引數select進行反序列化。接下來,...

極客大挑戰 2019 PHP

開啟後,按照提示找備份檔案 用御劍沒掃到東西,換個工具dirsearch 找到備份檔案 解壓檔案,檢視flag,假的。審計一下這幾個的 吧 flag.php裡的 flag 給了個值syc,好像沒啥用。外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img jirqepnc 1612329...