農林漁牧網

您現在的位置是:首頁 > 林業

安全app之PHP程式碼審計

2022-10-02由 小熊編tips 發表于 林業

systemupdate如何刪除

正文

原始碼結構如下,

安全app之PHP程式碼審計

經過我的一番菜雞分析,application下,admin是admin後臺,index是首頁的方法,api是使用者後臺,還有一個wxapi好像是微信小程式的使用者後臺(因為這個環境我本地沒有實現)。

首先是找上傳,一般後臺的都是這樣直奔主題,找到圖片管理處

安全app之PHP程式碼審計

先直接上傳個php,發現沒有反應,也沒報錯什麼的,感覺沒戲,但是檔案監控發現點東西

安全app之PHP程式碼審計

【一>所有資源關注我,私信回覆“資料”獲取<一】

1、網路安全學習路線

2、電子書籍(白帽子)

3、安全大廠內部影片

4、100份src文件

5、常見安全面試題

6、ctf大賽經典題目解析

7、全套工具包

8、應急響應筆記

發現上傳成功了,於是到原始碼中刪除這個檔案,又重新上傳了一下,結果

安全app之PHP程式碼審計

確實返回了json,

安全app之PHP程式碼審計

離譜啊,找到對應原始碼處,application/admin/controller/File。php

安全app之PHP程式碼審計

沒有進行過濾,為什麼php沒有顯示因為在呼叫圖片管理時讀取限定了字尾,

安全app之PHP程式碼審計

files = glob(

f

i

l

e

s

=

g

l

o

b

folder。’*。{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF}’, GLOB_BRACE)

突然想到會不會使用者的對應功能點也有同樣的問題,找到使用者上傳,

安全app之PHP程式碼審計

發現用

file->validate(

f

i

l

e

>

v

a

l

i

d

a

t

e

this->rules)進行了字尾驗證,而$rules = [‘ext’ => ‘jpeg,jpg,png’, ‘size’ => 1024 * 1024 * 4],沒戲。

然後在wxapi介面中,

安全app之PHP程式碼審計

這裡是沒有驗證的,那麼普通使用者就有上傳(我本地沒有復現成功,有師傅會的教教我)

刪除的話也沒有限制,導致任意檔案刪除,嘗試刪除logo:

安全app之PHP程式碼審計

安全app之PHP程式碼審計

抓包修改,

安全app之PHP程式碼審計

安全app之PHP程式碼審計

原因也是直接拼接了value,

安全app之PHP程式碼審計

不過作用不大,但是這個站也是install。lock,要是有重灌寫shell那當我沒說。

另外一個就是邏輯上的問題,在站點系統設定中,

安全app之PHP程式碼審計

輸入個’就報錯了,

安全app之PHP程式碼審計

一些絕對路徑啊什麼的都有,

分析一下,application/admin/controller/Set。php中

安全app之PHP程式碼審計

跟進updatesystem

安全app之PHP程式碼審計

再跟setupdatesystem

以上流程將我們傳入的post 資料寫入在config/readfile 下新生成的system。php 中

透過json_encode($array, 1)

會將我們傳入的“ 轉義成” ,但是’無法轉義,因此可以傳入’從而導致報錯

安全app之PHP程式碼審計

在載入應用的時候會include(config/app。php)

config/app。php 會判斷是否存在system。php

存在就include,進而導致報錯。

後面也想到了閉合’,但是return一個字串,之後的就無法執行了。