natas33
__destruct()
時會呼叫 passthru()
串接檔名來執行指令
CHA.php
vim
或加上 -d
變更成 phar.readonly=Off
,構造並生成惡意的 CHA.phar
CHA.phar
,同樣使用 Proxy 攔截並修改檔案名稱
phar://CHA.phar
phar://
觸發,使 md5_file()
操作檔案時將 Phar 的序列化資料反序列化,變更 $signature = True
藉此忽略 MD5sum 的檢查,並由 $filename = 'CHA.php'
修改成執行第一次上傳的 PHP 腳本獲取密碼檔案.phar
中相同即可,而最後上傳的檔案可以將檔名改成 phar://CHA.phar/CHA.php
或者 phar://CHA.phar/CHA
等filesize()
move_uploaded_file()
chdir()
md5_file()
phar://