开始我们的实验

数字型注入                  

Pikachu-SQL注入之数字型注入和字符型注入

 

发现有一个下拉框,随便选一个查询,,并没有在url里面去传参,可以发现是用post(表单)方式提交的

Pikachu-SQL注入之数字型注入和字符型注入 

根据上图yy一下后台的逻辑:

$id = $_POST['id']

select 字段1,字段2 from 表名 where id = $id  

正常情况下这里的$id值为(1~6),我们换成 1 or 1=1通过返回来看看后台会不会把这个逻辑去执行。

 

POST的请求我们需要抓包来测试,因为输入框只有一个可选择的表单,没法直接构造语句

在输入框选择id,浏览器设置代理,提交,抓包,为了方便发送给Repeater模块

根据刚才的逻辑,payload为:

Pikachu-SQL注入之数字型注入和字符型注入

可以发现除啦id=1的其他id也都返回出来啦

 

字符型注入                      

Pikachu-SQL注入之数字型注入和字符型注入

 

随便输入下,发现请求是通过url提交的,是一个get请求。

Pikachu-SQL注入之数字型注入和字符型注入 

根据上图返回yy下后台的逻辑

$uname=$_GET['kobe']

select 字段1,字段2 from 表名 where username='kobe';(在后台数据库中字符串kobe不打单引号会报错的)

 

构建payload

如果这个 kobe or 1=1  这样会报错的,因为会变成这样,select 字段1,字段2 from 表名 where username='kobe or 1=1'

会被单引号处理掉,这个整体会被当做字符串,,而这个字符串在后台是不存在的。我们需要构造闭合,构造合法的SQL语句

kobe' or 1=1#'  kobe' 把后台username前面的单引号闭合掉,#'或者--  '    把后台username后面的单引号闭合掉

Pikachu-SQL注入之数字型注入和字符型注入

如果想直接在url里面提交的话,我们的payload要做url编码

 

相关文章:

  • 2022-01-18
  • 2021-04-25
  • 2021-04-21
  • 2021-08-19
  • 2022-12-23
  • 2021-10-31
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-09
  • 2021-06-09
  • 2021-09-11
  • 2022-12-23
  • 2019-10-04
  • 2021-06-02
相关资源
相似解决方案