重裝漏洞的種類
常見的重裝漏洞的種類
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