mysql--sql注入中的小秘密

本文深入探讨SQL注入的各种类型,包括基于错误、联合查询、堆查询、盲注等,讲解了如何利用系统函数和字符串连接函数进行信息提取。同时,文章还提供了注释符的使用技巧及字段判断方法,演示了如何通过联合查询获取数据库信息。
摘要由CSDN通过智能技术生成

sql注入也知道了好长时间,一直很困惑,一遍学习一遍做个总结吧 。

注入类型

基于从服务器接收到的响应

基于错误的sql注入

联合查询的内容

堆查询注射

sql盲注

•基于布尔的盲注

•基于时间的 SQL 盲注

•基于报错的 SQL 盲注

基于如何处理输入的 SQL  查询(数据类型)

•基于字符串

•数字或整数为基础的

基于注入点的位置上的

▲通过用户输入的表单域的注射。

▲通过 cookie 注射。

▲通过服务器变量注射。 (基于头部信息的注射)

系统函数

version()—mysql版本

user()——数据库用户名

database()——数据库名

@@datadir——数据库路径

@@version_compile_os——操作系统版本

字符串连接函数

1. concat(str1,str2,...)——没有分隔符地连接字符串

2. concat_ws(separator,str1,str2,...)——含有分隔符地连接字符串

3. group_concat(str1,str2,...)——连接一个组的所有字符串,并以逗号分隔每一条数据

说着比较抽象,其实也并不需要详细了解,知道这三个函数能一次性查出所有信息就行了。

1.注释符

单行注释符

#,--

多行注释符

/* 需要闭合

2.判断当前数据库是否有字段名

对于一些可以直接看到表的,可以在表中搜索字段名。

解释一下为啥(model)的返回值不为空,因为(列名)就是遍历字段中不为false的内容,在mysql中字符串默认为零,而model里的数字默认为true,所以返回全表。

在加上or试试,据我测试,如果都为true,则返回的结果为两者的累加,一真一徦的话,则返回真的结果。

3.limit下的判断

order by判断字段数

测试出字段名为3个,接下来就是联合查询爆数据了

玩一下sql-lib

从最简单的开始,基于错误的注入,就是从错误信息中得到我们需要的信息,首先要做的就是让页面报错,可以使用',"等

根据报错信息构造

 缺少右括号,填一个,再注释一下,正常了

然后就是套路了。

order by 测试一下字段数,看到3时返回正常,4时返回错误

联合查询,union字段前面的置为false即可,一般用-1,and1=2等

 查看一下当前数据库,版本号等等。

 也可以爆数据库

?id=1' and 1=2 union select 1,group_concat(schema_name),version() from information_schema.schemata%23

 爆security的数据表

?id=1%27%20and%201=2%20union%20select%201,group_concat(table_name),version()%20from%20information_schema.tables where table_schema = 'security'%23

 爆users表的列

爆 数据

?id=1%27%20and%201=2%20union%20select%201,password,username%20from%20users where id=2%23

 

过滤绕过方法

 有的时候会遇到过滤的情况,比如#,可以尝试用%23绕过,上面的教程就是采用这样的方法。但还有其他过滤,总结一下

1.空格绕过

作用:空格在sql语句中起到分割的作用,不可或缺

方法:1.注释/**/代替

 2.+绕过

3.其他方法编码%20,内联注释等

2.表名等关键字被过滤

以information_schema.tables为例

空格 information_schema . tables

着重号 information</em>schema.tables

特殊符 /!informationschema.tables/

别名 information_schema.(partitions),(statistics),(keycolumnusage),(table_constraints)

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值