如何獲取WebShell經驗總結

2021-01-07 網盾網絡安全

什麼是WebShell

滲透測試工作的一個階段性目標就是獲取目標伺服器的操作控制權限,於是WebShell便應運而生。Webshell中的WEB就是web服務,shell就是管理攻擊者與作業系統之間的交互。Webshell被稱為攻擊者通過Web伺服器埠對Web伺服器有一定的操作權限,而webshell常以網頁腳本的形式出現。常見的WebShell使用asp、jsp和php來編寫,提供了如執行系統命令、文件上傳下載、資料庫管理等功能。

獲取WebShell的方式

獲取WebShell的動作又叫做GetShell,是滲透測試各項能力的綜合體現,也是滲透測試一個重要的階段性目標。GetShell方式眾多,常見如文件上傳、SQL注入、命令執行、文件包含、解析漏洞等等。有時候一個漏洞即可GetShell,有時候則需要各種漏洞打一套組合拳方可。So,多交流,才能掌握更多GetShell騷姿勢。

通過利用任意文件上傳漏洞可以最快獲取WebShell,一般常見有三種情況:(1)直接上傳木馬文件到目標伺服器;(2)繞過防護(以下不包括繞過WAF防護,以後有時間再介紹繞過WAF的姿勢)限制上傳木馬文件;(3)CMS等的通用任意文件上傳漏洞。在對目標進行滲透測試時,可從前後臺頭像修改、文件導入、圖片上傳等處尋找文件上傳接口。此外,還需要根據識別的站點指紋尋找是否存在文件上傳漏洞。以下是針對不同情況下上傳WebShell的方式。

a) 前端校驗文件後綴時,可先傳允許的文件類型,然後抓包修改文件後綴。b) MIME校驗時,抓包修改Conten-Type為允許MIME類型。

a) 利用特殊文件後綴。如.php3、.php5、.php7、.phtml;asa、cer、cdx、aspx;jspx、 jsw、jsv、jspf等,但不一定都能被解析。b) 配合Windows/Linux特性使用特殊字符,如上傳.php::$DATA、「.php空格」等後綴的文件到Windows伺服器,由於Windows的文件後綴中不能包含一些特殊符號,使得這些文件在保存在Windows伺服器上時後綴只剩下.php。c) Apache 1.x、2.2.x版本文件解析漏洞,.php.xx。d) 後綴大小寫,如pHp。e) 在數據包中使用雙filename,如filename=「1.jsp」; filename=「1.php」。

a) 00截斷,要求PHP<5.3.4且magic_quotes_gpc為OFF狀態。b) 配合解析漏洞(見解析漏洞getshell)。c) 文件包含圖片馬(見文件包含getshell)。

a) 使用文件頭繞過,如圖片中使用GIF89a。b) 使用圖片馬,接著配合解析漏洞或者文件包含漏洞getshell。c) 使用元數據編輯器在圖片的EXIF信息中插入一句話木馬。

如禪道<=12.4.2後臺任意文件上傳漏洞;編輯器漏洞、中間件的也不容忽視,如CVE-2017-12615可直接使用put寫入木馬文件。當然,「老洞」IIS 6 開啟WebDAV可直接put寫入文件。以下兩張圖是禪道<=12.4.2後臺任意文件上傳漏洞的利用截圖:

利用命令(代碼)執行漏洞寫入WebShell文件從而GetShell。在此列舉了以下四種常見情況作為說明。(1) 利用CMS、框架通用漏洞,如thinkPHP命令執行漏洞,影響範圍較廣,如鯰魚CMS、ThinkCMF、yunCMS等。Struts2遠程命令(代碼)執行漏洞,如S2-059、S2-057……(2) 中間件、架構通用漏洞,如:Jboss遠程命令執行、weblogic未授權命令執行CVE-2020-14882……(3) 應用程式命令執行漏洞,如Redis 4.x/5.x命令執行漏洞、Zabbix遠程命令執行CVE-2020-11800……(4) 命令注入漏洞寫入WebShell,根據Linux和Windows的不同採用不同的注入方式。如:

利用解析漏洞將圖片馬等文件解析為惡意腳本文件從而GetShell,本文主要介紹在IIS、Nginx、Apache的解析漏洞。一般,該漏洞會配合文件上傳漏洞等來獲取WebShell。

a) IIS 5.x/6.0解析漏洞,其中文件名解析漏洞利用形式為*.asp;.jpg;目錄解析漏洞利用形式為/asp/1.jpg。b) IIS 7.0/7.5解析漏洞。其實該漏洞為cgi.fix_pathinfo的配置不當引起的解析漏洞,利用形式為x.jpg%20\0.php。

a) Nginx漏洞版本0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7默認配置導致解析漏洞,利用形式為x.jpg/.php。b) Nginx漏洞版本0.5.、0.6.、0.7 <= 0.7.65、0.8 <= 0.8.37,利用形式為x.jpg%00.php。c) CVE-2013-4547,利用形式為x.jpg[非空編碼]\0.phpd) PHPStudy v8.1.0.7默認Nginx配置解析漏洞,利用形式為x.jpg/.php。

