PHP代碼審計之重裝漏洞-Day2

重裝漏洞的種類

常見的重裝漏洞的種類

1、自動刪除這個安裝軟件

通過生成一個lock文件來判斷程序是否安裝過

2、根本無驗證

安裝完成後不會自動刪除文件,也不會生成lock判斷是否安裝過

3、安裝file

直接用GET提交step繞過,直接進入下一步

4、變量覆蓋導致重裝

可以GET,POST,COOKIE任意提交一個變量名$insLockfile,從而讓file_exists爲false就不會退出。

5、判斷lock後,無exit

判斷是否存在lock文件,如果存在lock文件,就會header到index.php,但是header後並沒有
exit,所以不會退出。

6、解析漏洞

在安裝完成後會將install.php重命名爲index.php.bak,但是由於Apache的解析漏洞;如果無法識別到最後一個後綴的話,就會向上解析,那麼又變成php了,然後結合安裝時的變量覆蓋又成重裝了。

7、滿足一些條件不會退出的

這次復現的兩個漏洞,都屬於第五類。當頁面跳轉到主頁之後,原來的php進程依然存在,導致可以重裝,而當配置信息沒有經過過濾而直接被寫入了文件當中,就可能導致getshell。尋找此類漏洞應該嘗試去跟蹤配置信息的最終去處,並檢查是否有過濾。通過構造閉合語句利用漏洞。

vauditdemo重裝漏洞復現

1、訪問http://localhost/ourphp/install/install.php
在這裏插入圖片描述
2、提交數據庫信息,用burpsuite抓包。
在這裏插入圖片描述
3、將dbname修改爲:
testdb;-- -";phpinfo();//
在這裏插入圖片描述
4、提交
將會跳轉到phpinfo()
vauditdemo下載地址
在這裏插入圖片描述

Payload :testdb;-- -";phpinfo();//
Payload分析:
– 註釋了mysql語句
";閉合sql語句
//註釋

重裝漏洞修復建議

1、正確處理lock文件
2、判斷安裝完成後要退出
3、在安裝的每一步都需要驗證
4、對所有輸入點進行過濾

本文到此已經結束,由於水平有限,在很多地方肯定有些不足之處,如有紕漏或者錯誤,還請斧正,定當改進。文章寫的很不容易,大家的評論和點贊就是我的最大動力,謝謝支持!

2020-03-10
ro4lsc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章