WEB安全-SQL注入基础知识

基础知识

在了解SQL注入之前,首先要了解一些基本知识,方便对SQL注入的学习。

SQL注入安全测试中的危害

  • 危害数据库数据,对数据进行篡改
  • 危害操作系统权限,向目标系统植入木马等。

SQL注入的原理

  • 参数用户可控:前端传给后端的参数内容是可以控制的。

  • 传入的参数拼接到SQL语句,且带入数据库查询

    通过查询的SQL语句,拼接SQL语句,将拼接后的SQL语句注入到原先网站中去,进而实现入侵。通过参数传递,将恶意代码拼接到网站的SQL语句中。可控变量,带入数据库查询,变量未存在过滤或过滤不严谨。

数据库类型

  • Access
  • MySQL
  • Mssql
  • Oracle
  • Postsql
  • SQLite
  • Mongodb

SQL注入的方式

基于从服务器接收到的响应

  • 基于错误的SQL注入
  • 联合查询的类型
  • 堆查询注射
  • SQL盲注
    • 基于布尔SQL盲注
    • 基于时间的SQL盲注
    • 基于报错的SQL盲注

基于如何处理输入的SQL查询(数据类型)

  • 基于字符串
  • 数字或整数为基础的

基于程度和顺序的注入(哪里发生了影响)

  • 一阶注射
  • 二阶注射
        一阶注射是指输入的注射语句对WEB直接产生了影响,出现了结果;二阶注射类似存储型XSS,是指输入提交的语句,无法直接对WEB应用程序产生影响,通过其他的辅助间接的对WEB产生危害,这样的被称为是二阶注入

基于注射点的位置上的

  • 通过用户输入的表单域的注射
  • 通过cookie注射
  • 通过服务器变量注射 (基于头部信息的注射)

一般用于尝试的语句

  • or 1=1–+
  • ‘or 1=1–+
  • "or 1=1–+
  • )or 1=1–+
  • ')or 1=1–+
  • ")or 1=1–+
  • "))or 1=1–+
    闭合问题

常用的函数

  1. version()——MySQL 版本
  2. user()——数据库用户名
  3. database()——数据库名
  4. @@datadir——数据库路径
  5. @@version_compile_os——操作系统版本

MySQL知识

在MYSQL5.0以上版本中,mysql存在一个自带数据库名为information_schema,它是一个存储记录所有数据库名,表名,列名的数据库,也相当于通过查询它获取指定数据库下面的表名或列名信息
information_schema.tables:记录所有表名信息的表
information_schema.columns:记录所有列名信息的表
table_name : 表名
column_name : 列名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值