目录
数据库介绍............................................................................................................... 3
数据库管理系统(DBMS)介绍........................................................................... 3
数据库的类型..................................................................................................... 4
1.1关系型数据库(RDBMS)....................................................................... 4
1.2非关系型数据库(NOSQL).................................................................... 5
MySQL数据库介绍.............................................................................................. 6
1.1SQL语句功能.......................................................................................... 6
1.2命令行工具介绍..................................................................................... 6
1.2.1mycli安装...................................................................................... 6
1.2.2mycli基本用法............................................................................... 7
1.3表的一些字段属性介绍.................................................................... 8
SQL语句基本用法............................................................................................... 9
1.1INSERT语句用法..................................................................................... 9
1.2SELECT语句用法.................................................................................... 10
1.3DROP语句用法...................................................................................... 10
1.4ALTER语句用法..................................................................................... 10
1.5UPDATE语句用法.................................................................................. 11
SQL语句的请求结果.......................................................................................... 11
1.1排序(SORT)结果............................................................................... 11
1.2指定输出记录数................................................................................... 12
1.3WHERE关键字用法................................................................................ 13
1.4LIKE关键字用法.................................................................................... 13
SQL语句运算符................................................................................................. 14
1.1AND(&&)运算符................................................................................ 14
1.2OR(||)运算符.................................................................................... 14
1.3NOT(!)运算符.................................................................................... 15
1.4逻辑运算符在SQL语句中的应用........................................................... 15
1.5运算符优先级....................................................................................... 16
SQL注入........................................................................................................... 17
1.1SQL语句在Web应用中的使用............................................................... 17
1.2SQL注入漏洞的产生.............................................................................. 17
1.3SQL注入的类型..................................................................................... 18
1.4修改SQL语句请求逻辑......................................................................... 19
1.4.1SQL注入点测试........................................................................... 20
1.4.2OR注入....................................................................................... 20
1.5注释符................................................................................................. 22
1.6利用注释符绕过用户登录验证.............................................................. 23
1.7Union关键字讲解.................................................................................. 24
1.8Union 关键字注入................................................................................. 26
Payload构造与利用........................................................................................... 29
1.1枚举数据库.......................................................................................... 29
1.1.1INFORMATION_SCHEMA 数据库讲解............................................ 29
1.1.2 SCHEMATA表讲解....................................................................... 30
1.2读文件................................................................................................. 32
1.2.1权限等级.................................................................................... 33
1.2.2LOAD_FILE................................................................................... 34
1.3写文件................................................................................................. 35
1.3.1判断是否拥有写文件权限............................................................ 35
1.3.2写入一个web shell文件.............................................................. 36
实战训练................................................................................................................. 37
数据库介绍
在我们开始学习SQL注入技术之前,我们需要了解我们是怎样来操作数据库的,我们是通过SQL语句来操作数据库,一个web应用是通过后端数据库存储数据,然后web应用根据用户的相关操作来执行相应的SQL语句获取数据库中的数据或者将数据写入数据库中,例如:用户的登录和新用户的注册
数据库的类型有很多,每种数据库它都有自己的一套语法,并且随着数据库的数据增加,读写数据就会变慢,这样Web应用的执行效率就大大降低了,这就导致我们需要采用一个数据库管理系统(DBMS)来对数据库进行管理,来提高Web应用的读写效率
数据库管理系统(DBMS)介绍
数据库管理系统是用来创建和管理数据库的,随着时间的发展,更多的数据库管理系统被设计出来,例如,关系数据库管理系统(RDMBS),非关系数据库管理系统(NoSQL)等
那我们如何操作数据库管理系统,这里我们有多种方法来操作数据库管理系统,例如:
命令行工具,一些图形化的管理工具,应用程序接口(API)等
基本数据库管理系统(DBMS)的功能,如下:
并发性(Concurrency): 在生产环境下,也许同时有多个用户操作这个数据库,DBMS 确保这些并发交互成功而不会损坏或丢失任何数据
一致性(Consistency):大量的并发交互,DBMS 需要确保数据在整个数据库中保持一致和有效
安全性(Security): 通过用户验证的用户只能以他拥有的权限来操作DBMS,这就防止了未验证的非法用户来操纵
可靠性(Reliability): 在数据丢失的情况下,数据库备份很容易恢复到之前状态
SQL语句:用户与数据库进行交互的命令,用户通过SQL语句操作数据库执行相应操作
通常用户在一个网站查看一些内容时,网站是如何从后端数据库中获取数据返回给用户的,基本过程如下图所示:
数据库的类型
一般的数据库分为关系型数据库(RDBMS)和非关系型数据库(NOSQL),关系型数据库通过SQL语句与用户交互,非关系型数据库通过一些特定的方法与用户交互
1.1关系型数据库(RDBMS)
顾名思义,就是这种数据库里面创建的表之间可以相互关联,我们只需输入一个信息,就能获取和它相关联的所有信息,打个比方来说,我们需要存储一个客户信息的数据,我们可以创建一张表只记录这个客户的基本信息,例如:姓名,年龄,性别,联系方式,然后再创建一张表记录客户的详细购买的产品信息,关系型数据库就能很好的把这两张表关联起来,我们查询的时候只需输入用户名,那么这个用户的所有信息就会被查询出来,表与表之间是通过key(主键)来实现关联,这样所有的记录就能相互联系,便于用户查询
关系数据库的种类比较多,
例如:”MicrosoftAccess”,”MySQL”,”SQL Server”,”Oracle”,”PostgreSQL”等等
关系型数据库是由表组成,我们查询数据,其实就是对表的操作,表是由字段(columns)组成,例如:id,username,first_name,last_name等,通常id字段作为一张表的key(主键),通过它和其他表进行关联,如下图:
Users :
id |
username |
First_name |
Last_name |
1 |
admin |
admin |
admin |
2 |
test |
test |
test |
Posts:
id |
User_id |
date |
content |
1 |
1 |
01-01-2022 |
xxxxxx |
2 |
2 |
02-01-2022 |
xxxxxx |
我们把users表的id字段与posts表的user_id字段关联起来,例如,当我们查询admin用户时,我们就能获取到他的所有相关信息,users表和posts中的信息
1.2非关系型数据库(NOSQL)
非关系型数据库通过存储模型来存储数据,不同的数据存储数据模型不一样,非关系型数据库相对于关系型数据库数据存储方式更加的灵活,具有可拓展性,所以,当我们不好定义一个数据结构来存储数据的时候,我们就可以用非关系型数据库来存储我们的数据,NOSQL通常有几种存储模型,如下:
Key-Value存储模型
Document-Based存储模型
Wide-Column存储模型
Graph存储模型
这些数据存储模型,区别在与存储数据的方式不一样,例如,Key-Value存储模型,通常将数据存储为JSON或者XML结构,如下:
Posts:
JSON结构:
{
"100001": {
"date": "01-01-2022",
"content": "xxxxxxx"
},
"100002": {
"date": "02-01-2022",
"content": "xxxxxxx"
},
"100003": {
"date": "03-01-2022",
"content": "xxxxxxx"
}
}
Tips:JSON结构是以{‘key’:’value’}结构这样一对一对的存储数据的,一个key对应一个value,常用的NOSQL是MongoDB文章来源:https://www.toymoban.com/news/detail-439498.html
MySQL数据库介绍
本章我们以MySQL文章来源地址https://www.toymoban.com/news/detail-439498.html
到了这里,关于Hack The Box -SQL Injection Fundamentals Module详细讲解中文教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!