mssql 注入 须知

XCKKW   ·   发表于 2023-03-18 01:59:29   ·   学习杂记

一、MSSQL须知

  1. Mssql注入必比了解的三张数据库自带库

    1. 释义
    2. sysobjects
    3. SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束 、默认值、日志、规则、存储过程等,每个对象在表中占一行。
    4. syscolumns
    5. 该表位于每个数据库中。
    6. sysdatabases
    7. 该表保存在master数据库中,这个表中保存的是所有的库名,以及库的ID,和一些相关信息

Mssql需要掌握的几种函数

  1. 1,host_name()返回服务端计算机名称

  1. 2, current_user 返回当前数据库的用户

  1. (以下就不一一展示了)
  2. 3,db_name() 返回当前数据库名
  3. 4CHAR()将asccii码转换成字符,如果不在0--255之间将返回null
  4. 5Object_id()返会数据库表名,通常用于16进制或SQL编码的转换
  5. 6col_name(table_id coulm_id) 返回指定表中的字段
  6. 7substring()返回字符串
  7. 8cast() 将某种数据类型的类型的表达式转换成另一种数据类型
  8. 9CONVERT() 函数是把日期转换为新数据类型的通用函数

二、注入流程

  1. 1,判断是否是mssql数据库
  2. apx 后缀的文件 可能为mssql数据库
  3. 利用and select count(*)from sysobjects)>0 如果返回正常,则证明数据库为mssql数据库
  4. 2order by 查字段

  1. 3,查表名以及库名 (注:mssqlmysql不同 返回的结果与类型要相同)
  2. and'1=2 union all select 1,name,null from sysobjects where xtype='U'-- qwe
  3. 此处类型“U”为用户类型(也就是返回对象名就是表名) (“S”为系统表所带的类型)
  4. 4,查数据后的省略(查询数据时用top,top 1 为查询第一条数据)
  5. 查询版本信息
  6. @@version-:获取版本信息


db_name():数据库名字


user,system_user,current_user,user_name:获取当前⽤户名


@@SERVERNAME:获取有关服务器主机的信息


盲注以及报错注入详情查看https://docs.zkaq.cn/#/docs/index/id=21

  1. 以下为某edu实战

打赏我,让我更有动力~

0 条回复   |  直到 2023-3-18 | 320 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.