zoukankan      html  css  js  c++  java
  • SQL注入学习总结(七):其他类型SQL注入之SQL约束攻击

    其他类型注入的详解(4)

    4.sql约束攻击

    知识点

    1. 数据库字符串比较:在数据库对字符串进行比较时,如果两个字符的长度不一样,则会将较短的字符串末尾填充空格,使两个字符串的长度一致.

    比如这两条语句

    select * from admin where username='vampire'

    select *from admin where username='vampire '

    他们的查询结果是一致的.

    1. INSERT截断: 这是数据库的另一个特性,当设计一字段时,我们都必须对其设定一个最大长度,比如CHAR(255),VARCHAR(20),但是当长度超过限制的时候,数据库就会将其截断,只保留限定的长度.(注意这里我们为什么需要insert注入:空格之后一定需要再跟一个或多个任意字符,防止程序在检查用户名是否已经存在时匹配到目标用户)

    限制条件

    1. 服务端没有对用户名长度进行限制.
    2. 登陆验证的SQL语句没有和用户名和密码一起验证。如果是验证流程是先根据用户名查找出对应的密码,然后再比对密码的话,那么也不能进行利用。因为数据库一般取第一条则是目标用户的记录,那么你传输的密码肯定是和目标用户密码匹配不上的

    实战:Bugku-login1

    login1

  • 相关阅读:
    ffmpeg参数说明
    【FFmpeg】FFmpeg常用基本命令
    ffmpeg最全的命令参数
    数据库总结
    linux redis安装及JAVA使用jedis
    记录一次工作中jvm被linux杀死的调查
    ExecutorService线程池submit的使用
    java四种引用与回调函数
    java排序
    NIO教程笔记
  • 原文地址:https://www.cnblogs.com/vincy99/p/9642941.html
Copyright © 2011-2022 走看看