码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • CTF--Web安全--SQL注入之‘绕过方法’


    一、什么是绕过注入

    众所周知,SQL注入是利用源码中的漏洞进行注入的,但是有攻击手段,就会有防御手段。很多题目和网站会在源码中设置反SQL注入的机制。SQL注入中常用的命令,符号,甚至空格,会在反SQL机制中被实体化,从而失效,这时就要用到绕过的方法继续进行SQL注入。


    二、过滤注释符绕过

    1、反注入形式:

    SQL注入语句中,常见的注释符有三种:

    分别写作 ?id=1'--+ / ?id=1' # / ?id=1' %23。

    但以上三种形式的注释符会被反注入机制(preg_replace()函数)过滤掉,源码如下:

    输入的注释符会被 $replace 取代,也就是""空字符,相当于没有添加任何东西->失效。

    2、绕过方法:

    (1)字符型:

    /?id=1' or '1'='1

    (2)数字型因为不用注释符,所以不用考虑。


    三、过滤 and 和 or 绕过

    1、反注入形式:

    and 和 or 同样也是用preg_replace()函数来进行过滤,源代码如下:

    2、绕过方法:

    (1)大小写绕过:

    /?id=1' anD 1=1 --+

    (2)  复写过滤字符:

    /?id=1 anandd 1=1 --+

    (3)用 && 取代 and,用 || 取代 or。

    /?id=1 && 1=1 --+

    四、过滤空格绕过

    1、反注入形式:

    2、绕过方法:

    网上有很多种方法,我更倾向于 %A0 或 %0A 来取代空格:

    /?id=1'%0Aunion%0Aselect%0A1,2,3%0Aor%0A'1'='1

    五、过滤逗号,利用JOIN、绕过

    1、反注入形式:

    2、绕过方法:

    /?id=1' union select * from (select 1)a join (select 2)b join (select 3)c --+

    唯一不方便之处在于:在获取username 和 password时需分别获取,如若使用 group_concat()函数,会用到 ‘,’. 。


     六、过滤 union 和 select 绕过

    1、反注入形式:

    2、 绕过方法:

    (1)大小写绕过   + (2)复写绕过:

    /?id=1 uniunion seleSelectct 1,2,3

    七、宽字节绕过

    1、反注入形式:

    对于字符型注入,我们通常要使用 ' 、"、')、") 等进行闭合,而若在前面加上\ (反斜杠),则会使闭合符号失效,达不到闭合的效果,从而导致注入失败。

    2、绕过方法:

    将 %df 和 \ 组合到一起 = %df\ -->一个无法识别的中文字符。

    命令代码演示:

    /?id=1 %df' --+

  • 相关阅读:
    请编码实现动物世界的继承关系……定义一个体育活动类(Sports)作为基类……编写一个程序,并满足如下要求……
    uniapp配置小程序分包、路由系统跳转、
    BUUCTF·[网鼎杯 2020 青龙组]boom·WP
    【C++】C 语言 和 C++ 语言中 const 关键字分析 ( const 关键字左数右指原则 | C 语言中常量的原理和缺陷 | C++ 语言中常量原理 - 符号表存储常量 )
    UI/UX design
    准备前工作
    Kubernetes初始化失败dial tcp 127.0.0.1:10248: connect: connection refused.
    七周成为数据分析师 | Excel
    实现高效消息传递:使用RabbitMQ构建可复用的企业级消息系统
    MQ消息队列(五)——RabbitMQ进阶 MQ集群+集群的部署+集群的扩容
  • 原文地址:https://blog.csdn.net/2302_79800344/article/details/136078500
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号