MYsql注入攻防技术
文章平均质量分 79
实验的时候,记得存档
山兔1
网络安全爱好者
展开
-
手工SQL注入payload
and sleep(5)(判断页面返回时间)-1/+1 回显上下页(整形)单引号(字符型/整形)原创 2023-03-17 15:35:46 · 319 阅读 · 0 评论 -
2-3字符类基础与注入基础
在mysql的数据类型里面,使用的最广泛,也是最常用的类型,就是字符类型,也正是因为如此,字符类型在注入攻击中也是最常用的,发挥最好的一种1.字符类型字符类型包括:char(固定长度字符串),varchar(可变长度字符串),binary(固定长度二进制字符串),varbinary(可变长度二进制字符串),blob(相对应保存二进制字符串类型),text(相对应保存明文的字符串,相当于文本),enum(枚举类型),set(集合类型)接下来,通过实际的操作,给大家看一下,这些字符串类型是如何使用的我们原创 2022-01-15 23:03:09 · 474 阅读 · 0 评论 -
3-11数据库层如何防御
我们在数据库层是如何对数据库进行防御的,我们防御的目标是什么,我们要如何在数据库维护的时候,注入这些防御的规则,我们接下来,探讨一下SQL注入,数据库层的防御,我们先明确数据库层防御的目标是什么1.数据库层防御目标1.SQL注入的本质原因并不是数据库层的问题而是应用层的问题2.数据库层防御的目标是辅助性的,但并不意味着,它不需要做任何的工作,如果我们的权限系统分配不好,那发生SQL注入,数据库就负有一定的责任,所以,我们要预防SQL注入在数据库层交互提权,防止SQL注入成功后,权限和数据泄露的进一步原创 2022-02-25 11:13:41 · 279 阅读 · 0 评论 -
3-10系统层如何防御
我们从SQL注入的详细过程来看,SQL注入是应用层的问题,它的本质原因并不是系统层的问题,接下来,我们将讨论一下SQL注入在系统层做的那些事,我们在系统层的防御可以辅助到那些作用1.系统层防御的目标1.SQL注入的本质原因不是由系统层的问题因此,我们把所有的焦点,都放在系统层上面,可能不一定利于本质问题的解决,2.系统层的防御是辅助的作用,是预防SQL注入与系统层进行交互提权,预防SQL注入权限的进一步扩大,使得SQL注入在系统层无所作为,这就是我们SQL注入在系统层,所能够达到的目标2.系统层防原创 2022-02-22 23:10:06 · 580 阅读 · 0 评论 -
3-9应用层如何防御
我们通过前面详细的网站注入过程,我们看到网站的所有信息,包括敏感信息,会全部的泄露出去,更有甚者数据库的后台,WEB后台都被注入者所控制,那么对于我们网站的管理维护者来说,是不希望看到的,接下来,我们将讲一下如何进行防御,所以,我们这篇文章先来探讨SQL注入应用层是如何来防御的1.应用层防御的目标1.SQL注入的本质原因是应用层的问题,不是数据库,也不是系统层的问题2.SQL注入应用层防御的目标是修复SQL所有可能的漏洞,做好事前的防范2.过滤SQL注入基本字符接下来,我们将讲一下,应用层应该如何原创 2022-02-20 22:59:42 · 731 阅读 · 0 评论 -
3-8SQL注入网站实际案例第四步:第三者上位点测试与利用
判断出注入点的位置,那我们采取的就是显注的策略,显注的策略,就要充分发挥第三者上位点的作用,我们本篇将探讨如何对第三者上位点进行测试,以便充分利用上位点的作用1.Union寻找处理字段数和第三者上位点1.Union寻找程序处理字段数union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36 –我们在上一篇文章已经接触过了,寻找程序处理字段原创 2022-02-20 15:06:04 · 544 阅读 · 0 评论 -
3-7SQL注入网站实例第三步:攻击类型与攻击策略
我们已经完成了对注入点进行测试与发现,充分的发挥注入点,这个是SQL注入的本质,那需要发挥到什么程度,需要我们对他的特点进行分析我们接下来,学习一下sql注入的类型,根据不同的类型,他的攻击策略是怎么样的,这是我们本篇文章,所要探讨的内容1.SQL注入类型按输出机制分类:盲注:输出数据库的内容在网页中没有显示,只能进行逻辑判断,真或者假盲注就是我们看不到,我们只能猜测报错注入:充分利用程序、数据库报错的帮助,傻傻地告诉我们所有信息我们在第二部分中,有说过一个自爆家底,是如何把库表,甚至用户名和原创 2022-02-19 15:07:17 · 984 阅读 · 0 评论 -
3-6SQL注入网站实例第五步:攻破后台获取web管理员权限
当我们得到上位点之后,并且对上位点进行了充分的测试,测试的目标是得到了确认的信息,它是可以显示我们想要的数据库信息,所有的表信息,所有的字段信息,甚至,我们可以得到后台管理员的权限,那么本篇,我们就来解决这个问题利用上位点进行爆库,获得后台管理员的权限1.获得当前连接的所有数据库名我们仍然对这个上位点,进行测试,我们要查询所有数据库,我们对information_schema下的schemata表,其它的我们暂时留空,留空这里我们用单引号括起来,https://61.206.45.132/corp/原创 2022-02-15 14:17:02 · 2570 阅读 · 0 评论 -
3-5SQL注入漏洞工具的使用
如果我们要去找出,一个网站中可能存在的所有漏洞,那对于我们而言是相当累的,有时候,我们只能借助于sql注入漏洞的工具,进行检测,检测的工具对我们相当重要,因为他能替代人工和提高效率我们本篇文章就来介绍,SQL注入漏洞的检测工具1. SQL漏洞检测工具检测的工具,我们主要分为两类1.替换人工办法自动检测有漏洞的URL,把它列出来Safe3 SQL Injector对这个工具,我们不会做详细的演示2.如果把这些URL找出来之后,我们就对指定的URL进行穷举可能的注入到底是什么,得到的信息到底是什么原创 2022-02-12 20:56:00 · 882 阅读 · 0 评论 -
3-4SQL注入系统交互提权
我们本篇文章将讲述,SQL注入中如何与系统层进行交互的,假如,我们在前面的章节中,可以确认用户,能够与系统层进行交互,那与系统层交互就变得相当重要1.与系统层交互的方式因为一旦能够与系统层交互,那就能够1.读和写磁盘文件甚至能够以管理员的权限2.直接执行系统层的命令这就意味着,系统可能被控制的风险读和写磁盘文件的方式,因为可能有所限制,但是随着工具的使用,可能最终会得到系统层的权限第二种,可能与系统层的管理员权限来运行的程序,直接就可以执行命令,这种方式,也相当于得到了系统层的控制权SQL原创 2022-02-10 15:41:23 · 2074 阅读 · 0 评论 -
3-3规避检查注入
1.规避程序检查注入示例我们在前面的章节里面,我们看到对目标网站进行注入,基本上没有什么障碍,对于一些SQL注入的字符,程序都没有很好的过虑,这个时候,对注入者来说,是畅通无阻的,没有什么困难但是,假如程序要对SQL注入者,注入的可能字符和关键字,进行过滤,那这个时候,我们就发挥的比较有限,我们就要对这种检测进行规避,规避检查注入,这就是,我们这节所要探讨的思路和示例首先,我们来看规避检查注入的示例,比如空格,我们通过示例的演示来看看这是我们演示的示例网站如果这个程序,对空格进行过滤,它不允许空原创 2022-02-09 15:56:46 · 1368 阅读 · 0 评论 -
3-2SQL注入网站实例:注入点的发现与测试
我们得到目标网站的一般信息和技术分析信息之后,我们接下来,就开始寻找注入点和测试注入点1.常用注入点在哪里?1.常用注入点我们一般在三个地方,寻找注入点A.表单中的输入域B.URL的参数除非特别说明,否则其它的默认我们叫URL的参数中进行发挥也是url中最重要,发挥的最好的一部分C.Cookie或者隐藏域因此对表单中的输入域、Cookie或者隐藏域,需要对网页的输入输出机制有充分的分析和了解2.如何发现注入点?我们先来看看这些注入点,有什么特点1.表单中的输入域,Cookie或者隐藏原创 2022-02-09 10:44:22 · 6628 阅读 · 0 评论 -
2-9自报家底相关函数以及应用
1.自报家底我们本篇文章,将讨论什么是自报家底,相关的函数又有哪些,它的基本使用是怎么样的,为什么自爆家底能够把所有能暴露的都暴露出来呢,它的原理是什么,我们又如何把用户名、数据库名,甚至比较重要的表名都暴露出来呢自报家底:如果我们找不到盲注和显注的地方,那没有错误也要制造错误,并把查询的信息让错误带出来,通过不断地嵌入查询,把这些查询结果拼接到错误信息里面,带出来,然后告诉注入者到底有什么东西,把所有家底能透露的都透露了。我们接下来实际操作一下,相关的函数是怎么应用的我们打开一个终端,连接到hxf原创 2022-02-05 22:17:02 · 526 阅读 · 0 评论 -
2-8时间窃取函数以及SQL注入应用
1.时间窃取相关函数基本使用我们通过实际的操作,给大家演示一下,use hxf我们先看一下当前数据库下,有那些表,show tables;其中,我们看下,select * from user;有5条记录,并且它返回来的速度很快,0.0秒我们有个函数叫休眠函数,sleep,休眠后面加个数字,1代表休眠1秒,我们回车看一下,select sleep(1);我们看到它休眠了1秒钟,也就是执行了1秒当我们输入两秒的时候,我们看下结果,select sleep(2);自然就是两秒,所以,我们原创 2022-02-03 14:16:06 · 939 阅读 · 0 评论 -
2-7探子回报函数以及应用
前面部分,我们已经充分了解了字典信息,接下来,我们将讲解一下这些字典信息,应该如何利用这是我们这篇文章开始,所要了解的和深入探讨的功能,什么是探子回报,探子回报的功能是什么,我们要得到什么信息,在盲注中,如何猜测用户名和密码,所用到的函数都有哪些,对于猜测用户名和密码的步骤和效果,又如何呢1.探子相关函数基本使用我们先来看最基础的部分,我们通过实际的操作,给大家演示一下,所需要的函数有那些,又是如何使用的首先,我们进入mysql之后,我们常用的就是,当前所链接的用户名到底是什么我们要知道当前用户名原创 2022-02-02 16:23:37 · 1186 阅读 · 0 评论 -
2-6常用字典元数据与注入应用
1.SQL注入提权后创建一个账户在mysql中,假如提权成功,在sql注入中,如何创建账号,应该在那个表中插入记录,这个表所在的数据库,还有那些敏感的信息表可以利用呢即使我们在提权的过程中,在盲注的过程中,假如,我们想要获得数据库的相关信息,比如数据库、数据库名,数据库表,以及一个重要表中的字段名,我们应该去那里寻找这种信息呢这里就要用到mysql中的字典元数据信息,所以,我们这篇文章就来探讨常用的字典元数据信息与注入的应用是怎么样的数据库提权成功,登录数据库后,如何创建一个普通的账号、如何创建一个原创 2022-01-30 22:49:00 · 752 阅读 · 0 评论 -
2-5关系运算符注入综合应用
注:mysql中!!1是0,!!!1是1;mariadb中!!1是1,!!!1是0。因为我自己本人kali的问题,我后面会切回mysql数据库,不用mariadb1.逻辑运算符有时候,我们希望使用逻辑运算符,来绕过密码的验证,本篇文章将来探讨逻辑运算符与注入逻辑间的关系我们输入mysql hxfshow tables;看一下当前的表其中一个是user,select * from user;我们看到user表,我们先看一下最基本的需求,通常这种逻辑运用,我们是where uid=1000原创 2022-01-27 09:43:57 · 1133 阅读 · 0 评论 -
2-4关系运算符与SQL注入应用
1.关系运算符我们通过实际的操作给大家演示一下关系运算符是如何使用的我们打开一个终端,并输入mysql hxfshow tables;看一下我们现在select * from users;关系运算符包括比较的运算符,我们使用条件where,比如uid大于10018,select * from users where uid>10018;这种情况,大于10018,只有两条记录,那就是10021,但是不包括10018如果我们要包括10018,就大于等于,这样就会有三条记录,selec原创 2022-01-23 12:03:51 · 779 阅读 · 0 评论 -
2-2日期时间类型基础
1.时间日期类型时间日期类型用于日期和时间的表示包括:date(日期型),datetime(日期时间型),timestamp(时间戳型),time(时间型),year(年份)通过实际的操作,给大家演示一下是如何操作的我们打开一个终端,我们输入mysql hxfshow tables;我们看一下当前有那些表我们新建一个表,create table,这个表名叫testd,字段名我们叫注册的时间,我们定义为日期型,第二个注册时间,我们定义为,时间型,第三个,我们定义为日期时间型,第四个,我们定义为原创 2022-01-13 23:43:31 · 2887 阅读 · 0 评论 -
2-1数值类型基础与注入基础
每个变量,常量,甚至参数,它都有自己的数据类型。而数据类型是用来指定一定的存储格式,约束和有效的范围,mysql的数据类型有很多种,我们这篇文章要探讨的是数值类型与注入的逻辑1.数值类型1.数值类型分类整数类型:tinyint(微整型),smallint(小整型),mediumint(中等的短整型),int(短整型),bigint(长整型)(整数类型分的比较细)浮点数类型:float(双精度),double(单精度),decimal(定点类型)接下来,我们将通过实际的操作给大家演示一下,是如何操作原创 2022-01-13 17:44:51 · 519 阅读 · 0 评论 -
1-9DCL语言与提权逻辑
1.什么是DCL?(1)DCL数据控制语言主要是DBA来管理权限使用的,包括如何授权和回收权限。而对于注入者来说,注入的目标之一是提升权限,这样我们获得数据的能力和控制范围就扩大,另外我们可以授权一个具有较高权限的临时账户或者把一个已经存在的账户,但是权限范围比较小的,我们把它提升起来,这样既有隐秘性,又达到目的。2.如何创建一个从任意IP登录的超级权限用户我们输入mysql hxf首先,我们需要从数据库字典中,查出数据库中,到底有那些用户,这些用户有哪些可以使用的mysql.user是mys原创 2022-01-12 12:50:10 · 2320 阅读 · 0 评论 -
1-8记录联合查询与注入逻辑
1.记录联合(并集)通过实际的操作,来演示什么是记录联合,我们输入mysql hxf先创建我们实验要用到的表users2,create table users2(uid int(11),uname varchar(32),password varchar(200),mobile bigint(20),isadmin tinyint(4),blog varchar(100),gold int(11),email varchar(20));在建一个,create table users(uid int原创 2022-01-11 13:02:50 · 261 阅读 · 0 评论 -
1-7SELECT与常用注入逻辑应用
1.语法报错逻辑语法报错逻辑主要是有两部分,第一部分是注入字符的报错,第二部分是数据类型的报错,这里我们讲解的是注入字符的报错,注入字符的报错有什么用,又是如何进行的,接下来我们用操作来进行演示我们输入mysql hxf,连接数据库show tables;,我们看一下当前的表这个时候,我们创一个我们实验要用到的表,users2表,create table users2(uid int(11),uname varchar(32),password varchar(200),mobile bigin原创 2022-01-10 12:39:08 · 620 阅读 · 0 评论 -
1-1SQL注入简介
以下用到的靶机在hack学习靶机上面都可以找到相似的靶场,你们只能自己去找一找,来练一下手1.课程简介mysql是开源的数据库,因为它的架构在各种场景中都发挥的相当出色,所以它在各大互联网企业当中使用的越来越广泛,于此同时发生mysql注入,我们仍任浑然不觉,那么mysql的数据库安全也变得越来越重要了一、课程目标:不仅要深入的了解数据库的攻与防同时我们还要注重提高数据库实际的安全性二、课程的对象:0基础起步,适用初、中级DBA,安全、研发和运维人员和其它感兴趣的人员三、课程内容:1.什么是SQ原创 2022-01-09 11:20:26 · 2122 阅读 · 0 评论 -
1-6SELECT基本使用
在mysql中,功能最强的,也是最复杂的是查询操作,而查询是通过select实现的,它的功能强大和复杂不仅仅体现在应该的开发过程中和系统的应维中,同时也体现在注入攻击的发挥中我们是如何实现对所有表或者指定条件的查询、对个别字段的查询,对我们应用程序来说,进行分页的时候,我们应该注意哪些问题实战演示我们先打开kali的终端,输入mysql -uroot hxfshow tables;我们这里看一下users表。select * from users;那么这里一共有7条记录,当我们要查询一个表原创 2022-01-09 11:16:49 · 1765 阅读 · 0 评论 -
1-5UPDATE与注入逻辑
在更新资料的时候,把自己弄成管理员,这个过程叫做提权操作实战演示我们打开一个命令行我们输入mysql -uroot,连接的是hxf数据库。mysql -uroot hxf;我们看一下。show tables;这里我们修改一下表的结构,alter table users2 add column gold int;alter table users2 add column email varchar(20);把字段password值的长度修改为200。alter table users2原创 2021-12-13 21:13:05 · 772 阅读 · 0 评论 -
SQL报错Data truncated for column ‘password‘ at row 8
这个是我的报错显示,我把报错结果去有道翻译一下结合翻译的结果,我分析了一下,我往password当中存入md5的值,这个值其实是字符串,是不是我的passwor的结构不是字符型,我去数据库表当中查了一下。show create table users2;可以看出来,我的猜想被验证了,我原数据库表当中password字段的类型是int(11),整数型,那我们就修改一下呗。alter table users2 modify column password varchar(200);这个时候,我在另.原创 2021-12-12 21:35:21 · 611 阅读 · 0 评论 -
1-4.Delete与注入逻辑
实战演示我们首先打开kali的终端输入mysql -uroot,当中在输入hxf数据库名,这样子就可以直接链接到hxf数据库。mysql -uroot hxf我们可以通过show tables;看一下当前所具有的表名我们看一下users,这是我们上一篇文章所留下来的,我们看一下它的内容。select * from users;一共有7行我们现在要拷贝一张表跟users表的内容是一样的,我们可以create table这个表名叫users2,as select * from users这样原创 2021-12-10 23:48:31 · 790 阅读 · 0 评论 -
1-3DML语言与INsert注入逻辑
1.什么DML?DML:数据操作语言(data manipulation language)功能:主要是对表、视图等对象进行查询、插入、更新和删除操作,如果我们没有特殊的说明,主要是对表的操作包括:SELECT 查询INSERT 插入UPDATE 更新DELETE 删除实战演示打开kali的终端,输入mysql -uroot,访问mysql数据库我们这篇文章演示要用到一个示例的数据库,我们自己创一个数据库。create database hxf default charset utf8原创 2021-12-09 21:58:51 · 728 阅读 · 0 评论 -
1-2MySQL基础DDL语句
mysql注入是建立在对sql语言充分的理解上1.什么是SQL语言?SQL:结构化查询语言(Structured Query Language)的缩写它在关系数据库里面是一个行业标准,在关系数据库当中都是通用的SQL的功能:查询数据库,它能插入、更新、删除和查询数据库并返回结果等。SQL语言分类包括:DDL 数据定义语言(Data Definition Language )它是指对数据库表、视图或者其它对象,比如存储过程、函数等等创建、删除和修改,对这些对象进行创建、删除和修改,我们把它定义为原创 2021-12-08 18:27:17 · 373 阅读 · 0 评论 -
Sqlmap讲解
SQL注入测试方法:1.手工测试优点:测试方法灵活缺点:效率低、范围窄、因测试者技术水平而异2.工具测试优点:自动化、效率高、范围广缺点:误报、漏报、测试方法有限SQLMAP简介sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测、利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令官方地址:https://sqlmap.org/原创 2021-08-01 15:44:31 · 1116 阅读 · 0 评论 -
SQL堆叠宽字节报错注入
一、堆叠注入特性:SQL语句以;为分隔符,可以同时执行多个SQL语句原理:多条语句一起执行mysql_query()函数:不支持多条查询mysqli_multi_query()函数:支持一个或多个针对数据库的查询。-1';insert into users(id,username,password) values (66,'m66','hello') --+二、宽字节注入Mysql中转义的函数:addslashes,mysql_real_escape_string,mysql_escape..原创 2021-08-01 15:39:29 · 327 阅读 · 1 评论 -
GET型盲注
一、sql盲注在sql注入过程中, sql语句执行的选择后,选择的数据不能回显到前端页面。类型:基于布尔的SQL盲注、基于时间的SQL盲注、基于报错的SQL盲注。Information_schema数据库基本表说明:schemata表:提供了当前mysql实例中所有的数据库信息tables表:提供了关于数据库中的所有表的信息,columns表:提供表中所有列信息,即表明了表中所有列及每列的信息任务描述:注入流程:1.根据提示加入id参数在url中,可以看到他不再像前面报错注入一样回显有效信原创 2021-08-01 15:46:22 · 259 阅读 · 0 评论 -
MYSQL基础
一、数据库基础数据库:用来存放数据的仓库SQL:数据库查询和程序设计语言数据库中包含表,表是由列组成,按行存储host字段为localhost的匿名用户拥有所有的权限,就是说本地用户用空的用户名和空的口令登录MYSQL数据库服务器可以得到最高的权限。ON子句中的*.*意味着“所有数据库、所有表”。with grant option表示它具有grant权限。用grant语句创建权限是不需要再手工刷新授权表的,因为它已经自动刷新了。一、WEB服务介绍在表示层(用户PC)访问域名,业务逻辑层(WEB原创 2021-07-31 23:20:15 · 123 阅读 · 0 评论 -
1.SQL联合注入
安全的本质就是开发,又要懂安全又要懂开发,学安全就是开发的一些漏洞,两者相辅相成一、SQL注入原理:由于WEB应用程序对用户输入的数据合法性判断不严格导致。攻击者利用现有应用程序,将恶意的SQL命令注入到程序后台并在数据库引擎执行的能力。攻击者把SQL命令语句作为输入被服务器SQL解释器正确解析执行,数据库把查询到的结果返回给服务器,然后呈现给攻击者,攻击者由此获得数据库内的数据信息。1.恶意请求攻击者在正常查询请求后附加SQL语句请求至服务器(test.php?id=1 and 1=1),WE原创 2021-07-31 23:22:12 · 239 阅读 · 1 评论 -
SQL盲注
1.盲注基础什么是盲注?盲注的本质就是猜解。所谓“盲”就是在你看不到返回数据的情况下通过“感觉”来判断),感觉到的就是差异(包括运行时间的差异和页面返回结果的差异)盲注的相关函数:length(‘name’):函数返回字符串的长度substr(‘name’,1,1):函数截取字符串ascii(‘a’):函数返回字符的ascii码left(name,2):函数返回name的左边二个字符right(name,2):函数返回name的右边二个字符基本流程:1.获取当前数据库长度2.获取当前数原创 2021-08-01 15:43:11 · 179 阅读 · 0 评论