SQL注入【1】——通用漏洞/SQL注入/mysql跨库/ACCESS偏移

一、知识点:

1、脚本代码与数据库前置知识

2、Access数据库注入-简易&偏移

3、MYSQL数据库注入-简易:权限跨库

二、前置知识:

(一)SQL注入漏洞产生原理分析

SQL注入产生条件:根本条件:可控变量、特定函数。

脚本代码在实现代码与数据库进行数据通讯时(从数据库取出相关数据进行页面显示)将定义的SQL语句进行执行查询数据时。其中的SQL语句能通过参数传递自定义值来实现控制SQL语句,从而执行恶意的SQL语句,可以实现查询其他数据(数据库中的敏感数据,如管理员帐号密码)。这一个过程就可以叫做SQL注入漏洞。

在没有参数的地方不代表没有漏洞,比如下面的登录框地址没有包含参数,但是抓包也是可以看到刚刚输入的账户及密码,即可以通过抓包去修改参数。(因为有些参数在地址上是看不到的)

情况1:http://10.1.1.103:8001/production/PRODUCT_DETAIL.asp

不能说完全没有漏洞测试的可能性,参数以post方式发送请求,或者其他方式。

情况2:http://10.1.1.103:8001/production/PRODUCT_DETAIL.asp?id=1513

这种很明确参数就在地址上可以看到

情况3:http://10.1.1.103:8001/production/PRODUCT_DETAIL.asp?id=1513&page=1

情况3的手工测试:

1)production/PRODUCT_DETAIL.asp?id=1513 注入语句 &page=1

2)production/PRODUCT_DETAIL.asp?id=1513&page=1 注入语句

!!!SQL注入攻击流程!!!

1.猜测数据库类型

ACCESS数据库----单独存在

ASSESS结构:

数据库名

     表名

           列名

                 数据

MYSQL数据库----统一管理

MYSQL结构:

会存在一个概念:最高数据库用户=root用户

为了网站和数据库的安全性,MYSQL内置有ROOT最高用户,划分等级,每个用户对应管理一个数据库,这样保证无不关联,从而不会影响到其他数据库的运行。

数据库A—网站A(数据库用户A管理库A)

     表名

          列名

              数据

数据库B—网站B(数据库用户B管理库B)

数据库C—网站C(数据库用户C管理库C)

MYSQL两种思路:
1、非ROOT的注入攻击:常规类的猜解

2、ROOT用户的注入攻击:文件读写操作,跨库查询注入等

黑盒测试中可以采用user()获取当前用户权限,白盒中看连接用户即可!

MYSQL数据存储特性:
MYSQL5.0以上版本:自带的数据库名information_schema

information_schema:存储数据库下的数据库名及表名,列名信息的数据库

information_schema.tables:记录表名信息的表,表名为table_name,库名为table_schema

information_schema.columns:记录列名信息的表,列名为column_name,表名为table_name,库名为table_schema

information_schema.schemata:记录数据库名的信息表,对应字段名:schema_name

获取相关数据:
1.获取数据库版本-看是否符合information_schema查询-version()

union select version(),2,3 
2.获取数据库用户-看是否符合ROOT型攻击-user()

union select user(),2,3 
3.获取当前操作系统-看是否支持大小写或文件路径选择-@@version_compile_os

union select @@version_compile_os,2,3 
4.获取数据库名字-为后期猜解指定数据库下的表,列在做准备-database() 

union select database() ,2,3 
ROOT类型攻击-猜解数据,文件读取,跨库查询

获取当前数据库下的表名信息:

union select table_name,2,3 from information_schema.tables where table_schema='数据库名'
获取指定表的列名信息:

union select column_name,2,3 from information_schema.columns where table_name='表名' and table_schema='数据库名'
获取指定数据:

 union select username,password,3 from 表名

2.根据数据库类型选择思路

步骤:

1.通过order by 判断列名数,猜测数据,观察返回结果

 例如:http://xxxx/xxx.asp?id=xxx order by 3

2.猜出列数后,通过union进行联合查询(查询表名)

例如:http://xxxx/xxx.asp?id=xxx union select 1,2,3 from 表名

3.看报出哪个数字,在对应数字的位置写查询语句(查询表名下面的列名)

