SQL注入漏洞笔记(一)


SQL注入漏洞(一)

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加密

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM