SQL注入 漏洞 入门

0x00 SQL注入 概述

  • 当web应用向后台数据库传递Sql语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的Sql语句,直接输入数据库引擎执行,获取或修改数据库中的数据。

  • 例如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。

SQL注入 产生原因

SQL注入的产生原因通常表现在以下几方面

  • 不当的类型处理;

  • 不安全的数据库配置

  • 不合理的查询集处理;

  • 不当的错误处理;

  • 转义字符处理不合适;

  • 多个提交处理不当。

0x01 SQL注入 原理

  • 用户能控制输入的内容

  • web应用把用户输入的内容,在没经过过滤或者严格过滤的情况下带入到数据库中执行

0x02 SQL注入 分类

SQL注入点根据不同维度可分为:

  1. 根据 请求方式 分类:
  • GET方式请求注入

  • POST方式请求注入

  1. 根据 注入点参数 分类
  • 整数型注入

  • 字符型注入

  • 搜索型注入

  1. 根据SQL注入点反馈类型 分类 (重点 )
  • union类型 → 联合查询

  • 基于错误显示 → 报错注入

  • 布尔类型 → 布尔盲注

  • 基于时间 → 时间盲注

  • 其他类型 → 宽字节注入,header注入,base64,url注入,二次注入,堆叠注入等等

  1. 根据Web应用的数据库类型分类(数据库样式扩充)
  • SQL:MySQL,SQLServer,Oracle,Access

  • NoSQL:mongodb

0x04 SQL注入 危害

  • 获取网站数据库存储的数据

  • 获取服务器的控制权限

  • 获取网站的控制权限

  • 网页挂马

0x05 SQL注入 防御

  1. 严格过滤转义特殊字符

  2. 强制转换整型

  3. 屏蔽报错信息

  4. 站库分离

  5. 最小化数据库权限

  6. 统一编码

  7. PDO预处理

0x05 万能密码

  • 所谓万能密码(logon inject)就是绕过登录验证直接进入管理员后台的密码,这种类型的密码可以通用到很多存在此漏洞的站 所以称之为万能。

  • 常见万能密码有:

ASP/ASPX PHP
'.).or.('.a.'='.a admin' /
or 1=1-- 'or 1=1/
'or 1=1-- "or "a"="a
...... ......-

万能密码的危害

万能密码主要危害是可以在不知道用户密码的情况下,登录到仼意用户,包括管理员用户 。还会直接或间接造成:

  • 造成网站数据丢失

  • 造成网页被篡改

  • 造成网页被挂马

0x06手工注入

手工注入 ( Manual Injection)

SQL注入有很多自动化工具,但是因为自动化工具不足以应对复杂情况,所以需要手动注入。

手工注入和自动化注入区别

自动化注入 是通过使用已经编写好的脚本或者工具进行SQL注入操作,因针对简单环境工具或脚本已经足够注入使用,在注入过程中可以通过工具上的功能模块较方边的进行SQL注入操作。

在什么情况下会使用手工注入

  1. 在Web存在较复杂的情况下

  2. 自动化工具和脚本无法成功的进行SQL注入的情况下

手工注入流程

  1. 判断是否有注入漏洞,识别注入点类型

  2. 获取数据库中的信息

    (1) 获取数据库基本信息(数据库版本、数据库类型、查寻列数等)
    (2) 获取数据库名
    (3) 获取表名
    (4) 获取列名
    (5) 获取用户数据

  1. 破解加密数据 (数据解密)

  2. 以下内容为注入后配合其他漏洞可能产生的影响:

    1. 提升权限 (利用数据库提权上升到系统权限提升)

    2. 内网渗透

posted @ 2021-11-20 22:10  FreeK0x00  阅读(145)  评论(0编辑  收藏  举报