例如:http://xxxx/xxx.asp?id=xxx union select 1,列名,3 from 表名

(二)SQL注入漏洞危害利用分析

危害就是:数据库的语句能干嘛,他就能干嘛(增删查改数据)比如获取管理员的账户密码,操作数据库里面的数据。

//SQL语句查询,删除,添加,修改等操作

//SQL语句有写法规则也就是说必须符合正确的写法才能执行成功

(三)脚本代码与数据库操作流程

(四)数据库名,表名,列名,数据

(五)数据库类型,数据库用户,用户权限

演示案例:

-ASP+Access-简易注入-字典猜解

由于Access数据库特性导致这个SQL注入是需要借助只字典去拆解表名和列名的,那么就会出现表名或列名猜解不到,可以自定义社工字典或采用偏移注入。偏移注入就是解决表名已知列名未知的情况!

-ASP+Access-偏移注入-报错显示

偏移注入就是解决表名已知,列名未知的情况!

-PHP+MYSQL-简易注入-存储特性

-PHP+MYSQL-跨库注入-权限属性

MYSQL-跨库注入(跨库注入是因为root用户可以统一管理所有的数据库)
跨库注入:实现当前网站跨库查询其他数据库对应网站的数据

获取当前mysql下的所有数据库名:

union select schema_name,2,3 from information_schemata
获取表名和列名和上述一样,这里就不重复写了

注意最后获取对应数据的时候要from 数据库名.表名,不然会查询当前数据库,就不是跨库了

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

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

相关文章

数学建模MATLAB绘图大全

最近快要开始一年一度的数学建模竞赛啦,接下来争取每天更一篇数学建模算法!(当然这是理想状态下),今天就先更一些MATLAB常用的绘图吧,论文赏心悦目的关键就在于丰富多彩的图,好看的图一定会成为…

MySql主从同步延迟怎么办?

文章目录 什么是MySQL主从架构主从架构的组成工作原理主从复制的步骤主从架构的优点主从架构的缺点 什么是主从同步延迟为什么会导致主从延迟主从延时的排查和解决如果发现主从数据不一致怎么办? 我们常说的业务量越来越大,I/O访问频率过高,单…

2021-06-15 protues(ISIS)脉冲发生器仿真仪表使用

缘由这个脉冲发生器怎么连线_编程语言-CSDN问答

​埃文科技受邀出席2024 “数据要素×”生态大会​

2024“数据要素”生态大会(以下简称“大会”)于2024年6月30日在河南省郑州市举办,大会主题为“加快数据要素化进程 推动新质生产力发展”。 本次大会旨在搭建高水平交流合作平台、分享前沿观点、展示先进技术、交流实践经验,共同探…

开放式蓝牙耳机推荐,开放式耳机选购小技巧大公开!

跑步是我们生活中最常见的运动方式。在跑步中佩戴耳机往往能达到“事半功倍”的效果,如何去选择一款好的运动耳机便需要精挑细选了。作为一个开放式耳机资深玩家兼马拉松参与者,我个人觉得开放式耳机是最适合跑步的了,其开放式的设计更加适合…

数据结构之算法的时间复杂度

1.时间复杂度的定义 在计算机科学中,算法的时间复杂度是一个函数,它定量描述了算法的运行时间。一个算法所花费的时间与其中语句的执行次数成正比列,算法中的基本操作的执行次数,为算法的时间复杂度 例1: 计算Func1…

鸿蒙‘ohpm‘ 不是内部或外部命令,也不是可运行的程序-解决方案

🔥 博客主页: 小韩本韩! ❤️ 感谢大家点赞👍收藏⭐评论✍️ 在鸿蒙的DevEco Studio的终端下输入 onpm -v 或者 你需要下载第三方ohpm包的时候提示‘ohpm‘ 不是内部或外部命令,也不是可运行的程序- 主要是因为我们…

【基于R语言群体遗传学】-6-表型计算等位基因频率、最大似然估计方法

到目前为止,我们主要讨论了等位基因和基因型频率,以及我们如何可以从一个推断出另一个。但是,如果我们不知道等位基因频率,只知道种群中存在哪些表型呢?如果我们足够幸运,知道哪些表型对应哪些基因型&#…

网络-calico问题分析

