博客
关于我
sqli-labs ————less -26a
阅读量:172 次
发布时间:2019-02-28

本文共 513 字,大约阅读时间需要 1 分钟。

在Less-26a关卡中,我们面对的挑战是如何绕过过滤机制,利用合法的SQL语句执行注入。以下是解决思路和最终的SQL构造方法:

解决思路

  • 理解过滤机制:过滤机制使用preg_replace去掉了多个有害字符,如OR、AND、/、*、--、#、空格等。因此,我们需要构造一个有效的id值,使其能够通过这些过滤。
  • 利用UNION关键字:由于直接使用报错注入被排除,我们可以使用UNION来执行两个查询。前面的查询闭合括号,插入自己的SQL语句,然后闭合后面的括号。
  • 构造有效的id:构造一个看起来合法的id值,例如1,并在后面添加SQL语句。
  • 最终的SQL构造方法

    id=1') union select user(),3||('1

    解释

  • 闭合前面的括号1')闭合了前面的WHERE条件后的括号。
  • 插入SQL语句union select user(),3||('1插入了一个联合查询,获取用户信息user()和常数3,然后使用||连接字符串('1,确保后续查询有效。
  • 闭合后面的括号1闭合了前面SELECT语句的括号,使整个查询有效。
  • 通过这种方法,我们成功绕过了过滤机制,利用合法的SQL语句执行注入,获取所需的信息。

    转载地址:http://kprc.baihongyu.com/

    你可能感兴趣的文章
    php之引用
    查看>>
    PHP之数组和函数的基本教程
    查看>>
    UVa 10465 - Homer Simpson
    查看>>
    php九九乘法表加粗,PHP九九乘法表
    查看>>
    PHP二维数组将重复键值合并重组成三维数组
    查看>>
    PHP二维数组转换为一维数组
    查看>>
    PHP二维数组重组
    查看>>
    PHP交换两个变量值
    查看>>
    php代码执行完整流程介绍
    查看>>
    PHP代码格式化工具phpcf常见问题解决方案
    查看>>
    PHP使用3DES算法加密解密字符串
    查看>>
    PHP使用curl multi要注意的问题:每次使用curl multi同时并发多少请求合适
    查看>>
    php使用memcached扩展的一个BUG
    查看>>
    SpringBoot基础教程2-1-11 RestTemplate整合HttpClient
    查看>>
    PHP入门part1
    查看>>
    PHP兼容性检查,PHP升级语法检查(PHPCompatibility+PHP_CodeSniffer)
    查看>>
    PHP内核介绍及扩展开发指南—基础知识
    查看>>
    php内核基础说明
    查看>>
    PHP写日志fwrite和file_put_contents的区别与性能
    查看>>
    PHP写计划任务
    查看>>