• <tt id="oo84o"><table id="oo84o"></table></tt>
  • <li id="oo84o"></li>
     
    售房快車 售房客車 房屋租賃 牽線搭橋 供求信息 南陽人才網 文藝沙龍
     
    域名注冊 虛擬主機 云服務器 企業云郵箱 網站制作 網站推廣 無紙辦公 成功案例
       
    服務熱線:0377-63392646 13782137062
    虛擬主機  
    ASP漏洞全接觸-進階篇-開網網絡學院
    · 網 絡 學 院
    ·友情鏈接 更多>>>
    標題:ASP漏洞全接觸-進階篇

     
    在入門篇,我們學會了SQL注入的判斷方法,但真正要拿到網站的保密內容,是遠遠不夠的。接下來,我們就繼續學習如何從數據庫中獲取想要獲得的內容,首先,我們先看看SQL注入的一般步驟:

      第一節、SQL注入的一般步驟

      首先,判斷環境,尋找注入點,判斷數據庫類型,這在入門篇已經講過了。

      其次,根據注入參數類型,在腦海中重構SQL語句的原貌,按參數類型主要分為下面三種:

      (A) ID=49 這類注入的參數是數字型,SQL語句原貌大致如下:
      Select * from 表名 where 字段=49
      注入的參數為ID=49 And [查詢條件],即是生成語句:
      Select * from 表名 where 字段=49 And [查詢條件]


      (B) Class=連續劇 這類注入的參數是字符型,SQL語句原貌大致概如下:
      Select * from 表名 where 字段='連續劇'
      注入的參數為Class=連續劇' and [查詢條件] and ‘'=' ,即是生成語句:
      Select * from 表名 where 字段='連續劇' and [查詢條件] and ‘'=''

      (C) 搜索時沒過濾參數的,如keyword=關鍵字,SQL語句原貌大致如下:
      Select * from 表名 where 字段like '%關鍵字%'
      注入的參數為keyword=' and [查詢條件] and ‘%25'=', 即是生成語句:
      Select * from 表名 where字段like '%' and [查詢條件] and ‘%'='%'

      接著,將查詢條件替換成SQL語句,猜解表名,例如:

      ID=49 And (Select Count(*) from Admin)>=0

      如果頁面就與ID=49的相同,說明附加條件成立,即表Admin存在,反之,即不存在(請牢記這種方法)。如此循環,直至猜到表名為止。

      表名猜出來后,將Count(*)替換成Count(字段名),用同樣的原理猜解字段名。

      有人會說:這里有一些偶然的成分,如果表名起得很復雜沒規律的,那根本就沒得玩下去了。說得很對,這世界根本就不存在100%成功的黑客技術,蒼蠅不叮無縫的蛋,無論多技術多高深的黑客,都是因為別人的程序寫得不嚴密或使用者保密意識不夠,才有得下手。

      有點跑題了,話說回來,對于SQLServer的庫,還是有辦法讓程序告訴我們表名及字段名的,我們在高級篇中會做介紹。


      最后,在表名和列名猜解成功后,再使用SQL語句,得出字段的值,下面介紹一種最常用的方法-Ascii逐字解碼法,雖然這種方法速度很慢,但肯定是可行的方法。

      我們舉個例子,已知表Admin中存在username字段,首先,我們取第一條記錄,測試長度:

      http://www.19cn.com/showdetail.asp?id=49 ;;and (select top 1 len(username) from Admin)>0

      先說明原理:如果top 1的username長度大于0,則條件成立;接著就是>1、>2、>3這樣測試下去,一直到條件不成立為止,比如>7成立,>8不成立,就是len(username)=8

      當然沒人會笨得從0,1,2,3一個個測試,怎么樣才比較快就看各自發揮了。在得到username的長度后,用mid(username,N,1)截取第N位字符,再asc(mid(username,N,1))得到ASCII碼,比如:

      id=49 and (select top 1 asc(mid(username,1,1)) from Admin)>0

      同樣也是用逐步縮小范圍的方法得到第1位字符的ASCII碼,注意的是英文和數字的ASCII碼在1-128之間,可以用折半法加速猜解,如果寫成程序測試,效率會有極大的提高。

      第二節、SQL注入常用函數

      有SQL語言基礎的人,在SQL注入的時候成功率比不熟悉的人高很多。我們有必要提高一下自己的SQL水平,特別是一些常用的函數及命令。

      Access:asc(字符) SQLServer:unicode(字符)

      作用:返回某字符的ASCII碼

      Access:chr(數字) SQLServer:nchar(數字)

      作用:與asc相反,根據ASCII碼返回字符

      Access:mid(字符串,N,L) SQLServer:substring(字符串,N,L)

      作用:返回字符串從N個字符起長度為L的子字符串,即N到N+L之間的字符串

      Access:abc(數字) SQLServer:abc (數字)

      作用:返回數字的絕對值(在猜解漢字的時候會用到)

      Access:A between B And C SQLServer:A between B And C

      作用:判斷A是否界于B與C之間

      第三節、中文處理方法

      在注入中碰到中文字符是常有的事,有些人一碰到中文字符就想打退堂鼓了。其實只要對中文的編碼有所了解,"中文恐懼癥"很快可以克服。

      先說一點常識:

      Access中,中文的ASCII碼可能會出現負數,取出該負數后用abs()取絕對值,漢字字符不變。

      SQLServer中,中文的ASCII為正數,但由于是UNICODE的雙位編碼,不能用函數ascii()取得ASCII碼,必須用函數unicode ()返回unicode值,再用nchar函數取得對應的中文字符。

      了解了上面的兩點后,是不是覺得中文猜解其實也跟英文差不多呢?除了使用的函數要注意、猜解范圍大一點外,方法是沒什么兩樣的。

      作者:eNet 出處:eNet硅谷動力

     

    點擊[5330]次  發布日期: 2007-3-26 21:43:10    發布人:中國開網
    :上一篇
      下一篇:

    返回首頁 |公司簡介 |開網招聘 |支付說明 |行業新聞 | 聯系方式 |客服中心| 相關咨詢|廣告服務 |郵箱登錄

    豫公網安備 41130302000019號


    豫ICP備2024042951號

    南陽市開網網絡技術有限公司

    業務專線: 1378217062

    總部地址: 河南省南陽市車站路146號新城百樂大廈13樓12室

    業務①QQ:401853676 客服①QQ:776288762 

    Email:xuejinfu@kyxxw.com  

    Copyright © 2026 南陽市開網網絡技術有限公司 ◇版權所有

    中國開網旗下網站:
    信息版:www.cannaramic.com 
    網絡版:www.kaiwang.wang
    CMAI人工智能平臺:www.cmai.cn
    開網PC手機微信APP小程序五合一網站
    RUAI儒家智慧平臺:www.ruai.cn
    促AI向善網:www.cuai.cn
     
  • <tt id="oo84o"><table id="oo84o"></table></tt>
  • <li id="oo84o"></li>
    国产欧美日韩综合 浦县| 台南县| 吉林市| 普定县| 西宁市| 怀远县| 温州市| 定安县| 马关县| 东丰县| 渭源县| 乐安县| 宝丰县| 辽宁省| 辉南县| 康马县| 吐鲁番市| 遵化市| 灵武市| 岑溪市| 屏东县| 新平| 丰台区| 南和县| 凤冈县| 达日县| 衡东县| 龙陵县| 平昌县| 苏尼特左旗| 比如县| 清丰县| 辽阳市| 中西区| 乌拉特中旗| 股票| 琼海市| 韩城市| 宿州市| 陆丰市| 武强县| http://444 http://444 http://444