javaee论坛

普通会员

225648

帖子

334

回复

348

积分

楼主
发表于 2019-11-03 13:15:13 | 查看: 643 | 回复: 1

SQL注入漏洞以下为此漏洞的初级知识分类数据库的基本概念SQL注入原理SQL注入方法SQL注入危害SQL注入防御(日后另起一篇持续更)SQL注入简易讲解查询流程对比常用测试语句SQL注入分类(日后另起一篇持续更)

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

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

数据库的基本概念

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

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

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

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

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

SQL注入原理

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

SQL注入方法

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

SQL注入危害

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

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

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

SQL注入简易讲解查询流程对比

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

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

常用测试语句

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

单引号及or关键字我们看下面的这句常用登陆查询语句SELECT*FROMUsersWHEREUsername='$username'ANDPassword='$password'

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

以下为代入的SQL语句:

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

以下为带入的SQL语句:

username=1′or′1′=′1′))/∗password=1Union查询SQL利用Union可以进行连接查询,从而进一步得到信息,假设如下查询:SELECTName,Phone,AddressFROMUsersWHEREId=$id

那么我们设置ID的值为:

$id=1UNIONALLSELECTStudentNumber,1,1FROMStudentTable

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

SELECTName,Phone,AddressFROMUsersWHEREId=1UNIONALLSELECTStudentNumber,1,1FROMStudentTableSQL注入分类(日后另起一篇持续更)手工注入宽字节注入盲注时间盲注报错盲注布尔型盲注其他注入自动化注入----sqlmap

上一篇:sftp使用手册 下一篇:病毒解惑

普通会员

0

帖子

316

回复

331

积分
沙发
发表于 2019-12-22 01:49:22

楼主你知道的太多了

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017