SQL注入原理

形成原因:用户输入的数据被SQL解释器执行
攻击的目的只有一个,就是为了绕过程序限制,使用户输入的数据带入数据库中执行,利用数据库的特殊性获取更多的信息或更多的权限。

注入漏洞分类

  • 数字型注入
  • 字符型注入

1.数字型注入

当输入的参数为整型时,如:ID,年龄,页码等,若存在注入漏洞,则可认为是数字型注入。

测试步骤

  1. www.xxxxx.com/test.php?ID=2 '测试页面是否出现异常
  2. www.xxxxx.com/test.php?ID=2 and 1=1测试页面是否和原始数据一样
  3. www.xxxxx.com/test.php?ID=2 and 1=2 返回数据始终为假

以上三个数据均为满足,则可能存在SQL注入。 这种数字型注入最多出现在ASP,PHP等弱类型中。

字符型注入

当输入的参数为字符串时,称为字符型。数字型与字符型最大的区别在于:数字型不需要单引号闭合,而字符串一般要使用单引号来闭合。

  • 数字型例句 select *from table where id=1
  • 字符型例句 select *from table where uername='admin'

字符型注入最关键的是如何闭合SQL语句以及注释多余的代码

数据库不同,字符串连接也不一样。

  • SQL Server 连接符为"+"
  • Oracle 连接符为"||"
  • Mysql 了连接符为空格

一些常见的注入

  • POST 注入:注入字段在 POST数据中
  • Cookie注入:注入字段在Cookie中
  • 延时注入:使用数据库延时特性注入
  • 搜索注入:注入处为搜索的地点
  • base64注入:注入字符需要经过base64加密

需要熟悉常见的数据库函数的用法

相关文章:

  • 2022-12-23
  • 2021-12-25
  • 2021-12-10
  • 2022-12-23
  • 2022-01-14
  • 2022-01-05
  • 2021-07-20
  • 2022-02-09
猜你喜欢
  • 2021-06-26
  • 2022-02-28
  • 2022-12-23
  • 2022-12-23
  • 2020-02-27
  • 2022-02-19
相关资源
相似解决方案