zoukankan      html  css  js  c++  java
  • 基于约束的SQL攻击

    基于约束的SQL攻击

    学习了一个新的基于SQL的攻击方式,应该也是大多数不断堆积【空格】的攻击方式的原理

    原理

    在SQL中执行字符串处理时,字符串末尾的空格符将会被删除

    数据库User表为:

    ID Username Password
    1 V1ce0ye 123456

    User表中字段详细数据为:

    类型 长度
    ID int 11
    Username varchar 20
    Password varchar 255

    其中Username字段限定字符长度为20,此时如果我们注册一个用户,Username为V1ce0ye[30*空格]1,Password为654321,语句为

    INSERT User (Username,Password) VALUES('V1ce0ye             1','654321')
    

    此时数据表中

    ID Username Password
    1 V1ce0ye 123456
    2 V1ce0ye 654321

    此时存在两个Username为V1ce0ye的列,而此时以V1ce0ye与654321这个密码登录时,会登录查询到的第一个用户数据也就是原始用户,造成登录。

    思考

    像这种漏洞危害还是较小,大部分后端都会以最先查到的username的password进行匹配,以最新的几率很小

    而且一般管理员用户与普通用户存储在不同的表,不太可能去越权登录到管理员用户,危害大多为普通用户进行登录。

    修复

    • 后端代码检测输入数据长度
    • 将需要防护字段设置为UNIQUE
  • 相关阅读:
    Linux权限
    Linux用户和用户组操作
    input输入框美化
    Ajax原理一篇就够了
    CSS样式----浮动(图文详解)
    linx系统操作
    文件打包,压缩,解包,解压缩
    Linux学习笔记(一)
    ios 11导航栏替换返回按钮图片,隐藏文字
    swift开发笔记23 BirthDays
  • 原文地址:https://www.cnblogs.com/vincebye/p/12730692.html
Copyright © 2011-2022 走看看