SQL注入(一)

以下为此漏洞的初级知识分类

在这里,你将学到初级的SQL注入漏洞,如有想深入学习,请继续关注此博客,谢谢。

数据库的基本概念

数据库大致可以分为四点:

  1. 数据(Data)
    在计算机中,各种我们所看到的字母,文字,字符串,语音,图片视频等统称为数据。

  2. 数据库(DB)【Access、MYSQL、Oracle、MSSQL等】
    是按照数据结构来组织、存储和管理数据的“仓库”

  3. 数据库管理系统(DBMS)【Access、MYSQL、Oracle、MSSQL等】是一种操纵和管理数据库的软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

  4. 结构化查询语言(SQL)【DQL、DDL、DML、TCL、DCL】是一种用于数据库查询和程序设计的语言,用于存取数据以及查询、更新和管理关系数据库系统

SQL注入原理

SQL注入攻击就是在一些涉及到SQL语句,也就是SQL 数据库查询的功能进行恶意构造语句执行SQL命令,或通过提供恶意的数据包执行恶意的SQL命令。一般情况下,往往是应用程序缺少对输入进行安全性设计。

SQL注入方法

攻击者将一些包含指令的数据发送给解释器,欺骗解释器执行计划外的命令。

SQL注入危害

读取或篡改数据库的信息,甚至能够获得服务器的包括管理员的权限。

SQL注入防御(日后另起一篇持续更)

1 、参数校验;2、对数据库权限做限制;3、使用 PrepareStatement等

SQL注入简易讲解

查询流程对比

一个正常的查询流程如下:
请求网站—>查看是否有查询语句—>语法检查—>从数据库里查询—>返回查询信息

注入攻击的流程如下:
构造SQL攻击语句—>查看是否有查询语句—>语法检查—>从数据库里查询—>返回查询信息—>通过返回信息进行进一步攻击查询或得到管理员权限进行入侵等。

常用测试语句

以下可用get或用post方式进行执行语句,过于简单,在此不做演示

  1. 单引号及or关键字
    我们看下面的这句常用登陆查询语句
SELECT * FROM Users WHERE Username='$username' AND Password='$password'

如果我们构造 username=1′or′1′=′1password=1’or’1’=’1 ,或者在username查询成功后直接将paassword注释掉,这样就可以直接绕过进行登陆。

以下为代入的SQL语句:

SELECT * FROM Users WHERE Username='1' OR '1'='1' AND Password='1'OR '1'='1'
  1. 使用括号
    我们看下面这个语句,我们可以先加个括号,然后把后面的password段注释掉,这样就达到了我们攻击的目的。
SELECT * FROM Users WHERE((Username='$username')AND(Password=MD5('$password')))

以下为带入的SQL语句:

username=1′or′1′=′1′))/∗password = 1
  1. Union查询SQL
    利用Union可以进行连接查询,从而进一步得到信息,假设如下查询:
SELECT Name, Phone, Address FROM Users WHERE Id=$id

那么我们设置ID的值为:

$id =1 UNION ALL SELECT StudentNumber,1,1 FROM StudentTable

那么整体的查询就会变为:

SELECT Name, Phone,Address FROM Users WHERE Id=1 UNION ALL SELECT StudentNumber,1,1 FROM StudentTable

SQL注入分类(日后另起一篇持续更)

  • 手工注入
    • 宽字节注入
    • 盲注
      • 时间盲注
      • 报错盲注
      • 布尔型盲注
    • 其他注入
  • 自动化注入----sqlmap
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值