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


    开始我们的实验

    数字型注入                  

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

     

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

    $id = $_POST['id']

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

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

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

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

    根据刚才的逻辑,payload为:

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

    字符型注入                      

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

     

    根据上图返回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后面的单引号闭合掉

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

  • 相关阅读:
    2014年7顶级编程语言一个月
    Swift学习 --- 2.3和字符串
    自己写CPU第五级(4)——逻辑、实现移动和空指令
    读书笔记-互联网思维阅读10其中一本书《自由》
    Linux学习笔记——如何使用共享库交叉编译
    Vim识别编码
    linux RWT
    GConf 错误:联系配置服务器失败;某些可能原因是需要为 ORBit 启用 TCP/IP 联网
    Mysql 表忽略大小写~~
    andorid studio
  • 原文地址:https://www.cnblogs.com/escwq/p/12624836.html
Copyright © 2020-2023  润新知