剛進入**,我們可以看到這樣的乙個介面
根據內容提示,「有備份**的習慣」
日常後台掃瞄,發現有www.zip檔案,我們進行解壓得到
看到flag.php開啟檢視,發現沒有什麼有用的資訊。
我們開啟index.php看看
我們可以看到通過get方式傳入引數select,並對引數select進行反序列化。
接下來,檢視class.php
進行**審計
我們可以看到當username=admin&&password=100時,就可以獲得flag,但是我們需要先對其進行序列化。
但是當經過wakeup()函式時,username會被賦值成guest,使得無法輸出flag,所以我們還需要繞過wakeup()函式。
1.構造序列化
得到o:4:「name」:2:
2.繞過wakeup()函式
即o:4:「name」:3:
但是由於private宣告的字段為私有字段,只在所宣告的類中可見,在該類的子類和該類的物件例項中均不可見。因此私有欄位的欄位名在序列化時,類名和欄位名前面都會加上0的字首。
即o:4:「name」:3:
最後獲得flag
極客大挑戰 2019 PHP
開啟以後,是三個php原始碼,其中最重要的是class.php,如下 include flag.php error reporting 0 class name function wakeup function destruct if this username admin else 看了一下,這個...
極客大挑戰 2019 PHP
開啟後,按照提示找備份檔案 用御劍沒掃到東西,換個工具dirsearch 找到備份檔案 解壓檔案,檢視flag,假的。審計一下這幾個的 吧 flag.php裡的 flag 給了個值syc,好像沒啥用。外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img jirqepnc 1612329...
極客大挑戰 2019 PHP
這不反手就試試www.zip?class.php class name function wakeup function destruct if this username admin else 這裡要注意的是兩個變數都是private型 private 宣告的字段為私有字段,只在所宣告的類中可見,...