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.mzph.cn/bicheng/38520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

教育行业的网络安全:保护学生数据与防范网络欺凌

在数字化的春风中,教育行业迎来了知识的繁花似锦,然而,随之而来的网络安全风暴也悄然逼近。学生数据的脆弱性与网络欺凌的阴影交织成一幅复杂的画卷,呼唤着教育工作者与技术专家共同编织一张密不透风的网络安全之网。本文深入探讨…

C++修饰符类型

一、存储类运算符 auto(自动存储类,但在现代C中,它通常用于自动类型推导) register(建议编译器将变量存储在寄存器中,但现代编译器通常忽略此关键字) static(静态存储类&#xff…

国产压缩包工具——JlmPackCore SDK说明(二)——JlmPack_Create函数说明

一、JlmPack_Create函数说明 JlmPack_Create函数是创建jlm压缩文件的核心函数,最大允许CATALOG_MAX_LIMIT(请参考Config.h)个目录,意思是包括文件夹和文件在内,遍历整个列表最大允许CATALOG_MAX_LIMIT个目录对象&#…

《昇思25天学习打卡营第4天|数据集 Dataset》

文章目录 前言:今日所学:1. 数据集加载2. 数据集迭代3. 数据集常用操作与自定义数据集 前言: 今天学习的是数据集的内容。首先,数据是深度学习的基石,高质量的数据输入能够在整个深度神经网络中发挥积极作用。MindSpo…

【UE5.1】Chaos物理系统基础——01 创建可被破坏的物体

目录 步骤 一、通过笔刷创建静态网格体 二、破裂静态网格体 三、“统一” 多层级破裂 四、“簇” 群集化的破裂 五、几何体集的材质 六、防止几何体集自动破碎 步骤 一、通过笔刷创建静态网格体 1. 可以在Quixel Bridge中下载两个纹理,用于表示石块的内外纹…

C++中的类型转换操作符:static_cast reinterpret_cast const_cast dynamic_cast

目录​​​​​​​ C语言中的类型转换 C中的类型转换 C中的类型转换操作符 static_cast reinterpret_cast const_cast volatile关键字 赋值兼容 dynamic_cast C语言中的类型转换 基本概念:赋值运算符左右两侧类型不同,或形参与实参类型不匹配…

如何在宝塔面板中配置SSL证书?

目录 一、申请证书二、登录宝塔面板配置SSL证书一、申请证书 登录华为云,进入“云证书管理服务 CCM”: 点击“购买证书”: 选择“DV(Basic)”->“DigiCert”,点击【立即购买】购买有效期为3个月的免费证书。 申请证书:

JAVA里的object类

public static String toString(Object o) // 获取对象的字符串表现形式 public static boolean equals(Object a, Object b) // 比较两个对象是否相等 public static boolean isNull(Object obj) // 判断对象是否为null pu…

基于单片机的 LED 照明灯智能调光系统设计

摘  要: 社会经济的不断发展,推动了智能化生活的进程,智能调光技术开始广泛应用在生活中,人们也逐渐提高了灯光亮灯率等的要求。基于此,笔者主要设计了基于单片机的 LED 照明灯智能调光系统,希望能够为相关…

骨传导耳机哪个牌子好?精选靠谱好用的TOP5骨传导耳机推荐!

在超过八成的音乐爱好者都面临听力健康问题的当下,骨传导耳机因其独特的听觉体验和对听力的保护,在音频设备市场中备受瞩目。但近期我发现不少用户在选购骨传导耳机时常常受到不专业产品的误导。身为有着5年经验的数码博主,在此提醒大家&…

老师怎样用微信发布期末成绩

老师们,期末季又到了,还在为如何发布成绩而头疼?今天,就让我来分享一些小技巧,让你们在微信上发布成绩更加高效,同时又能保护学生的隐私。 首先,我们要确保成绩的安全性和隐私性。在微信上&…

数据恢复篇:如何在 Android 手机上恢复未保存/删除的 Word 文档

在 Android 手机上访问 Word 文档通常很简单,但是当这些重要文件被删除或未保存时会发生什么?这种情况虽然令人痛苦,但并非毫无希望。到 2024 年,有几种强大的方法来处理此类数据丢失。本指南重点介绍如何在Android手机上恢复已删…

Python | Leetcode Python题解之第208题实现Trie(前缀树)

题目: 题解: class Trie:def __init__(self):self.children [None] * 26self.isEnd Falsedef searchPrefix(self, prefix: str) -> "Trie":node selffor ch in prefix:ch ord(ch) - ord("a")if not node.children[ch]:retur…

2008-2022年款哈弗维修手册和电路图线路图接线图资料更新

经过整理,2005-2022年款长城哈弗全系列已经更新至汽修帮手资料库内,覆盖市面上99%车型,包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照…

word怎么转换成pdf?分享3种PDF文件转换技巧

word怎么转换成pdf?在日常办公中,将Word转换成PDF可以带来诸多便利。首先,PDF格式具有跨平台的通用性,无论在哪个操作系统或设备上,都能保持文档的原始布局和格式。其次,PDF文件不容易被篡改,可…

【Unity】 HTFramework框架(五十二)使用 HybridCLR 热更新

更新日期:2024年7月1日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 HybridCLR 热更新一、启用宏定义二、导入HybridCLR三、设置热更新程序集四、资源、代码热更 HybridCLR 热更新 HybridCLR是一个特性完整、零成本、高性能…

Mac多线程下载管理器:Neat Download Manage 最新版

Neat Download Manager(NDM)是一款功能强大的下载管理软件,它可以帮助用户更有效地管理和下载网络资源。这款软件支持多种浏览器和协议,可以提升下载速度,恢复中断的下载任务,以及自动化下载过程。在使用任…

如何设置农历日程提醒 农历提醒小妙招

在中国,农历仍然承载着深厚的文化传统和民俗意义。无论是庆祝传统节日,还是纪念亲朋的生日,农历日期都显得格外重要。然而,随着生活节奏的加快,我们有时会因忙碌而遗忘这些特殊的日子。这时,一个能够准确提…

游戏AI的创造思路-技术基础-关于艾宾浩斯遗忘曲线的迷思

对于艾宾浩斯遗忘曲线和函数,我一直都有小小的迷思,总想实验下用艾宾浩斯函数来替换sigmoid函数作为激活函数,打造更接近人类的AI算法,这篇文章旨在讨论下 目录 3.10. 艾宾浩斯曲线 3.10.1. 定义 3.10.1.1. 曲线计算公式 3.10…