a) 文件後綴x.php.ss.ss2會被解析為php文件b) 利用配置文件。上傳.htaccess配置文件,就會將.jpg解析為PHP文件,內容如下:

或者

在MySQL注入中,可以利用SQL注入獲取WebShell,要寫入WebShell文件到伺服器中,需要滿足以下條件:

網站物理路徑;

文件寫入的權限;

secure_file_priv條件沒有設置為NULL;

要求mysql資料庫的配置中,沒有將secure_file_priv條件沒有設置為NULL,即secure_file_priv=NULL時,無法導入導出文件;而當設置為空時,即secure_file_priv=時,則導入導出文件不受限制;如果設置為某個文件路徑,如secure_file_priv=/mysql/時,則導入導出必須要在跟文件目錄下完成。利用形式如下。(1) 直接使用into outfile

(2) 直接使用into downfile

(3) 意為將數據導出到文件shell.php時,每個數據以一句話木馬作為分割符

而在寫入時,也可以將分隔符,即一句話木馬做hex編碼如:

(4) 設置每行數據開頭為一句話木馬

(5) 在欄位之間的以一句話木馬作為分隔符。

舉例如下圖所示:

利用文件包含漏洞GetShell,由於面比較大,主要介紹PHP文件包含,其分為本地文件包含和遠程文件包含。本地文件包含中,需要PHP的配置文件項allow_url_include和allow_url_fopen均設置為On。一般配合文件上傳等漏洞GetShell,最常見的如先傳圖片馬,再包含之。遠程文件包含中,需要PHP的配置文件項allow_url_fopen設置為On,利用方式是在遠程伺服器上存在shell.txt,內容為webshell,然後遠程包含這個文件即可。

0day自己挖,如一些cms黑白盒滲透、代碼審計等;Nday靠收集。

創建、修改模板時寫入webshell文件。

在網站設置如「網站名稱」中插入一句話,但需要注意閉合,稍有不慎會將網站插壞的。

資料庫備份時修改備份文件後綴,在數據中插入一句話。

a) 開啟日誌文件,將日誌文件的路徑設置為網站的物理路徑,如:

最後在執行的SQL語句中帶有一句話木馬,這樣,日誌文件內容中就包含了webshell。b) 導出數據時,將webshell導出到文件中,詳見前文SQL注入GetShell。

如DedeCMS CSRF + 任意文件寫入。

添加上傳文件類型,如白名單中添加PHP。

本次就先總結到這裡,望大佬們不吝賜教。

