系列2:6、sql注入之数据类型与提交方式

本文介绍了四种常见的SQL注入类型,包括数字型、字符型、搜索型和其他类型注入,并详细解释了每种类型的注入原理及示例。同时,还讨论了三种提交方式:GET、POST和Request,帮助读者理解如何防范SQL注入风险。
摘要由CSDN通过智能技术生成

一、 数据类型

1、数字型注入点人。

许多网页链接有类似的结构http://xox.com/users.php?id=1基于此种形式的注入,一般被叫做数字型注入点,缘由是其注入点 id类型为数字,在大多数的网页中,诸如查看用户个人信息,查看文章等,大都会使用这种形式的结构传递id等信息,交给后端,查询出数据库中对应的信息,返回给前台。这一类的SQL语句原型大概为
select * from表名 where id=1若存在注入,我们可以构造出类似与如下的sq注入语句进行爆破: select * from表名where id=1 and 1=1

2、字符型注入点

网页链接有类似的结构http://xox.com/users,php?name=admin这种形式,其注入点name类型为字符类型,所以叫字符型注入点。这一类的SQL语句原型大概为select * from表名 where name= 'admin’值得注意的是这里相比于数字型注入类型的sql语句原型多了引号,可以是单引号或者是双引号。若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破: select * from表名 where name= ‘admin’ and 1=1’我们需要将这些烦人的引号给处理掉。
注意:mysql中,如果是字符型,那么输入的在1后边的内容都会被过滤掉。

例:
sqllabs第一关中,url中输入id=1’有报错,说明此时为字符型注入点。
在这里插入图片描述
此时的sql语句为

select * from users where id='1''

3、搜索型注入点

这是一类特殊的注入类型。这类注入主要是指在进行数据搜素时没过滤搜索参数,一般在链接地址中有"**keyword=**关键字”有的不显示在的链接地址里面,而是直接通过搜索框表单提交。此类注入点提交的SQL语句,其原形大致为: select * from表名 where字段like’%关键字%'若存在注入,我们可以构造出类似与如下的sq注入语句进行爆破: select * from表名where字段like “%测试%’ and “%1%”=”%1%"

注意:**%**代表通配符
例:(以pikachu中的搜索型注入为例)
在这里插入图片描述
此时的sql语句为:

select * from user where like '%y%';

而当输入**y%’ or 1=1#**时,就可以查出所有的信息
在这里插入图片描述
此时的sql语句为:

select * from user where like '%y%' or 1=1#%';
# 输入的%与前边的%形成闭合,or 1=1 使得肯定成立,而#会将后边的字符进行注释,使得不执行

4、其他型注入

其他型:本质就是由于SQL语句拼接方式不同
常见的闭合符号:’"%( {
例:在上边的例子中,如果系统内的sql语句为select * from user where like (’%y%’ ); 那么,在进行注入时我们就需要输入一个)与前边的(形成闭合。此时的sql语句为:select * from user where like (’%y%’) or 1=1#%’ );

二、提交方式

1、GET方式注入

get注入方式比较常见,主要是通过url中传输数据到后台,带入到数据库中去执行,可利用联合注入方式直接注入
之前文章中sqllabs中第二关的例子就为get方式

2、POST方式注入

post提交方式主要适用于表单的提交,用于登录框的注入
方法:利用BurpSuite抓包进行重放修改内容进行,和get差别是需要借助抓包工具进行测试,返回结果主要为代码,也可转化为网页显示
在这里插入图片描述

3、Request方式注入

概念:超全局变量PHP中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可以用,这些超全局变量是:
REQUEST(获取GET/POST/COOKIE)COOKIE在新版本已经无法获取了
_POST(获取POST传参)
GET(获取GET传参)
_COOKIE(获取COOKIE传参)
$_SERVER(包含了诸如头部信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组)
SERVER详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值