项目场景: calico-node日志提示 Failed to auto-detect host MTU - no interfaces matched the MTU interface pattern. To use auto-MTU, set mtuifacePattern to match your hosts’s interfaes. 同时,cali开头网卡的mtu是1440大小 原因分析&#xff…

扁鹊三兄弟的启示,探寻系统稳定的秘诀

一、稳定性的重要性 1. 公司收益的角度 从公司收益的视角审视,系统不稳定可能会引发直接损失。例如,当系统突然出现故障导致交易中断时,可能造成交易款项的紊乱、资金的滞留或损失,这不但会阻碍当前交易的顺利完成,还…

web安全的会议室管理系统-计算机毕业设计源码50331

目 录 摘要 1 绪论 1.1 开发背景与意义 1.2国内外研究现状 1.3 相关技术、工具简介 1.3.1 MySQL数据库的介绍 1.3.2 B/S架构的介绍 1.3.3 Java语言 1.3.4 SpringBoot框架 1.4论文结构与章节安排 2 会议室管理系统需求分析 2.1 可行性分析 2.1.1 技术可行性分析 2…

【Redis】真行,原来是这样啊! --Redis自动序列化和手动序列化的区别(存储结构、内存开销,实际写法)

对于Redis有两种序列化和反序列化的方式, 方式一: 一种是通过 注入RedisTemplate 对象,找个对象,通过配置类进行一定的配置,使得使用RedisTemplate 对象时,便会使用配置的那些键、值的序列化方式&#xff…

深度学习Week19——学习残差网络和ResNet50V2算法

文章目录 深度学习Week18——学习残差网络和ResNet50V2算法 一、前言 二、我的环境 三、论文解读 3.1 预激活设计 3.2 残差单元结构 四、模型复现 4.1 Residual Block 4.2 堆叠Residual Block 4.3. ResNet50V2架构复现 一、前言 🍨 本文为🔗365天深度学…

昇腾910B部署Qwen2-7B-Instruct进行流式输出【pytorch框架】NPU推理

目录 前情提要torch_npu框架mindsport框架mindnlp框架 下载模型国外国内 环境设置代码适配(非流式)MainBranch结果展示 代码适配(流式) 前情提要 torch_npu框架 官方未适配 mindsport框架 官方未适配 mindnlp框架 官方适配…

add_metrology_object_generic 添加测量模型对象。找两条直线,并计算两条线的夹角和两个线的总长度,转换成毫米单位

*添加测量模型对象 *将测量对象添加到测量模型中 *算子参数: *    MeasureHandle:输入测量模型的句柄; *    Shape:输入要测量对象的类型;默认值:‘circle’,参考值:‘circl…

淘宝扭蛋机小程序:打造新的扭蛋体验

扭蛋机行业近年来发展非常迅速,呈现出了明显的增长势头,深受年轻消费者的青睐。当下在消费市场中,年轻人占据了很大的份额,这也推动了扭蛋机市场的发展。如今,扭蛋机也正在向多个方向发展,不再局限于线下扭…

如何利用代理IP打造热门文章

作为内容创作者,我们都知道,有时候地理限制和访问障碍可能会成为我们获取新鲜素材和优质信息的障碍。使用代理IP,正是突破这些限制的好方法! 1. 无缝获取全球视野 如果你还在苦恼看不到其他地区的热点文章,你可以尝试…

保障信息资产:ISO 27001信息安全管理体系的重要性

在当今数字化和全球化的时代,信息安全已经成为企业成功和持续发展的关键因素之一。随着信息技术的快速发展和互联网的普及,企业面临着越来越多的信息安全威胁和挑战,如数据泄露、网络攻击、恶意软件等。为了有效应对这些威胁,企业…

docker集群部署主从mysql

搭建一个mysql集群,1主2从,使用docker容器 一、创建docker的mysql镜像 下次补上,因为现在很多网络不能直接pull,操作下次补上。 二、创建mysql容器 创建容器1 docker run -it -d --name mysql_1 -p 7001:3306 --net mynet --…

Astro新前端框架首次体验

Astro新前端框架首次体验 1、什么是Astro Astro是一个静态网站生成器的前端框架,它提供了一种新的开发方式和更好的性能体验,帮助开发者更快速地构建现代化的网站和应用程序。 简单来说就是:Astro这个是一个网站生成器,可以直接…