• Pikachu-Sql Inject(SQL注入)基本概述和原理


    先来看下我们的实验流程

    Sql Inject(SQL注入)概述

    哦,SQL注入漏洞,可怕的漏洞。

    在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞

    SQL注入又是怎么形成的呢???

    粗糙点来说:SQL注入漏洞主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄露的一种漏洞。

    SQL注入的攻击流程:

    其核心思想:构造一些测试的SQL语句,然后通过前端拼接进去,它传到后台之后,我们通过它返回的数据,

          看它是否有报错或者根据它返回的逻辑来判断 我们输入的内容在后台是不是被拼接到数据库里面执行了。

          如果是这样的,就以为着后端的数据库会接受我们前端一些其他的数据库操作,说明这个地方存在SQL注入。

     

    SQL注入-常见的注入点类型

    ●数字型    user_id = $id

    ●字符型    user_id = '$id'

    ●搜索型    text LIKE '%{$_GET['search']}%'"

    不管是啥型,总而言之,就是对SQL中的各种类型的输入进行闭合测试,构造合法SQL,欺骗后台执行!

     MySQL服务器支持3种注释:

    ✔从 '#' 字符从行尾

    ✔从 '--  ' 序列到行尾,请注意 '--'(破折号)注释风个要求第二个破折号后面至少跟一个空格符

    ✔从 /*序列到后面的*/序列,结束序列不一定在同一行中,因此该语法允许注释跨越多行。

    在构建代码时,一般会从如下几个方面的策略来防止SQL注入漏洞:
    1.对传进SQL语句里面的变量进行过滤,不允许危险字符传入;
    2.使用参数化(Parameterized Query 或 Parameterized Statement);
    3.还有就是,目前有很多ORM框架会自动使用参数化解决注入问题,但其也提供了"拼接"的方式,所以使用时需要慎重!

  • 相关阅读:
    设计模式相关,单例模式!
    混合App交互相关,jsBridge的原理
    Vue相关,插槽怎么用!
    Mysql相关,查询功能整理
    图文并茂讲解进程与线程
    线程与进程的区别及其通信方式
    算法,十进制数转任意进制数
    JavaScript,leetcode第198题,打家劫舍
    2.4G无线控制器附加AT2401C功放IC增加距离
    超低功耗WiFi :ESP8089
  • 原文地址:https://www.cnblogs.com/escwq/p/12618928.html
Copyright © 2020-2023  润新知