各种拿webshell
當你的才華
還撐不起你的野心時
那你就應該靜下心來學習
目錄
拿WebShell 方法
拿WebShell 的兩種類型
管理權限拿WebShell 常見的方法歸納為14種:
普通權限拿WebShell 常見的方法歸納為7種:
?
拿WebShell 方法
拿WebShell 的兩種類型
? ? ? ? 管理權限拿WebShell (可以理解為進后臺拿WebShell)
? ? ? ? 普通權限拿WebShell(可以理解為不進后臺拿WebShell)
下面附一張拿WebShell的思維導圖,圖如下:
?
管理權限拿WebShell 常見的方法歸納為14種:
1、正常上傳
? ? ??? ?網站對上傳文件后綴格式并未過濾,直接上傳WebShell即可
? ? ? ? ? 大概思路是,已知后臺管理員賬號和密碼,找有上傳節點的地方,寫一個隱蔽或變形的木馬上傳,上傳成功后,用菜刀或蟻劍連接。
? ? ? ? ? 注:為什么要寫一個隱蔽或變形的木馬呢?因為如果你用的常見的木馬,只要一上傳就會被管理員或WAF發現(常見的木馬WAF都是有收集的,所以可以寫完木馬之后用D盾檢查一下,被WAF檢測出來的危險等級是多少)
2、數據庫備份拿WebShell
網站對上傳的文件后綴進行過濾,不允許上傳腳本類型文件如 asp、php、jsp、aspx等。而網站具有數據庫備份功能,這時我們就可以將WebShell格式先改為允許上傳的文件格式,然后,我們找到上傳后的文件路徑,通過數據庫備份,將文件備份為腳本格式。
注:
? ? ?1)有些備份數據庫的地方,限制了用戶更改路徑,那該怎么辦?
? ? ? ? ? F12打開開發者工具,修改文本框元素的value值為我們想要的路徑或格式就可以完成修改
? ? ?2)如果上傳的格式被限制呢?該怎么辦?
? ? ? ? ? 可以使用%00截斷來繞過上傳限制或使用BurpSuite 工具(%00截斷、特殊名文件名繞過、文件名大小寫繞過等等黑白名單繞過,在此就不細訴了,不太明白的可以前往CE寫的Web漏洞知識篇)
? ? ? ? ? 鏈接如下:
? ? ? ? ? ? ? ? ? ? ? ? ??https://blog.csdn.net/god_xiangyu/article/category/9165924
? ? ? ? ? ? ? ? ? ? ? ? ??https://blog.csdn.net/god_xiangyu/article/category/9197218
3、本地js驗證突破拿WebShell
? ? ? 當網站設置了js來限制用戶上傳的文件類型時,可以通過刪除js驗證或者修改上傳類型突破上傳拿WebShell。
? ? ? 使用BurpSuite 或者是 Fiddle等代理工具提交,本地文件先更改為jpg,上傳時攔截,再把文件擴展名更改為asp或者php即可
4、上傳其它腳本類型拿WebShell
? ? ? 1)此類型用于一臺服務器具有多個網站,a網站是asp的站,b可能是php的站,而a站中限制了上傳文件類型為asp的文件,你可以嘗試上傳php的腳本,來拿Shell
? ? ? 2)你也可以嘗試將腳本文件后綴名改為asa 或者在后面直接加個點(.)如"xx.asp." 來突破文件類型限制進行上傳拿WebShell
5、%00截斷拿WebShell
? ? ? 1)在上傳文件的時候,你上傳的文件名可能會被網站自動改成別的名字,這個時候你可以嘗試抓取上傳文件數據包,將文件名改為xx.asp%00.jpg進行截斷上傳,拿WebShell
附上一個ms08067實驗室搭建的線上DVWA靶場
- 地址:http://43.247.91.228:81
- 賬號:admin
- 密碼:password
6、利用解析漏洞拿WebShell
? ? ? 1)IIS5.x / 6.0 解析漏洞
? ? ? 2)IIS 7.0 / IIS 7.5 / Nginx <8.03 畸形解析漏洞
? ? ? 3)Nginx < 8.03 空字節代碼執行漏洞
? ? ? 4)Apache 解析漏洞
7、利用編輯器漏洞拿WebShell
? ? ? 利用網站的編輯器上傳木馬,搜索已知的編輯器漏洞,常見的編輯器有 fckeditor、ewebeditor、cheditor等,有時候沒有管理員權限也可以拿下webshell。
8、網站配置插馬拿WebShell
? ? ? 通過找到網站默認配置,將一句話插入到網站配置中,不過為了能夠成功執行插馬,建議先下載該站源碼,進行查看源碼過濾規則,以防插馬失敗。
PS:插馬失敗很有可能會導致網站被你寫的一句話木馬,沒有閉合標簽導致被網站被插廢。
? "%><%eval request("cracer")%><%'注意:我這里構造的是下載了程序的源碼,然后在config.asp文件里的代碼來修改的。不同的版本的網站源碼都不一樣,實際問題實際分析,在此就不做多的解釋了。這里最后的單引號(')是注釋當前行后面所有的內容
9、通過編輯模塊拿WebShell
? ? ? 1)通過對網站的模塊進行編輯寫入一句話,然后生成腳本文件拿WebShell
? ? ? 2)通過將木馬添加到壓縮文件,把名字改為網站模板類型,上傳到網站服務器,拿WebShell
10、修改腳本直接拿WebShell
? ? ? 有的網站可以修改添加腳本文件,可以直接拿WebShell
注:織夢的后臺,大家可以下個織夢后臺網站源碼,復現一下
11、數據庫命令執行拿WebShell
? ? ? 可以通過phpmyadmin 登錄數據庫使用數據庫命令來寫如一句話拿WebShell
大致步驟:
注:這個前提條件是需要有一定的數據庫權限
12、上傳特殊木馬拿WebShell
? ? ? 一些網站安裝了WAF 安全狗、360,我們可以通過上傳一些免殺馬,變形木馬來進行突破封殺
13、文件包含拿WebShell
? ? ? 先將WebShell 改為txt格式文件上傳,然后上傳一個腳本文件包含該txt格式文件,可繞過WAF拿WebShell
? ? ? ASP 包含:
? ? ?PHP 包含:
注:這種情況一般是,我們已經通過菜刀拿下了權限了,假設菜刀一句話木馬可以過安全狗,但大馬卻怎么都沒有上傳成功,繞過安全狗
解決發現大馬上傳不了,被防火墻或者安全狗攔截時,可以考慮使用包含文件
思路如下:
? ? ? ? ? 1)先上傳一個含有包含代碼(如<!-- #include file="x.jpg" -->)卻沒有攻擊代碼的文件,不會被狗攔
? ? ? ? ? 2)再將大馬改成jpg圖片文件上傳,也不會被狗攔
? ? ? ? ? 3)訪問第一次上傳的包含函數的文件,會發現執行了木馬
? ? ? ? ? 4)這里是因為包含函數包含的文件會被當成腳本文件,直接將文件內容插入到這個文件中
? ? ? ? ? 這是因為包含函數包含的文件會被當成腳本文件,直接將文件內容插入到這個文件中
14、另類拿WebShell
? ? ? 1)更新頁面拿Shell
? ? ? ? ? ?在網站模板中的404頁面中插入一句話木馬,之后找到這個頁面的絕對路徑,訪問之即可拿Shell
? ? ? 2)上傳插件拿Shell
? ? ? ? ? ? 將木馬放入zip壓縮文件中,最好是網站插件的壓縮文件,之后再后臺安裝插件,選中含有木馬的壓縮文件,會自動將插件連通木馬安裝在網站目錄下,接下來我們只需要尋找到木馬的絕對路徑即可
? ? ? 3)上傳特殊馬拿WebShell
? ? ? 4)還有一種就是我們之前說那種通過上傳一些免殺馬,變形木馬來進行突破封殺
?
普通權限拿WebShell 常見的方法歸納為7種:
普通權限拿WebShell 是啥鬼?
? ? ? 可以理解為不進后臺拿WebShell
常見方法歸納為六種:
1、0day 拿WebShell
? ? ? 網上有很多理論知識,自己搜索CMS是discz的相關oday,看看能不能復現
2、修改網站上傳類型配置來拿WebShell
? ? ? 某些網站,在網站上傳類型中限制了上傳腳本類型文件,我們可以去添加上傳文件類型如添加asp | php | jsp | aspx | asa 后綴名來拿WebShell
3、xss和sql注入聯合利用
有些輸入框對一些符號過濾不嚴密(如<>,所以一般存在xss的地方就可以這么利用)我們可以在這里輸入一句話<?php @eval($_POST['CE']);?>之后再用數據庫注入,查詢到文件into file成功插入一句話木馬
4、IIS寫權限拿WebShell
? ? ? 有些網站的管理員在配置網站權限的時候疏忽,導致我們有寫權限,這種漏洞需要用工具來利用,在這里就不說了,只是提一下。而且已經很少見了,有專門的利用工具(桂林老兵),原理是通過找到有IIS 寫入權限的網站(開啟WebDeV),PUT進去一個.txt 格式的文件,目錄必須有刻寫的權限,如 image 文件夾,然后通過move 方法,把txt 格式的木馬用move 成腳本格式。
? ? ?
? ? ? 例如:一開始上傳的是test.txt? ? move 成 test1.asp
5、遠程命令執行拿WebShell
? ? ? 命令執行?就是說可以通過執行一些系統命令進行拿WebShell
? ? ??執行命令行命令“寫入內容到文件"echo ?php "@eval($_POST['CE']);?>" > x.php?會自動將創建木馬文件并將一句話木馬寫入其中,使用菜刀連接即可。
6、頭像上傳拿WebShell
? ? ? 頭像上傳拿WebShell?就是用戶注冊后有些網站可以上傳圖片、附件、文件、壓縮包等,可以利用上傳拿WebShell
大概思路:
7、SQL注入漏洞拿WebShell
? ? ? 1)前提條件,具有足夠權限,對寫入木馬的文件夾有寫入權限,知道網站絕對路徑
? ? ? 2)對于MsSQL 注入漏洞網站可以通過log 備份、差異備份拿WebShell
? ? ? 3)對于MySQL 注入漏洞的網站可以通過into outfile 函數(寫入函數)將一句話木馬寫入,拿WebShell。 還有一個是into file 函數(讀取函數)
? ? ? 4)利用phpmyadmin 將木馬導出,拿WebShell
? ? ? 5)利用連接拿WebShell
什么是外連接?
? ? ?數據庫有內連接、外連接來組合條件適用,外連接分為左連接和右連接。這里我們可以使用外連接來獲取WebShell
內連接:指連接結果僅包含符合連接條件的行,參與連接的兩個表都應該符合連接條件。
外連接:連接結果不僅包含符合連接條件的行同時也包含自身不符合條件的行。包括左外連接、右外連接和全外連接。
1、內連接
? ? ? 內連接,即最常見的等值連接
例:
? ? ? ? ? ?SELECT?*?FROM?TESTA,TESTBWHERE?TESTA.A=TESTB.A
結果:
| A | B | A | B |
| 001 | 11A | 001 | 11B |
?
2、外連接
? ? ? 外連接分為左外連接,右外連接和全外連接。
? ? ? 左外連接?left outer join?或者?left join
? ? ? 左外連接就是在等值連接的基礎上加上主表中的未匹配數據
例:
? ? ? ? ? ?SELECT?*FROM?TESTA?LEFT?OUTER?JOIN?TESTB?ON?TESTA.A=TESTB.A
結果:
| A | B | A | B |
| 001 | 11A | 001 | 11B |
| 002 | 10B | ? | ? |
?
拓展內容:
? ? ?全外連接?full outer join?或者?full join
? ? ?全外連接是在等值連接的基礎上將左表和右表的未匹配數據都加上。
例:
? ? ? ? ? ?SELECT?*?FROM?TESTA?FULL?OUTER?JOIN?TESTBON?TESTA.A=TESTB.A
結果:
| A | B | A | B |
| 001 | 11A | 001 | 11B |
| 002 | 20A | ? | ? |
| ? | ? | 003 | 30B |
外連接內容參考鏈接:https://zhidao.baidu.com/question/338244729.html
大概思路:
我不需要自由,只想背著她的夢
一步步向前走,她給的永遠不重
?
總結
以上是生活随笔為你收集整理的各种拿webshell的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 铭感文件目录_waf绕过
- 下一篇: PHP-Webshell免杀研究