day5-SQL注入之数据类型及提交方式

学习目标:

了解常见的注入的数据类型及浏览器向服务器提交数据的方式

注入数据类型

(1)数字型注入点

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

(2)字符型注入点

网页链接有类似的结构 http://xxx.com/users.php?name=admin 这种形式,其注入点 name 类型为字符类型,所以叫字符型注入点。这一类的 SQL 语句原型大概为 select * from 表名 where name='admin' 值得注意的是这里相比于数字型注入类型的sql语句原型多了引号,可以是单引号或者是双引号。若存在注入,我们可以构造出类似与如下的sql注入语句进行爆破:select * from 表名 where name='admin' and 1=1 ' 我们需要将这些烦人的引号给处理掉。
典型的类型就是我们sqli-labs的第二关

(3)搜索型注入点

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

(4) xx型注入点

其他型:也就是由于SQL语句拼接方式不同,在SQL中的实际语句为:,其本质为(xx’) or 1=1 # )
常见的闭合符号:’ ‘’ % ( {
典型的类型就是我们sqli-labs的第三关,sqli-labs的第三关呢,我们需要采用括号将其闭合,才能今后后面的注入

http://localhost/sqli-labs-php7-master/Less-3/?id=1') order by 4-- 
这是在第三关猜解字段数量的代码,具体的后续操作和day2一样,不了解的同学可以回顾day2注入第二关的流程

在这里插入图片描述

数据提交方式

GET方式注入

get注入方式比较常见,主要是通过url中传输数据到后台,带入到数据库中去执行,可利用联合注入方式直接注入
目前我们所做的前三关都是采用的 GET提交,通俗易懂直接从地址栏中进行语句注入

POST方式注入

post提交方式主要适用于表单的提交,用于登录框的注入

方法:利用BurpSuite抓包进行重放修改内容进行,和get差别是需要借助抓包工具进行测试,返回结果主要为代码,也可转化为网页显示
BurpSuite我就不具体演示如何下载了,比较麻烦,网上有很多案例,下面我演示如何通过post注入,我们需要用到sqli-labs第11关
在这里插入图片描述

  1. 首先我们线打开BurpSuite,选择这个地方
    在这里插入图片描述

  2. 如果用自己的浏览器的话需要配置证书和代理,所以我们直接采用它自带的
    在这里插入图片描述

  3. 输入第十一关的地址http://localhost/sqli-labs-php7-master/Less-11/

  4. 然后我们就进行抓包,要先抓包,再提交数据,数据随便填
    在这里插入图片描述
    在这里插入图片描述
    5.之后我们就会看到BurpSuite中抓住了一个包,我们点进去最底部可以发现提交的数据,我们在这里进行更改
    在这里插入图片描述

  5. 然后我们就可以进行注入了,拿取后端数据库版本为例

uname=zhansan' and 1=2 union select 1,version()--+&passwd=12345&submit=Submit
更改好之后我们放行

在这里插入图片描述
在这里插入图片描述
这样我们就拿到了数据库版本,后续同day2

Request方式注入

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

据我了解request的方式是get和post的数据都可以获取到

HTTP头注入

什么是Header头?

通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机响应消息。 这两种类型的消息有一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。 HTTP的头域包括通用头,请求头,响应头和实体头四个部分
cookie提交是头部提交的一种,在遇到有魔术函数的时候我们一般通过cookie提交进行跳过,

这里没学好后期补回来

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值