[導讀]【SQL注入工具猜解法】 普通針對Access數據庫的注入方法確實很煩,因為猜解本來就很煩的工作,而且這些表段這些字段還要自己手動猜解,所以人們想到了用程序去實現,於是網絡上出現了不少好的工具,隨著這些工具的出現,使SQL注入更加的容易。這一小節我們將為大家稍微演示一下SQL注入工具的使用。但是筆者還是想說,作
【SQL注入工具猜解法】
普通針對Access數據庫的注入方法確實很煩,因為猜解本來就很煩的工作,而且這些表段這些字段還要自己手動猜解,所以人們想到了用程序去實現,於是網絡上出現了不少好的工具,隨著這些工具的出現,使SQL注入更加的容易。這一小節我們將為大家稍微演示一下SQL注入工具的使用。但是筆者還是想說,作為網絡安全愛好者,應該懂點基礎的原理,會用工具並不代表你掌握了這個漏洞。
工具:啊D的SQL注入工具
檢測對象:雨點下載系統
URL:http://192.168.1.123/yd/
我們知道雨點下載系統list.asp vIEw.ASP對id參數過濾不嚴而產生了SQL注入漏洞,並且雨點下載系統是開放源碼的,所以我們很容易知道其數據庫的結構。其賬號密碼的信息放在表userinfo裡,對應的分別為id usr pwd。
1.掃描注入點
填上要檢測的網址,點檢測,工具便開始自動為你檢測了,如圖1:
圖1 這裡可以看到,工具為我們掃到了兩個注入點,我們就拿其中一個繼續吧,選中一個網址,右鍵會出現菜單,點注入檢測,會跳到注入檢測的的畫面。
2.檢測表段
點檢測然後程序就做好准備檢測表段了,點檢測表段,程序就會自動開始為你檢測表段,不用再像以前輸入and exists (select * from 表段名)來判斷了,程序速度當然比手工快多了。如圖2:
圖2
細心的讀者會看到軟件的狀態欄不停的顯示工具所猜解的表段呵呵,我們可以向軟件學習SQL注入的語法。
3.檢測字段
很遺憾,程序只檢測到一個表段落config,我們知道賬號密碼在另一個表段的userinfo,所以我們手動添加一個userinfo,在檢測表段那欄點擊右鍵會出現相應的菜單,選手動添加表,見圖3:
圖3
填加userinfo然後選中它就可以開始檢測字段了。點檢測字段,程序就開始自動猜解字段,如圖4:
圖4
猜解出三個字段usr pwd id,如果沒有猜解出來也可以自己手動添加字段。
4.猜解字段內容
選中你要猜解的字段點右邊的檢測內容就可以幫你猜解長度並猜解其字符內容,如圖5:
圖5
從圖中看出已經猜出usr的內容為admin pwd的內容還在檢測中呵呵。最後它會猜解出其它的內容,如圖6:
圖6
5.猜解後台
對於Access數據庫的網站,有了後台管理員的賬號和密碼,沒有猜到後台也沒有用,所以往往我是猜出有了後台才會進一步的SQL注入的,否則猜出賬號密碼也沒有多大的用處。當然如果目標是電影站,那用SQL注入就可以得到超級會員的賬號密碼,就可以收費電影免費看啦?點左邊的管理入口檢測並可以猜解後台了。如圖7:
圖7
選中你認為可能是管理入口的連接點右鍵會出現如圖8:
圖8
點用IE打開連接就可以打開後台的頁面,輸入你剛才猜解出來的賬號密碼就可以進後台,至於進了後台你要做什麼,就看你的了。
【Union查詢猜解法】
當SQL注入的是Access數據庫的時候,我們可以利用的就有子查詢與UNION查詢了。
子查詢在初級篇裡就講過了,就是常規的and exists (select * from admin)之類,比如list.ASP文件訪問的是article這個表,我們利用子查詢可以查同一個數據庫下的admin表裡的賬號密碼,也可以叫做跨表查詢。當然不在同一個數據庫的話可以跨庫查詢,後面我們會講到。Union查詢其實就是用到SQL語法中的Union函數了,關於它的用法請參考第一小節,我們開始實戰Union查詢。
檢測對象:雨點下載系統
網站URL:http://down.jingshan.cn/list.ASP?id=78
管理後台:http://down.jingshan.cn/admin/
本來想本地調試的,可是我的系統出了點問題,所以上網找了個站測試一下Union查詢,沒有破壞的意思,見諒。至於如何判斷有SQL注入漏洞,前面已經說的很詳細了,只不過這個服務器把IIS的錯誤信息給屏蔽了,所以當出錯的時候會返回:處理 URL 時服務器上出錯。請和系統管理員聯絡。呵呵,沒關系,我們繼續。前面我們已經知道雨點下載系統的賬號密碼信息放在userinfo表段裡面,其對應的字段分別為id usr pwd,而這個注入點我們已經確定其存在,所以我們構造如下的語法:
union select 1 from userinfo 結果返回錯誤的頁面,如圖9:
圖9
如果不出意外的話,本來該顯示的是指字段列數不一致,因為Union函數本身的特殊性。我們繼續構造如下的語法:
union select 1,2 from userinfo
union select 1,2,3 from userinfo
一直到union select 1,2,3 from userinfo才返回正常的頁面,說明這裡就要列三個字段了,並且發現剛才錯誤的地方現在顯示為1,也就是說它可以用來顯示我們想要知道的數據。見圖10:
圖10
我們構造語法:union select usr,2,3 from userinfo會顯示賬號的信息,如圖11:
圖11
我們構造語法:union select pwd,2,3 from userinfo則會顯示出密碼的信息,如圖12:
圖12
當我們用這個賬號密碼登錄後台的時候,意外的發現出錯了,如圖13:
圖13
讀者朋友們知道什麼原因嗎?對,我們要看下數據庫的構造,userinfo表裡面有個userclassid字段,表示他們所對應的權限,而userclass表很明確的告訴了我們什麼ID對應著什麼權限,這裡我們要進管理後台,當然得要系統管理員的賬號密碼。數據庫表如圖14
圖14
既然知道了這些,所以我們在構造Union查詢的時候要加個條件where userclassid=1,即我們要得到賬號信息就構造語法:union select usr,2,3 from userinfo where userclassid=1,得到的賬號為fang,見圖15:
圖15
同理我們構造語法:union select pwd,2,3 from userinfo where userclassid=1就可以得到密碼信息,如圖16:
圖16
我們登錄後台試下,輸入得到的賬號密碼登錄,就可以進到後台,如圖17:
圖17
就這樣輕而易舉的進了網站的後台,知道Union查詢的威力了吧。
【Access跨庫查詢】
前面我們講了Access的SQL注入,用到了子查詢與聯合查詢,但是始終在一個數據庫裡,如果我們遇到要測試的不在同一個數據庫裡怎麼辦,有沒有辦法突破。我可以告訴你,有,不過要有條件:
1.使用union查詢必須知道前一個select裡表的字段數
2.必須知道目標數據庫的所在位置,絕對路徑
如果玩過黑客防線第四輪攻防實驗室的朋友,都知道當時第一關就設置的2個ASP+Access的下載系統,一個是雨點下載系統,一個是盜帥下載系統。當時的情況是這樣的:盜帥下載系統可以暴出數據庫但是不讓下載,似乎也沒什麼地方可以注射,而雨點下載系統數據庫可以暴且可以直接下載,還可以注射。不過雨點的後台很簡單,沒什麼可以利用的地方,這個時候,你該如何突破。有人開始追尋盜帥下載系統的漏洞,後來還是發現了盜帥的漏洞,而有的人則是放棄了,是不是有點過早放棄呢,而當時有人就通過雨點系統的注射點對盜帥系統的跨庫查詢而得到盜帥的後台密碼,這可謂是跨庫查詢的經典的例子。感興趣的可以參考下這裡:http://www.4ngel.Net/article/46.htm,本小節不再詳述。