第二十四天:WEB攻防-通用漏洞&SQL注入&MYSQL跨库&ACCESS偏移

什么是sql注入?

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

sql注入的产生原理:

漏洞产生根本条件:可控变量 特定函数

第二十四天:WEB攻防-通用漏洞&SQL注入&MYSQL跨库&ACCESS偏移_第1张图片
第九条错误原因表示得page=1这个参数和注入语句,而不是id注入,因此要将注入语句写在id后面

sql注入流程

1:猜测数据库类型
2:根据类型选择思路

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

Access数据库特点是 只有一个数据库 没有数据库用户,一个数据库下很多不同的表,表中有不同的字段(列),字段下有值
Access数据库独立存在
数据库由以下等级层层剥离:数据库名>表名>列名>数据
我们再注入得过程就是依次得到我们所需要得数据,也是因此再注入 的过程中也是层层递进

Access数据库注入-简易注入-字典猜解

由于Access数据库特性导致sql注入是需要借助字典和列名的,那么就会出现表名和列名猜解不到,可以自定义社工字典或采用偏移注入

Access数据库注入-偏倚注入-报错显示

偏移注入解决列名已知,表名未知

mysql统一管理

数据库A=网站A=数据库用户A
表名
列名
数据
数据库B=网站B=数据库用户B
数据库C=网站C=数据库用户C
为了保护数据库安全,mysql内置有root最高用户,划分等级,每个用户对应管理一个数据库,这样保证无不关联,从而不会影响其他数据量的运行

为了网站和数据库的安全性,MYSQL内置有ROOT最高用户,划分等级,每个用户对应管理一个数据库,这样保证无不关联,从而不会影响到其他数据库的运行。
MYSQL两种思路:
1、非ROOT的注入攻击:常规类的猜解
2、ROOT用户的注入攻击:文件读写操作,跨库查询注入等
黑盒测试中可以采用user()获取当前用户权限,白盒中看连接用户即可!

select * from product where id=1513
select * from product where id=1513

查询admin表名:
UNION select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
查询admin表名下的admin等列名
UNION select 1,2,admin,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin

MYSQL5.0以上版本:自带的数据库名information_schema
information_schema:存储数据库下的数据库名及表名,列名信息的数据库
information_schema.tables:记录表名信息的表
information_schema.tables

两种方式

非root的注入攻击:常规类的猜解
root用户的注入攻击:文件读写操作,跨库注入

你可能感兴趣的:(网络安全,sql,mysql,数据库)