浅谈Mysql注入

简介

sql注入就是一 种通过操作输入来修改后台操作语句,把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到执行恶意的SQL命令 来进 行攻击的技术。
 

分类

按变量类型分:

数字型注入

字符型注入

按提交方式类型:

GET注入

POST注入

Cookie注入

按注入方式类型:

报错注入

盲注

  • 布尔盲注
  • 时间盲注

union注入

编码类型:

宽字节注入

常见数据库识别:

sql server #windows(iis)

mysql       #apache

microsoft sql server #asp或.net

mysql                      #php

oracle/mysql           #java

MySQL 5.0以上和MySQL 5.0以下版本区别

MySQL 5.0 以 上 版 本 存 在一 个 存 储 着 数 据 库 信 息 的 信 息 数 据库 'INFORMATION_SCHEMA' ,其中保存着关于MySQL服务器所维护的所有 数据库的信息(数据库名,数据库的表,表栏的数据类型与访问权限等 );而5.0以下不存在。

'information_schema' 是系统数据库,记录当前数据库的数据库,表,列,用户权限等信息。
'SCHEMATA' 储存着mysql所有数据库的基本信息(数据库名,编码类型路径等)。
'TABLES'       储存着mysql中的表信息(数据库引擎,行,创建时间,更新时间等)。
'COLUMNS'    储存mysql中表的列信息(列的信息, 列的数据类型,编码类型,权限,注释等 )。

手工注入基础流程

mysql>=5.0;利用select语句中获得有用的信息,确定该数据库中的字段数和哪个字段 能够输出。

获取字段数

order by n #n是数字,通过改变n的值观察页面返回情况进而确定字段数

获取系统数据库名

select schema_name from information_schema.schemata;

在版本大于等于5.0的mysql中数据库名放在information_schema的数据库下的schemata数据表中的schema_name字段中。

获取当前的数据库名

select database();

获取数据库中的数据表

select group_concat(table_name) from information_schema.tables where table_schema=database();

获取表中的字段

select group_concat(column_name) from information_schema.columns where table_schema='users';

or

select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users';

获取字段值

select group_concat(user,password) from users;

mysql<5.0没有默认数据库information_schema,所以通常只能手工枚举,常用于盲注。

注入绕过

  • 大小写绕过
  • 双写绕过
  • 编码绕过(url编码、十六进制)
  • 内联注释绕过
    • #
    • -- (有空格)
    • --+
    • /**/
    • /*!...*/ 内联注释
  • 关键字替换
    • 逗号绕过
    • 比较符合绕过(> , <)
    • 逻辑符号替换 (and=&& , or=|| , xor=| , not=!)
    • 空格绕过(括号,+号等)
  • 等价函数绕过
    • hex()、bin() = ascii()
    • concat_wa() = group_concat()
    • mid()、substr() = substring()
  • http参数污染绕过


结语

已无暇顾及过去,要向前走。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cheng-Ling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值