• SQL注入:原理及示例


    SQL注入攻击是一种在真实环境中较为常见的漏洞。主要由用户在于服务端数据库,产生交互时,插入恶意数据,从而产生的一种web漏洞,该漏洞可能导致服务端敏感数据泄露,读写数据,严重可控制服务器主机

    sql注入示例

    前端:用户登录表单

    1. <form action="login.php" method="post">
    2. 用户名:<input type="text" name="username">
    3. 密码:<input type="password" name="password">
    4. <input type="submit" value="登录">
    5. form>

    后端 :通过拼接用户输入,查询数据库

    1. $username = $_POST['username'];
    2. $password = $_POST['password'];
    3. // 错误的示例:直接将用户输入拼接到SQL语句中
    4. $query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
    5. $result = mysqli_query($conn, $query);
    6. ?>

    当正常用户在前端用户登录表单,输入登录信息,提交到后端服务器时,会将用户输入拼接到数据库查询语句中,进行用户登录的验证

    当恶意用户进行登录时会构造下方sql语句从而进行绕过

    用户名:admin' --  密码:000000

    此时拼接到sql语句中

    SELECT * FROM users WHERE username = 'admin' -- ' AND password = '000000'

    当此sql语句进行查询时将会直接登录admin用户,无论密码是否正确

    原理:

    输入用户名时拼接了sql语句,通过 ' 对用户名进行闭合, --  将后续sql语句进行注释。此时数据库进行查询,如果存在用户名为admin的用户,结果返回为真,及可登录。

    扩展:如何快速找到真实站点存在的sql注入漏洞

    1.打开google[需vpn]浏览器使用高级查询语法,查询可能存在漏洞的url

    sql注入漏洞,查询语法集成

    2.在注入点输入 ' 观察页面有无异常

    3.如有异常进行后续攻击

    存在SQL注入漏洞网站[不管用或修复,评论@我换新]

    url: https://www.uni-1.com.hk/about_en.php?id=2
    注入点类型:数值
    sql报错回显:无
    sql语句执行:[order by] [union]
    字段数:14
    回显点:12,13,14

  • 相关阅读:
    prometheus监控java应用的jvm指标
    zigzag算法
    Revit中“梁标注”怎么操作?有插件能实现吗?
    Flink部署——内存配置
    Python中最快的循环方式
    深度长文探讨Join运算的简化和提速
    简单搭建redis cluster集群
    Python 算法交易实验44 实验笔记2
    静态双位置继电器XJLS-8G/220
    C函数使用
  • 原文地址:https://blog.csdn.net/h1008685/article/details/140312057