【网络安全】SQL注入原理及常见攻击方法简析

文章目录

    • 登陆验证后端逻辑
    • 未知用户名注入攻击原理
      • 手工注入
      • 基于#注释符的sql注入
      • 基于错误消息的sql注入
      • 报错注入
      • 报错注入与基于错误消息的sql注入区别
    • 已知用户名注入攻击原理
      • 基于- -注释符的sql注入
      • 基于/* */注释符的sql注入
    • 已知用户名与未知用户名攻击区别
    • sql注入绕过
      • 利用数字型注入
        • 基于布尔型运算的盲注攻击
        • 基于联合查询的注入攻击
        • 基于数字型操作符的注入攻击
      • 利用模糊匹配注入
    • sql注入攻击思路

登陆验证后端逻辑

一般而言,登录验证逻辑语句为:
select * from 表名 where name(用户名)='$输入' and pass(密码)='$输入'
当数据表中同时存在输入的name和pass字段时,页面将回显登录成功。

未知用户名注入攻击原理

若后端逻辑为:select * from users where name='xx' and password='xx'

手工注入

在用户名中输入qiu' or '1=1 ,密码中同样输入qiu' or '1=1
xx被输入的内容替换,查询语句变为:
select * from users where name='qiu' or '1=1' and password='qiu' or '1=1'
等同于

SELECT 

你可能感兴趣的:(sql,web安全)