数据库的运行原理及SQL注入

数据库的运行原理
简单了解:
数据库是什么?
定义:在软件系统中,用于管理和存放所有数据内容
那我们就好奇了,我们需要怎么样去管理?
应用:我输入账号和密码,然后点击登录按钮,实现一次登陆操作   将输入的数据放到数据库里查询是否有匹配项,若有,直接返回登入成功;若没有,则报错。
由此,我们可以得到:
数据库是可以被操作的,用来查询和获取数据的。
 
那看到这里你也肯定会疑惑:
数据库是如何被操作的呢?
 
 
数据存储类似于excel形态,要操作数据,要通过SQL语法来完成,实现数据的增删改查!
 
 
SQL注入
 
怎么进行注入?
1.可以直接在输入框进行注入(get注入)
2.进行url进行注入(get注入)
3.基于请求进行注入(包括基于请求头(基于cookie,基于referer),体注入,可以在url注入)
 
 
SQL注入的原理:
以恶意的SQL语法来对正常的系统进行注入,以期望获取到系统中的各类数据或者获得系统的更高权限,从而实现对数据的篡改,窃取!(打击这种行为!)
 
还有个在软件开发的时候要想到:一定要从最坏的角度来思考用户会对你开发的软件做什么(人心深不可测啊QwQ)
 
 
话不多说,我们开始实践:
(你可以在DVWA上搭靶场)
1.了解到这是什么数据类型
 
2.了解到输入框的输入要求(假设它是字符类型)那么输入其他的特殊类型会报错
 
SQL注入中的万能语句:
1’ or 1 = 1 #  // 可以把它拆分成两个语句理解 or 前面和后面  1 = 1在OI中是不是恒定为真?那么在此也是一样,表示真,对应的操作就是把数据库中关于  1’  的所有数据都给它显示出来了! !
//而这个#是特定的东西,#表示注释掉,就是后面的东西都不起作用了!
 
 
select database( ) 获取数据库的名称
接下来我们就需要获取数据库中的表,之后要获取数据库的字段,然后获取到字段的信息(分治思想!)
 
有些软件显示数据的时候可能只会显示一条信息,那我们就得用 group_concat( )函数将他们合成一条信息
 
ps:
SQL注入需要寻找注入点
SQL注入主要针对的是后端程序上调用数据库时所使用的SQL语句,通过注入恶意的SQL代码,来实现自己的非法路径。
SQL注入的操作系统3_哔哩哔哩_bilibili   详情可以点这个学习
 
posted @ 2022-12-21 22:05  Alaso_shuang  阅读(56)  评论(0编辑  收藏  举报
2 3
4