




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、ASP腳本攻防手冊一、技術(shù)背景簡介隨著互聯(lián)網(wǎng)絡(luò)的飛速發(fā)展,各種各樣的大小網(wǎng)站不斷地涌現(xiàn),在這些大小網(wǎng)站中,動態(tài)的網(wǎng)站以其實用性、多樣性占據(jù)了絕對的優(yōu)勢。在動態(tài)網(wǎng)站中,站長多是以ASP、PHP和JSP腳本為系統(tǒng)架設(shè)的。從目前國內(nèi)的情況看,ASP系統(tǒng)因其易用性,兼容性(也不排除微軟壟斷的原因),再加上網(wǎng)上ASP源碼的豐富,深受各個站長青睞,這一點通過搜索可以很清楚地顯示出來。(如圖1、2)是分別用google和百度搜索ASP系統(tǒng)的常見關(guān)鍵字.asp?id=1的結(jié)果。正是由于ASP系統(tǒng)在互聯(lián)網(wǎng)上廣泛的應(yīng)用,針對ASP系統(tǒng)的腳本攻擊最近鬧得是紅紅火火。在這些攻擊中,攻擊者多是利用注入、暴庫、旁注、co
2、okies欺騙等手段獲取管理員的權(quán)限,然后通過后臺取得webshell控制整個站點,繼而通過webshell提升權(quán)限獲取服務(wù)器管理權(quán)限。小知識:什么是webshell?webshell就是一個相應(yīng)腳本語言編寫成的,具有在線編輯、刪除、新增文件、執(zhí)行程序及SQL語句等功能的腳本文件,如著名的海洋頂端就是這樣一個文件。(如圖3所示)腳本攻擊之所以會鬧得紅紅火火,正是因為這門技術(shù)掌握簡單,又加之許多傻瓜化的工具的出現(xiàn),深受廣大菜鳥的喜愛,同時也是各牛人們在服務(wù)器系統(tǒng)漏洞越來越少的今天入侵的另一妙法。本書通過攻防兩方面的詳細講解及一些防范工具的安全問題,加上本人學(xué)習(xí)中的一些心得體會,力求讓廣大菜鳥們對
3、腳本攻擊技術(shù)有一個全面的了解,希望廣大菜鳥們能喜歡。因芒果我技術(shù)有限,其中有什么錯誤還望牛人們指正。二、攻擊篇俗話說得好,知已知彼,百戰(zhàn)不殆。有攻才有防,現(xiàn)在我就帶領(lǐng)大家走進腳本攻擊之旅,相信大家看完這部份后也能使眾多的ASP站點在你面前哄然倒塌哦!好了!先來看我們攻擊的總目的,那就是獲取webshell,然后提權(quán)!廢話少說,下面我們正式開始我們的腳本攻擊之旅!(一)暴庫一般而言,我們要獲取一個站點的shell,必須先獲得對方的后臺管理權(quán)限,要獲得對方的管理權(quán)限當(dāng)然先要得到對方的管理員用戶各種密碼了!得到對方管理員用戶各種密碼的方法有很多,最方便的當(dāng)數(shù)暴庫了。常見的暴庫方法有conn.asp法
4、和%5C大法,不知道是什么東東?。繘]關(guān)系,往下看你就知道了。我們先從conn.asp說起,conn.asp是一個很古老的暴庫方法,它是通過直接訪問數(shù)據(jù)庫連接文件conn.asp使服務(wù)器產(chǎn)生錯誤,通過服務(wù)器返回的錯誤信息提示暴出數(shù)據(jù)庫地址的。(如圖4、 5)所示就是用conn.asp分別暴出動力系統(tǒng)用戶和管理員數(shù)據(jù)庫的例子。小知識:什么是數(shù)據(jù)庫連接文件conn.asp。數(shù)據(jù)庫連接文件是對數(shù)據(jù)庫調(diào)用的一個文件,里面包含有被調(diào)用數(shù)據(jù)庫的路徑及數(shù)據(jù)庫名等,如調(diào)用的是SQL數(shù)據(jù)庫,則還會含有SQL連接用戶名和密碼等內(nèi)容。另外,數(shù)據(jù)庫連接文件并不都是conn.asp的,有的系統(tǒng)可能會用其它名字,但大多數(shù)是
5、用conn.asp的,這里我們只是用conn.asp代替類似文件。直接訪問conn.asp為什么能暴出數(shù)據(jù)庫地址呢?那是因為conn.asp與調(diào)用文件相對路徑出錯了。小知識:什么是相對路徑,絕對路徑?相對路徑就是相對于服務(wù)管理web根目錄的路徑,如服務(wù)器的web根目錄為D:,這個目錄有一個inc目錄,那么我們在訪問inc目錄時只須在瀏覽器中輸入/inc而不用輸入/,這個inc就是相對于為根目錄的一級目錄,而在這里這個inc的絕對路徑為D:inc,為二級目錄。這樣讀可能大家會不太明白。我們還是再來看前面的動力系統(tǒng),動力的conn.asp是放在根目錄下的inc目錄運行的
6、,而許多調(diào)用conn.asp的文件都是在根目錄下運行的,因此,考慮到執(zhí)行目錄的不同,conn.asp中數(shù)據(jù)庫的相對地址是寫成“數(shù)據(jù)庫所在目錄/數(shù)據(jù)庫名”的,我們來看動力默認的conn.asp代碼,其中一句表示的就是數(shù)據(jù)庫的路徑。當(dāng)conn.asp被根目錄下的其它文件調(diào)用時,其連接的是根目錄中data目錄下的 *.mdb文件,而當(dāng)我們直接訪問inc目錄下的conn.asp時,根據(jù)conn中的內(nèi)容,服務(wù)器會去請求連接inc目錄下沒有data目錄,相對路徑就變成了inc/data/ 。因為inc目錄下沒有data目錄和 文件,服務(wù)器當(dāng)然會報錯了,圖5中的錯誤提示內(nèi)容。很明顯,它說的是inc下的dat
7、a*.mdb不是有效路徑,而inc是我們當(dāng)前所在的目錄,所以我們只須把inc后的路徑換成相對路徑貼到web根目錄就是數(shù)據(jù)庫的路徑了,這里我們得到的數(shù)據(jù)庫路徑為/dada/*.mdb,直接訪問這個地址,看是不是可以直接下載了?。ㄈ鐖D6所示)。下面我們再來看%5C大法。對一些網(wǎng)站,我們只需要把站點url的最后一個“/”改為%5C就能暴出站點數(shù)據(jù)庫(如圖7)所示就是用這種方法暴出的數(shù)據(jù)庫。為什么%5C大法能暴出數(shù)據(jù)庫地址呢?開始我也不是很明白,但后來參考了一下相關(guān)的文章,自己弄了一下IIS設(shè)置,大致地明白了%5C暴庫的原理。要明白為什么%5C大法能暴庫首先要明的%5C代表的是什么東東。
8、其實,%5C就是16進制代碼中的“”,但如果我們直接在瀏覽器中提交“”,IE會自動把“”轉(zhuǎn)換為“/”,而提交“%5C”是不會被轉(zhuǎn)換的,最后%5C已經(jīng)編譯仍是表示“”的意思。為什么遇到“”就能暴出數(shù)據(jù)庫呢?還記得我說conn.asp暴庫時最初是怎么說的嗎?conn.asp暴庫是相對路徑出錯,IIS報錯信息就暴出了站點數(shù)據(jù)庫。而%5C就是絕對路徑出錯而引起暴庫的。一般地,在conn.asp中都會有這么一個語句:dbpath=server.mappath(“data/data.mdb”),其中server.mappath的作用就是把相對路徑轉(zhuǎn)換為絕對路徑,只有經(jīng)過轉(zhuǎn)換,服務(wù)器才能正確讀寫數(shù)據(jù)據(jù)。se
9、rver.mappath讀取的絕對路徑的方法是這樣的,假設(shè)IIS根目錄為D:,在這個目錄下有一個bbs文件夾,一套ASP論壇系統(tǒng)就放在這個文件夾中,該論壇系統(tǒng)的數(shù)據(jù)庫路徑為data/data.mdb,那么server.mappath讀取的路徑就為IIS根目錄+相對路徑,即D:bbsdatadata.mdb.而IIS還有一個特殊的功能,就是虛擬目錄。還是上面的例子,不過這次bbs目錄還在D:下,而是在E:bbs,但通過IIS的虛擬目錄設(shè)置,我們?nèi)阅馨裝bs視為是在下的。不過這時的目錄指向的是一個物理路徑,IIS為了解決虛擬目錄也能正常訪問的問題,優(yōu)先查詢了每個目錄是否指向了一個物理路徑,而這種查
10、詢是以“”做為標志的。現(xiàn)在我們可以知道%5C暴庫的原理了。當(dāng)IIS遇到了%5C,即是“”時,IIS就會以為遇到了一個虛擬目錄,便停止向上解析了。如果網(wǎng)站的數(shù)據(jù)庫是在D:bbsdatadata.mdb,而遇到“”后就會被解析為D:datadata.mdb,因為下沒有data文件夾和datadata.mdb文件,所以IIS就會報錯,我們的目的就達到了。下面是暴庫過程中的一些常見問題及解決方法。1、暴庫時并不顯示錯誤,而是Http500錯誤。這個問題嗎其實很簡單,那是你自己沒有對IE進行設(shè)置所致。打開IE,到工具internet選項高級處把顯示友好的http錯誤信息前的“”去掉,應(yīng)用后刷新頁面看看,
11、數(shù)據(jù)庫地址出來了吧?(如圖8)2、暴出的數(shù)據(jù)庫是以.asp結(jié)尾的,下載不了。呵呵,其實.asp的數(shù)據(jù)庫也是可以下的,我們只須將數(shù)據(jù)庫地址復(fù)制下來,用網(wǎng)際快車等工具就可以下載了。不過,有的數(shù)據(jù)庫中專門建了一個防下載的表,里面寫了一條錯誤的ASP的語句,一般是,這時如果把數(shù)據(jù)庫改為asp后綴的就下不了了。(如圖9、10)3、爆出的數(shù)據(jù)庫中含有“#”號,下載不了。這個嗎,也是可以解決的。還記得說%5C暴庫原理時說過%5C其實是“”的16進制代碼嗎?同樣的,我們也可以用“#”的16進制代碼%23代替“#”,這樣數(shù)據(jù)庫不就可以下載了嗎?(如圖11)。4、ASP的數(shù)據(jù)庫下載回來后無法打開或下載回來的數(shù)據(jù)庫
12、打開要密碼。ASP的數(shù)據(jù)庫當(dāng)然無法打開了,你只須把它的后綴改為mdb就可以了??!如果打開數(shù)據(jù)庫要密碼可以找一些ACCESS密碼破解的工具,ACCESS的密碼是很好破的。5、我在網(wǎng)吧上網(wǎng),沒ACCESS怎么打開數(shù)據(jù)庫?可以用輔臣數(shù)據(jù)瀏覽器打開。6、我遇到了一個超BT的網(wǎng)站,數(shù)據(jù)庫中管理員密碼全是16/32位無規(guī)律的密碼,而且我一個個輸入后都說我的密碼不對,怎么回事?。繒灲^,那16/32位的密碼是經(jīng)md5加密的,我們可以用一個md5破解工具把密碼還原(如圖12),不過md5可不是那么好破的東東哦。7、數(shù)據(jù)庫明明是.mdb的我卻下載不了。這個問題在非安全第5期提過,這時你可以用工具下載試試,如果還不
13、行那就是可能是數(shù)據(jù)庫是位于虛擬目錄中的,那就沒辦法了。8、我用%5C暴庫顯示“處理url錯誤,請與系統(tǒng)管理員聯(lián)系”,用conn.asp暴又一片空白。用conn暴庫一片空白是因為conn中加了容易錯語句,而顯示“處理url錯誤,請與系統(tǒng)管理員聯(lián)系”則是服務(wù)器屏敝了錯誤信息顯示,這時暴庫就沒有用了。(二)注入在眾多針對腳本系統(tǒng)的攻擊中,注入可謂是鬧得最紅火的攻擊手段了。那么什么是注入攻擊呢?來自官方的說法是:“當(dāng)應(yīng)用程序使用輸入內(nèi)容來構(gòu)造動態(tài)SQL語句以訪問數(shù)據(jù)庫時,會發(fā)生SQL注入攻擊。如果代碼使用存儲過程,而這些存儲過程作為包含未篩選的用戶輸入的字符串來傳遞,也會發(fā)生SQL注入攻擊。SQL注入
14、可能導(dǎo)致攻擊者能夠使用應(yīng)用程序登錄在數(shù)據(jù)庫中執(zhí)行命令。如果應(yīng)用程序使用特權(quán)過高的帳戶連接到數(shù)據(jù)庫,這種問題會變得很嚴重?!蹦壳耙餝QL注入的原因主要是程序員在編寫帳腳本程序時對特殊字符過濾的不完全引起的,因為一個腳本系統(tǒng)中文件眾多系統(tǒng)開發(fā)人員不可能每一個文件都考慮得十分周全,這樣使我們有機可趁了。加上注入攻擊的易學(xué)易用性,使得最近的注入攻擊成風(fēng)。說了這么多還沒玩過注入攻擊的朋友們是不是躍躍欲試了呢?好,下面我就帶領(lǐng)大家開始我們的注入之旅。(1)工具篇由于注入攻擊的興起,越來越多的注入攻擊工具也隨之出現(xiàn)了,而且這些工具也越來越傻瓜化,深受我們菜鳥的喜愛。下面我們就先講講怎么利用工具來實現(xiàn)注入攻
15、擊吧。注入攻擊的工具有很多種,這里我推薦大家用小竹的NBSi2,教主的HDSi和阿D的注入工具以及小榕的wedtwis圖形版,這幾種工具的界面分別如圖13-16所示,下面我將主要以NBSi2進行講解,其它幾個工具的使用也是類似的,大家會用NBSi2就可以了。下載NBSi2后我們需要把NBSi2文件夾中system32內(nèi)的文件復(fù)制到系統(tǒng)文件夾的system32內(nèi),win9X的可以放到system內(nèi),運行NBSi2登錄后,我們就可以看到圖13所示界面。這個界面是注入分析界面,如果我們知道一個注入點就可以在注入地址處填入注入點的url。現(xiàn)在我們不知道哪個地址可以注入,我們就可以來到注入掃描界面(如圖
16、17),在掃描地址那里我們填上欲掃描網(wǎng)站的url選全面掃描,然后點開始掃描,不一會下面就會列出可能存在的注入地址和注入的可能性高低如(圖18)。小技巧:如果用NBSi2掃描時掃掃不到或掃到的全是可能性低的注入點,那么我們可以試著掃/.asp?id=,這時你可能會得到一個注入可能性高的注入點。我們選擇一個注入可能性高的注入點,這個注入點的url會出現(xiàn)在下方的方框中(如圖19),點方根旁的“注入分析”,我們就會來到注入分析界面。開始分析后不久我們就可以得到這是一個數(shù)字型+ACCESS的注入點(如圖20)我們在表名的大方框下點擊開始猜解,這時會單出一個提示(圖21)不管它
17、,確定,不一會就會猜出表名,選擇要猜解的表名,一般是admin,然后用類似的方法猜出列名,同時選中要猜解的列,用類似的方法就可以猜出列中的數(shù)據(jù)了。(如圖22)就是我猜的管理員用戶和密碼。當(dāng)然得到的密碼也可能是經(jīng)MD5加密過的,這時我們就要破解之后才能用了。只得到用戶名和密碼如果不知道后臺地址也是沒用的。那么我們就對該站的后臺進行掃描吧。NBSiZ雖說也帶有掃描功能,但因為它的字典不夠強大,這里就以HDSI為例了(如圖23)所示,打開HDSI后選擇“后臺地址掃描”,在掃描地址處填上站點url .com,然后點開始掃描,不一會就會在中間的框中迅速閃過被掃描的地址,地址后面有一個用中括號括起來的數(shù)字
18、,404表示頁面存在,403表示禁止訪問,500表示頁面錯誤,200表示頁面存在,302表示頁面有轉(zhuǎn)向,如果我們直接用瀏覽器訪問上進幾種情況的頁面會出現(xiàn)圖24-28所示的頁面。掃描結(jié)束后,HDSi會把可能存在的后臺地址列到下方的框中(如圖29),如果沒有掃描后臺則會列出你所填的掃描地址(如圖30)。好了,找到后臺我們就可以用得到的用戶和密碼登錄后臺管理了,至于進了后臺除了刪文章發(fā)發(fā)公告和來嚇嚇管理員還有什么用,我們后面再說。上面說的是針對ASP+ACCESS的注入,其實注入攻擊最好玩的還是SQL注入,跟ASP+ACCESS的注入一樣,ASP+MSSQL的注入在經(jīng)過NBSi2的掃描檢測后也可以直
19、接去讀數(shù)據(jù)庫的信息,但對SQL的注入而言,這么做顯然是不見誘惑的,因為SQL的注入我們可以做更多的事。在檢測到一個網(wǎng)站有SQL的注入點時,NBSi2通常出現(xiàn)(如圖31)所示的界面,我們注意看這個界面ACCESS注入時的不同,它在上面多了一個小框,上面寫出了當(dāng)前的數(shù)據(jù)庫名,連接帳號及權(quán)限等信息。在這里我遇到我是Sa權(quán)限,比系統(tǒng)管理員權(quán)限還大!現(xiàn)在我們不去掃用戶數(shù)據(jù)去干什么呢?當(dāng)然有得玩了!我們先用NBSi2的SQL弱口令掃描功能看看(如圖32),這次我很幸運,遇到了臺sa連接且口令為空的扒器,馬上搬出SQL連接器吧,(如圖33)所示,我們填上連接IP,用戶名Sa,密碼為空,好了,連上去了,趕快執(zhí)
20、行命令把自己升為系統(tǒng)管理員吧!然后再開個3389或telnet,呵呵,恭喜你,又抓到一員小雞了。如果沒有SQL弱口令怎么辦呢?沒問題我們還可以用NBSi2的另一個功能執(zhí)行我們的命令。雖然現(xiàn)在遇到的服務(wù)器SQL沒有弱口令,但用NBSi2掃得的結(jié)果中我們知道當(dāng)前用戶是具有Sa權(quán)限的,這時我們可以用NBcommander命令執(zhí)行器執(zhí)行命令。選擇“掃描及工具”“Nbcoommandaer命令執(zhí)行器”,如圖33所示,然后來到了(圖34)所示的NBcommander命令執(zhí)行器界面,在“注入地址”中輸入注入點鏈接,并選擇注入類型,然后句選“嘗試回顯結(jié)果”及“執(zhí)行Dos命令”項,并在“命令”中輸入執(zhí)行的系統(tǒng)命
21、令,這里我要服務(wù)器開啟了什么系統(tǒng)服務(wù),就輸入了“netstal-an”點“執(zhí)行”后,即可看到服務(wù)器上,此時打開的服務(wù)了(圖35)。怎么樣,現(xiàn)在可以執(zhí)行任意命令了吧?什么,用慣widws記不得這么多Dos命令?暈!不用急,NBSiZ很照顧小菜的。我們在“NB commander命令執(zhí)行器”中句選“執(zhí)行Dos命令“后,NBSiZ會自動彈出常用的DOS命令,句選執(zhí)行SQL命令也同樣會彈出常用的SQL命令(如圖36、37所示)。怎么樣,這回直接選就行了吧,不用記那么多命令了。上面說的都是基于Sa權(quán)限的命令執(zhí)行,如果遇到一個沒有Sa權(quán)限的機器呢?沒關(guān)系,其實只要有Pablic以上的權(quán)限,我們就能遍歷服務(wù)
22、器的文件了。這時,我們要請出NBSi2另一個實用的工具“MBTreelist”了,還是從“掃描的工具”中打開“NBTreelist”,我們來看(圖38)所示頁面。勾選右邊“文件”和“文件夾”項,然后在“輸入路徑”中輸入要查看的磁盤路徑。點列目錄,慢慢,不要急,先去泡碗面吃了回來先。吃飽了,回來也就看到了列出的目錄信息了(如圖39)。通過這個工具,我們就可以了解服務(wù)器上裝了什么軟件,數(shù)據(jù)庫在哪等信息了,是不是行實用呢?(2)手動篇毛主席說得好:“自己動手,豐衣足食”(哪來的雞蛋?不要浪費國家糧食啊?。┲挥霉ぞ呤怯肋h得不到提高的。所以我們還要學(xué)會手動注入。說起手動注入,就不得不說一個很高笑又很經(jīng)典
23、的漏洞。雖然這個漏洞現(xiàn)在已經(jīng)很罕見了(其實也很常見的,前段時間我還在某知名大學(xué)計算機系的網(wǎng)站發(fā)現(xiàn)該漏洞,更搞笑的是這個大學(xué)還開有信息安全專業(yè),汗),但卻十分實用。我們找到一個站的管理入口后,要以嘗試在用戶名和密碼處都輸入or=(如圖40),怎么樣,直接進入后臺了吧?類似的漏洞還有在用戶名處輸入管理員的用戶名,如admin,密碼處輸入一個SQL語句,同樣可以通過驗證,常見的這類語句有aor1=1- or1=1- or1=1- or1=1- or a =a or=a=a ) or ( a = a 等。好了,還是說說常規(guī)的生動注入吧。我們打開一個類似/asp?id=的url后,先在這個
24、url后加個單引號,變成/.asp?id= ,如果出現(xiàn)錯誤提示(圖41),則說明可能存在注入漏洞。然后分別提交/.asp?id=and 1=1和/.asp?id=and 1=2,兩次返回的頁面不同,則說明有注入漏洞,我們就能開展下一步的行動了。(如圖42、43)下面先以ACCESS的數(shù)據(jù)庫為例說說怎么手動猜數(shù)據(jù)庫內(nèi)容:我們先來猜數(shù)據(jù)庫的表名,猜表名的語句為在注入點后加上“and exists (select count from 表名)”還是以www.-com/.asp?id=為例,如果我猜這個站的數(shù)據(jù)庫中有個名為123的表,那就提交www. .com
25、/.asp?id= and exists (select count from 123),結(jié)果返回錯誤頁面(圖44),說明數(shù)據(jù)庫中沒有123這個表,那我再猜有沒有admin這個表,于是提交如下語句,/.com/.asp?id= and exists (select count from cdmin),返回正常頁面圖45),說明存在 admin表,我們可以繼續(xù)猜列名。小提示:常見的表名有:admina_adminx_adminm_adminadminuseradmin_userarticle_adminadministratormanagemanagermembermemberli
26、stuserusersuserinfouser_infoadmin_userinfouserlistuser_listlogin用戶密碼會員登錄moviemoviesnewspasswordclubconfigconfigcompanybookartbbsdv_admin等。好,猜出存在admin表后,我們就可以猜到列名了,猜列名的語句是“and (select count(列名)from表名)0。同樣的,如果返回錯誤,則說明此列不存在,如果返回正常,則存在此列。我這里提交的是/.asp?id= and (select count (username)from admin)0,返
27、回正常,繼續(xù)猜,可知admin表中還有Password和id這兩個列。小提示:常見的列名有:idadminadminidadmin_idadminuseradmin_useradminuseridadmin_useridadminusernameadmin_usernameadminnameadmin_nameadminpwdadmin_pwdadminpassadmin_passadminpasswordadmin_passwordadministratoradministratorsusrusr_nusrnameusr_nameusrpassusr_passusrnamncuiduseru
28、seriduser_idnameusernameuser_namepassuserpassuser_passpassworduserpassworduser_passwordpwduserpwduser_pwduseradminuser_adminpwordp_wordpasswdpass_wdyonghu用戶用戶名mima密碼dwoklook等。好了,猜完表名和列名,我們就該猜列長度了,猜解語句為:and (selct top l len(列名)from表名。其中是數(shù)字,我們需要變換這個事猜列長度,如這里我提交./.asp?id= and (selct top l len (u
29、sername) from admin1、2、3、4都返回正常,猜到5時出現(xiàn)錯誤提示,說明正經(jīng)列長度為5,另外,變換top后的數(shù)字就可以猜此列的第N行長度了。激動人心的時候到了,我們要猜用戶名和密碼了。猜用戶名和密碼需要用ASC和Mid函數(shù)。用Mid(列名,N,1)截取第N位字符,再用ASC mid(列名,N,1)得到ASCLL碼。這里變換N可得到用戶名或密碼的第N位的ASCLL碼,猜用戶名/密碼的語句為:and (selelt top l asc(mid(列名N,1)) from表名),為ASCLL碼,top后數(shù)字為該列第N行。這里我提交www. .com/.asp?id= and ( se
30、lect top l asc(mid (username, N,1) from admin)10,返回正常,繼續(xù)提交50,正常100,顯示錯誤,提交90,正常一直到96正常,97顯示錯誤,得到用戶名第一位ASCLL碼為97,然后打開ASCLL碼轉(zhuǎn)換器(如圖46),得知第一位是a,變換N值可猜出用戶名為admin,變換列名可得密碼。我們可用NBSi2試試,猜解的結(jié)果是一樣的(圖47)。我們可以看到,對ASP+ACCESS的注入主要是靠猜測和運氣,如果遇到一個常見的系統(tǒng)我們就可以下載源碼看數(shù)據(jù)庫中的表名和列名,從而直接猜用戶名和密碼,費時又費力。但對ASP+MSSQL的注入就不同了,它不但可以直接
31、爆出表名和庫名,還能直接執(zhí)行一些命令,修改數(shù)據(jù)庫等。怎樣,心動了吧?下面就跟我來一起玩SQL的注入吧。還是以./.asp?id=為例,如果用單引號,and 1=1和and 1=2檢測到這個網(wǎng)站有漏洞,并以加單引號返回的錯誤信息中得知這個站用的是SQL的數(shù)據(jù)庫(圖48),那么我們可以提交這么一個語句: having 1=1-可得到另一個錯誤信息,這里我提交www. .com/.asp?id= having 1=1-,返回如圖49所示頁面,其中admin.id就是一個表名admin 一個列名id。 繼續(xù)提交www. .com/.asp?id= group by admin .id h
32、aving 1=1-可得到另一個列名username,繼續(xù)提交www. .com/.asp?id= group by admin.id , admin .username having 1=1-,就能爆出另一個列名password(如圖49、50)。 用類似的方法提交直到不再報錯,我們就能得到當(dāng)前表的所有列名為id、username、psaaword上面這個方法的原理為:在SQL語句中,hving 1=1-是與group by結(jié)合使用進行條件判斷的,如果語句不完整,數(shù)據(jù)庫會返回錯誤信息,并顯示一個表名和一個列名。但上面的方法只能暴當(dāng)前表中的列,下面我教大家一個爆任意表名和列名方法。此方法的相關(guān)
33、語句為and (select top l name from (sekect topNid,name from sysobjects where xtype=char(85)T order by id desc)1其中N代表數(shù)據(jù)庫中的第N個表,這里我們來提交:./.asp?id= and (select top l name from (select top 10id,name from bysobjects where xtype=char(85) T order by id desc)1這時就可以暴出一個表名為admin的表,(如圖51)要爆任意表名中的任意列名,語句為:an
34、d (select top l col_ amelobject_id(表名),N from sysobjects)1,我們這里提交:www. .com/.asp?id= and (seclect top 1 col_namelobjet_id ( admin,1) from sysobjects )1,返回(如圖52)所示,我們就可以知道第1個列名為id了。(其中M為第M個列名)。好了,現(xiàn)在爆出了表、列名我們就可以讀其數(shù)據(jù)庫中的數(shù)據(jù)了,這個命令的相關(guān)語句為:and (select top 1 列名from 表名where id=N1,其中N代表第N條數(shù)據(jù),這里我們提交/.asp?
35、id= and (select top 1 asernaose from admin where id =1)1,就會顯示如圖52所示情況,我們就知道了admin表中username第1條款數(shù)據(jù)為admin,用類似的方法我們還能直接讀出密碼,怎么樣,方便多了吧?如果是ASP+ACCESS的,我們得到用戶名和密碼也就完成了,但SQL的功能可大得多了,想想你有沒有因為密碼是md5加密過的破不出來而煩惱???在SQL的注入中,你完全不用擔(dān)心這個,因為SQL的注入是可以修改數(shù)據(jù)庫任意數(shù)據(jù)的,相關(guān)語句因為:“updata表名set列名=內(nèi)容where id=cf 如果我們這里提交www. .com/.as
36、p?id=”;updata admin set password=123 where id =1”我們就id為1的管理密碼改為123了,當(dāng)然我們也可以新增一個管理員相關(guān)語為:“;insert into 表名valaes(內(nèi)容)-,如我們提交www. .com/.asp?id=”;inert into admin valaes (123) 就能能往admin中寫入123了。另外,SQL的注入還可以利用許多擴展功能,現(xiàn)在我只舉幾個常用的。1、判斷當(dāng)前數(shù)據(jù)庫權(quán)限www. .com/ asp?id=and user0返回(圖53),其中值dbo就是讀當(dāng)前為dbo權(quán)限。2、獲得當(dāng)前數(shù)據(jù)庫名www. .c
37、om/.asp?id= and db_name( ) 0,返回(圖54),值“admin”表明當(dāng)前連接數(shù)據(jù)庫名為admin。添加系統(tǒng)帳戶并提權(quán):www. .com/.asp?id=; exec master . xp_ cmdshell ” net user 123 123 /add. 添加用戶名123, 密碼123用戶。www. .com/.asp?id=; exec master . xp_cmdshell ” net localgroup adminis trators 123 ladd , 把123升為管理員,其實,我們只須在xp_cmdsell后用引號寫上cmd語句就能執(zhí)行了。其實S
38、QL注入的功能是十分強大的,我就不再多說了,大家日后自己慢慢體會吧。(3)常見問題:我用NBSi2檢測時提示暫來檢測到注入漏洞,要我輸入特征字符怎么辦?用手動注入,and 1=1和and 1=2檢測,前后不同的字符便是特征字符,找一部份填進去,再檢測就可以了。服務(wù)器做了錯誤信息屏蔽,看不到報錯處息怎么辦?這個對ASCCES的注入影響不大,看它什么時候出錯就行了,對SQL注入會有點阻礙,可以用NBSi2代勞。我輸入一個單引號就說我非法注入,還記了我IP,我好怕??!有什么辦法嗎?(圖55)這是加了防注入通用程序,想直接注入恐怕不行,但可以從這個程序本身的漏洞攻擊,具體下面會講到。我找了很久也找不到
39、注入點,怎么辦?你可以看看一些容易被忽略的地方,如打印、編輯、資料修改、自定義頭像搜索等。如實在找不到可以用下面進的其它方法。(三)旁注及cookies欺騙(1)旁注說起旁注,其實也就是看同臺服務(wù)器上是否綁有多個站點,如果綁有多個站點,那么就算其中一個站點的腳本做得很安全,也可以從另一個站點進行突破。我們說的旁注一般指的是綁了不同域名的不同站點上的旁注,這里我稱為廣義上的旁注。其實,還有一種由于同一站點內(nèi)使用了多套不同程序,其中一套也許比較安全,但另一套卻是有漏洞的。這里我稱之為狹義的旁注。如動力3.51+dvbbs7.1的站點中,dvbbs7.1也許比較安全,但動力3.51漏洞百出,這就是狹
40、義旁注利用的一個例子。關(guān)于狹義的旁注比較好理解和利用,我這里就不多說了,只是說一下一個極易被管理員忽略的狹義旁注的利用就可以了。這個容易被人忽略的地方是ewebeditor,ewebeditor是一款優(yōu)秀的基于網(wǎng)頁的在線編輯器,很多系統(tǒng)都會選擇它作為第三方插件,實現(xiàn)在線編輯的功能。但是,許多站長并不知道自己下的系統(tǒng)中還包含有ewebeditor,所以是很少有人會去改它的默認管理員用戶名、密碼數(shù)據(jù)庫路徑的,這就給我們帶來了入侵的機會。怎么判斷一個系統(tǒng)有沒有用ewebeditor呢?如圖56所示,如果有圖中標記處的按扭出現(xiàn)的系統(tǒng)就大致可以確定該系統(tǒng)是用了ewebeditor。好了,下面在出現(xiàn)圖56
41、所示頁面的地方直看源代碼,我們現(xiàn)在得到了ewebeditvv的路徑為edit,訪問www. .com/edit/admin_login.asp,來到圖57所示頁面,用默認用戶名admin,密碼admin試試是不是進去了???(圖58)。如果不行,那就試試訪問www. .com lelit/db/ewebeditor.mdb,看是不是能下載ewebeditor的數(shù)據(jù)庫了呢?(圖59)不過密碼是md5的,又要慢慢破了。簡單提了一下一個容易被人忽略的ewebeditor,下面要開始講我們通常講的廣義上的旁注了。引起這個旁注的原因,主要是因為我們現(xiàn)在使用的DNS域名是需要統(tǒng)一向總部位于美國的國際域名組織
42、進行注冊的,而國際域名組織為了方便管理等原因,將域名的信息放到了whois查詢系統(tǒng)中,這樣,只要用whois就能查出某域名解析的IP是什么了,得到解析的IP后,我們可以繼續(xù)通過whois的查詢功能,在域名記錄里尋找到所有解析到這個IP的域名信息,這樣我們就可以知道一個服務(wù)器上綁了多少個站點了。下面我們來具體實踐一下,就拿我的開刀吧。首先打開,(如圖60)所示,在框中輸入,點Go,來到(圖61)所示頁面,得到CNN安全網(wǎng)的IP,然后再點那個IP,就會來到(圖62)所示頁面,還綁有幾個域名在這里的嗎,呵呵,下面就可以看看其它站有沒有什么詞了,如果E文不好,也可以用老兵的工具查詢,步驟是一樣的(圖6
43、3-65)。找到在同一服務(wù)器上的站后就用前面的方法檢查站點安全性吧。(2)cookies欺騙現(xiàn)在有很多系統(tǒng)為了方便網(wǎng)友瀏覽,都使用了cookies技術(shù)以避免多次輸入用戶名和密碼等信息,那么,我們只要對服務(wù)器遞交給用戶的cookie進行改寫,也就是cookies欺騙,以達到欺騙服務(wù)程序的目的。小知識:什么是cookies?cookies是一小段文本信息,伴隨著用戶請求和頁面在web服務(wù)器和瀏覽器之間傳遞。用戶每次訪問站點時,web應(yīng)用程序都可以讀取cookies包含的信息。使用cookies能夠達到多種的,所有這些目的,所有這些目的都是為了使web站點記住你。上面我們大致了解了一下cookies
44、欺騙的原理,下面我們來看一下它有成因,cookies欺騙的成因一般是對cookies的驗證不嚴,如當(dāng)年動網(wǎng)6.0的欺騙和前段時間leadbbs3.14插件美化版的欺騙。其中l(wèi)eadbbs3.14插件美化版的欺騙猶為嚴重,居然可以直登錄后臺,讓我這個leadbbs的忠實fans著實心寒了一天晚上(第二天得知有漏洞的是美化插件版,而官方的3.14a補丁N年前就補了這個洞,汗)。為了大家對這個驗證不嚴造成的cookies欺騙有感性的認識,征得偶朋友“白天的描FST”的同意,現(xiàn)將它寫的對lead欺騙的文章引用如下:經(jīng)多次測試及在火狐兄弟們的幫助下,發(fā)現(xiàn)在Leadbbs 3.14美化插件版能欺騙成功(官
45、方說是在某一時段發(fā)布的leadbbs3.14論壇存在這個漏洞,估計美化的人正好下了那一時段的版本。),而非美化插件版試了十多個論壇了都不行!所以這次的目標是Leadbbs美化插件版。首先在百度上輸入關(guān)鍵字 下載 leadbbs美化插件版,,呵呵,為什么要打這個關(guān)鍵字呢?等會你們就明白了。搜索出了一大堆葉子,隨便點了一個下面頁面,看到了程序的演示地址,目標就是它的演示地址。進到演示地址的那個論壇,用注冊了一個帳號,這時拿出mini瀏覽器,在中填入論壇地址,點get,但當(dāng)頁面打開到一半時突然出現(xiàn)奇怪的現(xiàn)象,如圖,根本無法登陸。難道說他們早已發(fā)現(xiàn)這個漏洞然后自己開發(fā)出了補???反復(fù)試了幾次還是這樣,后
46、來查看了一下論壇首頁的代碼,發(fā)現(xiàn)原來是太極鏈計數(shù)器搞的鬼,嘿嘿,不怕,回到mini瀏覽器,點擊settings這個選項,在 show GET-Dialog這項前面打上鉤,再在URL上輸入論壇地址,點get,當(dāng)頁面載入一半時出現(xiàn)了一個框框,圖,這時只要點cancel就不會發(fā)生圖一這種現(xiàn)象了。下面開始欺騙,在管理團隊中找到總斑竹的,在mini瀏覽器上選擇cookies這項,看到cookies是這樣的:gbtoyAtBD=0; path=/ASPSESSIONIDAQDRRDBD=DMMBDEPBNOGCKDGKBKEHGHAN; path=/gbtoyTime=2005%2D3%2D25+19%3
47、A48%3A19; path=/gbtoy=pass=111222333&user=%B0%D7%CC%EC%B5%C4%C3%A8; path=/其中user=后面的就是了,把總斑竹的換上去,先點一次get,沒反應(yīng),再點一次post,呵呵,比較變?yōu)榭偘咧窳藞D3,接著在上輸入 _blank rel=nofollow,這個是leadbbs的默認后臺管理地址,點get,進后臺傳馬去了。怎么樣,可怕吧?其實,即使是驗證沒問題,還是可能造成cookies欺騙的。其實對cookies的欺騙無外乎就是用戶名和密碼,以BBSXP為例,登錄后,我們提取用戶名為光芒果,密碼為123456的用戶的cookies為
48、:其中usetname=“后面的就對應(yīng)用戶名光芒果,“passmrd=”后面的就對應(yīng)123456的MD5密碼,有些cookies中還會包含url,這也是可以明顯看出來的。前段時間BBSXP5.15不是傳出個blog.asp的漏洞嗎?其實這個漏洞是我首發(fā)的,只不過大過年的沒有深入研究,告訴yuzi它又置之不理,活該它倒霉?,F(xiàn)在我們拿出BBSXP暴庫工具,(如圖69)所示,輸入注入點符信息,點破解,嘿,區(qū)長的Md5是不是出來了???(圖70),下面我們拿出老兵的修改cookies瀏覽器(圖71),登錄這個BBSXP的論壇后,點擊上方那個小鎖頭(圖72),把username=光芒果中的“光芒果”換為區(qū)
49、長的用戶名,“password=”后面的換成暴出的md5密碼。刷新,(如圖73)所示,我們變成社區(qū)區(qū)長了,神吧!對于cookies欺騙,我還發(fā)現(xiàn)了一種新的方法,就是以前臺欺騙后臺。大家也許要問我,前面那個leadbbs3.14美化插件版不是可以直接欺騙后臺嗎?不錯,但并不是所有系統(tǒng)的前、后臺的cookies都是相同的,如動力3.0,這可是個老系統(tǒng),各方面的漏洞都很多,但行到的密碼是Md5的,可不太好玩。別急,不是還有cookies欺騙嗎?先在本地架個一樣的系統(tǒng),還是用老兵的修改cookies的瀏覽器,訪問本地系統(tǒng)的后臺,提取cookies,這下我們得到了cookies的樣式,再把通過其它手段得
50、到的欲入侵站點的用戶名和密碼等替換這個cookies的相應(yīng)信息、保存起來,然后我們到欲入侵站點注冊一個用戶點“發(fā)表文章”, 然后切換到“源代碼”模式,如(圖74)所示,輸入a href=“admin_index.asp” cookies欺騙然后切換到“預(yù)覽”,把當(dāng)前的cookies改為先前保留的cookies,點擊“cookies欺騙”鏈接,(如圖75)所示,是不是進入后臺了呢?下面我們就能進行一步的工作了。關(guān)天cookies欺騙一節(jié),好像還沒人問過我什么,所以常見問題就先說了,有什么問題可以到或提出。(四)獲取webshell上面說了那么多的入侵方法,終極目的只有一個獲取webshell。下
51、面我就給大家講幾個常用的webshell獲取方法。1 上傳說到上傳獲得webshell,就不得不提大名鼎鼎的動網(wǎng)7.0SP2之前的文件上傳漏洞了,那可是連官司方都沒能幸免于難的啊!其中的成因嗎不太好說,大概地說就是字符截斷的問題。我們還是來看看怎么利用吧。這里我們要請出老兵的萬能上傳工具呢(圖76),為什么叫萬能上傳工具呢?很簡單,因為連大名鼎鼎的動網(wǎng)論壇都沒有注意到這個嚴重漏洞,其它許多系統(tǒng)自然也避免不了,所以說這個工具是“萬能”的,下面我們找一個沒打過SP2補丁的dvbbs,注冊一個帳號,登錄進去后看有沒有禁止上傳,如果沒有禁止,我們就是提取當(dāng)前cookies保存起來(怎么提???又忘了不是
52、,前面不是說過可以用修 改cookies瀏覽器提取嗎?)然后在萬能上傳工具處填好漏洞url,欲上傳的文件和cookies等信息(圖77),點“上傳”,不一會就提示成功了(圖78),我們現(xiàn)在來訪問這個上傳后的文件,看,是不是得到一個shell呢(圖79)當(dāng)然,并不是所有的系統(tǒng)都能用這個方法上傳的。下面我再總結(jié)幾個常見的上傳方法。1、進入后臺直接上傳。有些系統(tǒng)對管理員可是十分信任的哦,進了后臺只要找到有上傳的地方你就可以直接選匹馬放上去,絕不會有任意阻攔(圖80)。2、添加上傳類型上傳。如果不能直接上傳,可找找看有沒有添加上傳類型的地方,有的話添加一個ASP就可以了。當(dāng)然,有些系統(tǒng)在代碼中就限定了
53、不允許上傳ASP文件,不要緊,我們可以添加允許上傳ASA、CER等文件,然后把.asp的后綴改為ASA或CER上傳,一樣可用的(圖81)。3、抓包上傳。這里就要利用Win2000的一個小漏洞了,如果文件名的結(jié)尾是空格或“.“號,那么windows會自動把這個符號“吃”掉。那么,我們就可以添加允許上傳“ASP ”文件,注意ASP后有個空格,ASP 可不等于ASP啊,所以代碼里的限制就沒用了。然后我們來到文件上傳界面,選擇一個ASP文件,先別上傳。我們打開抓包工具Wsock Expert(圖82),選擇監(jiān)控IE的上傳窗口,然后回到上傳界面,點擊上傳,提示上傳失敗。預(yù)料之中。我們來到Wsock Ex
54、pert,找到剛才提交的數(shù)據(jù)包(圖83),看到那個mm.asp沒有,我們在這個后面加個空格,再用NC提交,成功上傳!4、利用表單沖突上傳。用這個方法最典型的就是動力3.51的上傳了。我們同樣注冊一個用戶,來到發(fā)表文章處。切換到“源代碼”模式,輸入下面的代碼: 再來到“預(yù)覽”模式,是不是看到了兩個選擇上傳文件的框卻只有一個上傳按鈕?。▓D84)?我們在第一個框處選擇一個ASP文件,第二個框處選擇一個jpg文件,然后點上傳??赡軙崾緵_突,但我們返回“源代碼”模式,就可以看到我們上傳后的Webshell地址了。5、利用代碼對文件類型的限制上傳?,F(xiàn)在許多代碼為了安全都限制了上傳ASP文件,但一些代碼的
55、限制方法實在令我不敢恭維。我見過有些代碼的限制方式是一遇到ASP就把它去掉的。那么,我們完全可以添加一個上傳類型“ASASPP”,這樣一來,在上傳過程中代碼會把中間為ASP去掉,后綴的自然也就變?yōu)锳SP的了。6、利用其它上傳工具。老兵的萬能工具雖名為萬能,但因為有些系統(tǒng)的上傳代碼與動網(wǎng)的是有差異的,所以這個工具對它就失效了。我這里還收集了別的一上上傳利用專用程序。比如去緣雅境的,操作起來也十分簡單,相信大家都會用的。(2)寫入過濾不完全,因為現(xiàn)在許多系統(tǒng)都是可以用FSO功能直接寫入其文件的,如果寫入文件的過濾不完全,也可以直接往里寫個webshell,如動易的conife.asp。這里我要講的是leadbbs后臺友情鏈接添加處寫入webshell,我們來到后臺的添加友情鏈接處,點“新增友情鏈接”(圖85),然后在“網(wǎng)站名稱處填上冰方后浪子微型ASP后門式海洋的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國單絲涂油器數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國不銹鋼保溫箱數(shù)據(jù)監(jiān)測研究報告
- 2025年軍隊文職人員招聘之軍隊文職管理學(xué)練習(xí)題(二)及答案
- 護理實習(xí)生筆試題及答案
- 商標法務(wù)面試題及答案
- 遺產(chǎn)繼承過程管理合同(2篇)
- 2023年四川公務(wù)員《行政職業(yè)能力測驗》試題真題及答案
- 小王子遇見各種星球的感悟
- 設(shè)備采購說明文書
- 2025年工程塑料及合金合作協(xié)議書
- 《基礎(chǔ)越南語2》課件第14課
- 初等模型數(shù)學(xué)建模
- 常用電氣元器件選用
- 教學(xué)課件·數(shù)字圖像處理(第二版)
- 健身房會員健康調(diào)查問卷
- (精心整理)事故后果模擬分析
- 國家開放大學(xué)電大《健康教育與健康促進(本)》期末題庫及答案
- K3-PLM售前培訓(xùn)(PPT101頁)
- 中國河流湖泊
- 建設(shè)工程廉政風(fēng)險防控手冊
- 軍事地形學(xué)知識總結(jié)
評論
0/150
提交評論