SQL注入漏洞介绍

admin 2024年12月24日10:53:49评论1 views字数 1386阅读4分37秒阅读模式

 

一、SQL注入介绍

  • Web程序代码中对于用户传入的参数没有做过滤,直接放到SQL语句中执行,使得参数中的特殊字符不符合SQL语句的正确逻辑语法
  • 可以利用SQL注入漏洞执行任意SQL语句
  • 例如:查询和下载数据、写入webshell 、绕过登录限制、执行系统命令…

二、注入方法简介

  • 在发现有可控参数的地方可以进行SQL注入检查并且利用
  • 参数用户可控:从前端传给后端的参数内容用户可以控制

SQL注入漏洞介绍

  • 工具可以使用burpsuite里的sqlmap插件(防火墙可能会对sqlmap进行拦截)
  • burpsuite需要下载的扩展插件:
  • 下载CO2

SQL注入漏洞介绍

SQL注入漏洞介绍

  • 对CO2扩展插件进行配置
  • 在Intruder里右键,将内容发送到Repeater

SQL注入漏洞介绍

  • 在Repeater里将内容发送到SQLMapper

SQL注入漏洞介绍

  • 导入sqlmap和python文件

SQL注入漏洞介绍

三、生产环境下的SQL漏洞修复方式介绍

  • 代码层防御sql漏洞策略:采用SQL语句预编译和绑定变量
  • 所有的查询语句都使用数据库提供的参数化查询接口
  • 参数化的语句使用的参数,而不是将用户输入变量嵌入到SQL语句中。
  • 现在几乎所有的数据库系统都提供了参数化SQL语句执行接口
  • 对进入数据库的特殊字符( ' <>&*; 等)进行转义处理或者编码转换。
  • 确认每种数据的类型:比如数字型的数据就必须是数字,存储字段必须对应为int型。
  • 规定数据长度:在一定程度上让较长的SQL注入语句不能正确执行。
  • 网站每个数据层的编码统一:上下层编码不一致可能会使得一些过滤模型被绕过。(建议用UTF-8编码)
  • 严格限制网站用户的数据库的操作权限:只给用户提供能满足自己工作的权限
  • 避免网站显示SQL错误信息:比如类型错误、字段不匹配…防止这些错误信息被利用进行判断。

四、Mysql数据库

  • Mysql5版本之后,Mysql默认的数据库中存放在infomation_schema里,这个数据库有3个表需要着重了解
columns:
存储了用户创建的所有数据库的库名、表名、字段名
提供查询表中的字段信息
作为InnoDB存储引擎的临时表

tables:
提供查询数据库内的表相关的基本信息
作为Memory引擎临时表
TABLE_SCHEMA字段和TABLE_NAME字段分别记录库名和表名

SCHEMATA:
提供查询MySQL Server中的数据库列表信息,一个schema就代表一个database
也是Memory引擎临时表
CHEMA_NAME字段记录了库的信息
information_schema:存储数据库下的数据库名及表名,列名信息的数据库
information_schema.schemata:记录数据库名信息的表
information_schema.tables:记录表名信息的表
information_schema.columns:记录列名信息表
schema_name:information_schema.schemata 记录数据库名信息的列名值
table_schema:information_schema.tables 记录数据库名的列名值
table_name:information_schema.tables 记录表名的列名值
column_name:information_schema.columns 记录列名的列名值
  • Mysql的三种注释符
    • -- :单行注释,后面必须有空格
    • #:单行注释
    • /* */:多行注释

- source:securepulse.website

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月24日10:53:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SQL注入漏洞介绍https://cn-sec.com/archives/3545237.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息