相關焦點

  • 深究異或webshell原理以及伺服器處理免殺的流程
    前言之前一直接觸rce;但是總是可以看到過濾就可以考慮無數字和字母的webshell或者免殺馬,但是今天碰到一道題,讓我深刻理解了深究的重要性;不能無腦依靠網上無數字和字母的webshell了;需要知道細節;這裡我們知道,常規的ctf題目中,往往都是採用post或者get進行數據提交;在最後是命令執行;但是要想打到命令執行;需要繞過很多waf;有的層層
  • XDCTF-2017-Final 經驗總結
    今天早上看到沐師傅在知乎上的回答 , 感覺自己還是有點太為了比賽而比賽了以後還是得多聯繫實際的網絡攻防對抗寫一篇小總結吧 , 記錄一些小經驗和一些比較有意思的事
  • 知識管理方法——總結經驗教訓
    知識管理可以幫助公司進行集體記憶,獲取實踐,並汲取經驗教訓。總結經驗教訓有時也被稱為事後評估、項目階段評審、事後調查分析或者活動匯報。這些方法通過項目、活動以及相似情景中的工作來獲取知識。最終的目的,都是為了不重複犯錯。總結經驗教訓的方法通常歸結為以下幾個關鍵問題:·應該發生什麼?
  • 亂鬥之王頭目獲取經驗的五種方式 如何提升經驗
    亂鬥之王頭目獲取經驗的五種方式如何提升經驗。亂鬥之王是一款好玩刺激的格鬥遊戲,遊戲中有著精美的遊戲畫面搭配上炫酷華麗的英雄技能,再加上各種流派克制讓遊戲趣味十足,怎麼玩都不會厭。 掛機可獲大量升級頭目的經驗,每次通關都能獲得經驗獎勵,通過的關卡數越多,掛機獲得的收益越多 2.
  • 20年經驗總結:如何快速寫出一篇令人稱讚的文章
    那要如何才能快速寫出一篇重點突出、條理清晰、令人稱讚的文章呢?答案就在《一本小小的紅色寫作書》中。本書的作者布蘭登羅伊爾畢業於哈佛大學,在美國著名考試培訓機構擔任主管,他總結自己多年的教學經驗,寫出了《一本小小的藍色邏輯書》、《一本小小的紅色寫作書》、《一本小小的金色語法書》等經典著作。
  • 善於及時總結經驗,用心體會,才能將經驗轉換成價值,越做越好
    如何增加自己的經驗值經驗值一詞是電腦時代一個越來越頻繁的詞彙,意味著人對某種遊戲或網站等等的參與程度,並且相應地有自己的積分,代表一種參與的資格或能力積累。人的生活經驗也可以嘗試用經驗值一詞來衡量,這裡的經驗值相當於人的經驗豐富的程度,或者人的生活中積累的有價值的經驗的量,意味著一種能給人帶來實際收穫的經驗積累方面的積分。經驗值有益於在遊戲中過關斬將,同樣,富於成效地做事情也需要經驗值。經驗可以通過具體地做事情來獲得,這大多不用專門交學費,社會環境中充滿著這種不用交學費,一般還有工資的豐富自己經驗的機會。
  • 改打長膠後如何接發球?靠譜的實戰經驗總結,很實用!
    改打長膠後如何接發球?靠譜的實戰經驗總結,很實用! 原標題:改打長膠後如何接發球?
  • 明日方舟米格魯皮膚攻略 材料獲取及需求經驗詳解
    明日方舟手遊中很多小夥伴不知道材料獲取及需求經驗,也不清楚米格魯皮膚是什麼,今天小編就帶著大家了解一下明日方舟米格魯皮膚攻略; 材料獲取
  • 王者榮耀李小龍活動經驗怎麼得 李小龍活動經驗快速獲取方法
    王者榮耀李小龍活動經驗怎麼得呢?今天小編給大家帶來的是王者榮耀李小龍活動經驗快速獲取方法哦!想知道的小夥伴就和小編一起來看看吧!
  • 貝西洛維奇:因為傷病問題,我們大量啟用年輕球員獲取經驗
    所以我們大量啟用年輕球員,讓他們在比賽中獲取經驗,為下場比賽做準備。對於打新疆這樣侵略性極強的隊伍很難,但是我們打的還行,有一些部分表現的還不錯。希望這些球員能從比賽中獲取些經驗,學到一些東西。」球員代表劉育辰表示:「今天很高興有這樣的機會能跟新疆這樣的強隊打,我們也很珍惜與他們交手的機會。
  • 經驗總結:公眾號如何排版?
    我很高興,當初的努力和堅持讓我擁有了這些經驗,現在才能夠幫到身邊的朋友。所以,今天我也想把這些公眾號排版的經驗分享給大家,希望對你們的排版能夠有所幫助。先聲明,我並不是排版大神,因為排版比我好的大有人在。
  • 新冠疫情下開展癲癇生酮飲食:約翰·霍普金斯醫院經驗總結推薦
    在新冠肺炎疫情下如何開展生酮飲食療法呢?最近,來自約翰·霍普金斯醫院的國際著名生酮療法專家Eric H.Kossoff教授等人在國際期刊《Epilepsy & Behavior》發表文章,對5個生酮治療案例進行了經驗分享,並討論如何通過遠程醫療維持門診患者隨訪。詳情點擊這裡>>
  • 黑客如何攻破一個網站?圖文講解全流程丨新手易懂
    本文將從最開始的信息收集開始講述黑客是如何一步步的攻破你的網站和伺服器的。閱讀本文你會學到以下內容:1.滲透測試前的簡單信息收集。假設黑客要入侵的你的網站域名為:hack-test.com 讓我們用ping命令獲取網站伺服器的IP位址
  • 在線少兒英語培訓哪家好,如何挑選經驗總結分享
    在線少兒英語培訓哪家好,如何挑選經驗總結分享 2020年12月23日 11:40作者:黃頁編輯:黃頁 既然都找在線英語培訓機構了,比較建議試試外教一對一的授課方式,比較有針對性,學習體驗好,而且學習門檻也不高,不管孩子的學習基礎如何,長時間學還是短時間學,非常合適。
  • 香港醫療專家:白皮書總結中國抗疫經驗
    香港醫療專家:白皮書總結中國抗疫經驗 2020-06-08 19:34:19 作者:黃鈺涵 責任編輯:黃鈺涵   (抗擊新冠肺炎)香港醫療專家:白皮書總結中國抗疫經驗
  • 2020護網參考學習 關於護網行動的總結
    本次復盤基於我對整個護網行動的觀察總結而來,僅代表我個人觀點,如有不妥之處,歡迎交流。1. 整體攻防的思考 本次攻防,從規則到各方實力,都是絕無僅有的。經常有人問,是攻擊隊厲害還是防守隊厲害?經過我這些年的思考,還是沒有得出一個確切的結論。
  • 聊聊AWD攻防賽流程及準備經驗
    下一輪刷新後,如果還存在該漏洞,可以繼續利用漏洞獲取 flag 進行得分。通常來說,如果攻防賽時間比較短的話,一般只會考核 Web 、資料庫的滲透、已有漏洞的利用;如果時間較長,很可能還需要做內網滲透,由於這塊比較深入,這篇文章暫時不講,(因為我自己也不太會。
  • 益生菌如何補充?總結4個獲取來源,前三個很多人吃過
    那麼,對於益生菌,我們日常生活中,有沒有哪些比較方便的獲取來源呢?本期文章,咱們就益生菌的作用及其獲取來源,來具體聊一聊,希望能幫助大家對益生菌有一個更深層次的認識。益生菌是何物?簡單的理解,益生菌是一類有益的活性微生物,其最大的一個特點,是能夠產生確切的健康功效,從而幫助改善宿主的微生態平衡。