Web的基本漏洞--SQL注入漏洞

news2024/12/23 11:02:40

目录

一、SQL注入介绍

1.SQL注入漏洞原理

2.SQL注入漏洞的类型

3.SQL注入漏洞识别

4.攻击方式

5.SQL盲注

时间盲注 

布尔盲注 

报错盲注

6.SQL注入漏洞的危害

7.SQL注入漏洞的防范措施

8.SQL注入漏洞的绕过


一、SQL注入介绍

1.SQL注入漏洞原理

Web程序输入的数据传入到后台处理时,没有做严格过滤,导致其传入的数据拼接到SQL语句中后,被当作SQL语句的一部分执行,从而导致数据库受损

如查询数据、下载数据、写入
webshell 、执行系统命令以及绕过登录限制等。
 
漏洞产生原因(实现条件):
用户对 sql 查询语句参数可控
原本程序要执行的 SQL 语句,拼接了用户输入的恶意数据

2.SQL注入漏洞的类型

通过是否能在页面中显示注入后的结果信息来区分是显注还是盲注

显注类型:

1.联合注入

2.堆叠注入

3.宽字节注入

4.cookie 注入

5.XFF 头注入

6.UA 注入(user-agent 注入)

7,Referer 注入

8.二次注入

9,base64 注入

10.万能密码

11.文件读写

盲注类型:
1.基于时间的盲注 sleep() benchmark()
2.基于布尔的注入
3.基于报错的注入 updatexml() extractvalue() floor() exp()

3.SQL注入漏洞识别

寻找搜索输入框,在输入参数后加‘查看是否报错;尝试简单payload 1 or1=1#

使用sqlmap工具扫描,sqlmap -u url --dbs 列出数据库名,sqlmap -u url -D 库名 --tables 列出表名,sqlmap -u url -D table_name -T 表名 -- columns 列出列名

4.攻击方式

 拿到一个查询条件的Web页面,对输入框做以下事情

(1)判断是否存在注入(and 1=2或者输入’ 看是否有sql语句的报错),注入是字符型(如果是字符型就要考虑闭合单双引号等)还是数字型
(2)猜解SQL查询语句中的字段数(在使用union联合查询中,前后的字段数要保持一致)
(3)确定显示的字段顺序
(4)获取当前数据库
(5)获取数据库中的表
(6)获取表中的字段名
(7)下载数据

5.SQL盲注

盲注:即在SQL注入过程中,SQL语句执行查询后,查询数据不能回显到前端页面中,我们需要使用一些特殊的方式来判断或尝试,这个过程成为盲注

其实就是字面上意思的理解。后台对报错信息进行了屏蔽,当进行输入后,页面只会有正确或者错误的提示,或者干脆就什么提示都没有(我们无法根据报错的信息进行注入的判断)。

盲注类型:
1.基于时间的盲注 sleep() benchmark()
2.基于布尔的注入
3.基于报错的注入 updatexml() extractvalue() floor() exp()
 

时间盲注 

sql时间类型的盲注本质是利用插入的sql语句执行造成时间延迟

如论我们输入的语句是否合法,页面的显示信息是固定的,即不会出现查询的信息,也不会出现报错信息。可以尝试基于时间的盲注来测试。根据页面响应的时间,来判断输入的信息是否正确。

布尔盲注 

布尔盲注的本质是利用注入执行结果的布尔值,来判断是否盲注成功

盲注查询是不需要返回结果的,仅判断语句是否正常执行即可,所以其返回可以看到一个布尔值,正常显示为true,报错或者是其他不正常显示为False

报错盲注

报错盲注的本质是利用查询嵌套再通过报错函数将子查询的数据带出
报错盲注将错误信息与子查询语句中查询的内容带出,并不局限与这种场景,只要能将mysql 错 ,误信息输出都可以尝试进行报错注入。
报错盲注形式上一般是做两个嵌套查询,里面的称为子查询,执行顺序是先进行子查询,所以我们可以通过子查询查询我们想要的数据,然后通过报错函数将我们查询的数据带出。

6.SQL注入漏洞的危害

(1)攻击者未经授权可以访问数据库中的数据,盗取用户的隐私以及个人信息,造成用户的信息泄露。

(2)可以对数据库的数据进行增加或删除操作,例如私自添加或删除管理员账号。

(3)如果网站目录存在写入权限,可以写入网页木马。攻击者进而可以对网页进行篡改,发布一些违法信息等。

(4)经过提权等步骤,服务器最高权限被攻击者获取。攻击者可以远程控制服务器,安装后门,得以修改或控制操作系统。

7.SQL注入漏洞的防范措施

1.预编译 (数据库不会将参数的内容视为 SQL 命令执行,而是作为一个字段的属性值来处理)
2.PDO 预处理 (本地和 Mysql 服务端使用字符集对输入进行转义)
3.正则表达式过滤 (如果用户输入了非法信息则利用正则表达式过滤)

 

代码层面
1.对输入进行严格的转义和过滤
2.使用PDO预处理和参数化 ( Parameterized )

关于预处理和参数化详解:
这种方法一般是在PHP中进行处理的,具体是,
1.先预发送一个sql模板过去
2.再向mysql发送需要查询的参数(不管参数怎么注入,mysql都能知道这是变量,不会做语义解析,起到防注入的效果,这是在mysql中完成的。)

网路层面
1.通过WAF设备启用防SQL Inject注入策略(或类似防护系统)
2.云端防护( 360网站卫士,阿里云盾等)

8.SQL注入漏洞的绕过

  1. 大小写绕过注入
  2. 双写绕过注入
  3. 编码绕过注入
  4. 内联注释绕过注入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/593680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用git rebase合并多次commit

目录 rebase的作用简要概括为:命令:解决冲突:遗留问题: rebase的作用简要概括为: 可以对某一段线性提交历史进行编辑、删除、复制、粘贴;因此,合理使用rebase命令可以使我们的提交历史干净、简…

docker安装php

在安装 php 之前,我们可以先查看一下我们的镜像: docker images 我这里是已经存在 php 镜像了,版本就是 TAG 显示的 8.1.16 如果没有镜像,则执行下面的命令,拉取 php 镜像: docker pull php:latest 请注…

MAYLAND HOME官网上线 | LTD家居家装行业案例分享

​一、公司介绍 在MAYLAND HOME,我们为我们对质量和服务的承诺感到自豪。我们相信我们的成功与客户的满意度直接相关,这就是为什么我们努力超越您的期望,我们承担的每一个项目。无论您是想升级您的家庭还是企业,我们都会在这里帮助…

SpringBoot3 CORS跨域访问

目录 Credentials 问题一 问题二 解决方法一 CrossOrigin,最优的方法 解决方法二 通过Filter 设置HTTP 解决方法三 通过实现WebMvcConfigurer设置HTTP HTTP 协议,需要认真的学习每个细节。 allowCredentials(true) 和 allowed-origins: "*&qu…

MySQL--万文长字探究隔离性实现原理

1 隔离性简介 事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)四个特性,简称 ACID,缺一不可。这篇文章旨在讲清楚…

吐血整理 二叉树(链表实现)的基本操作详解!

文章目录 节点设置二叉树的深度优先遍历前序遍历中序遍历后序遍历 二叉树的广度优先遍历层序遍历 节点的个数叶子节点的个数第K层节点的个数值为X的节点树的最大深度翻转二叉树判断两颗二叉树是否相同判断二叉树是否是完全二叉树判断二叉树是否是单值二叉树判断二叉树是否是平衡…

有哪些好用的pdf修改器?思路提供

PDF格式的文档在现代生活中扮演着越来越重要的角色。但是,要编辑或修改PDF文件是一件非常困难的事情,因为PDF文件的格式和内容通常被锁定。为了解决这个问题,出现了PDF修改器这种工具,它可以帮助用户轻松地编辑和修改PDF文件。本文…

RDK X3 Module发布,全新软硬件平台加速实现量产级产品落地

机器人开发是一段美妙的旅程。GEEKROS创始人杨状状是地平线社区的一名开发者,热衷于鼓捣各类机器人,2022年,状状第一时间就拿到了地平线旭日X3派(简称旭日X3派),基于TogetheROS™.Bot机器人操作系统&#x…

Win11集成 ChatGPT,任务栏取消分组真的回来了

时隔两月微软如期发布了 Win11 Moments 3 更新,版本号 22621.1778 。 微软这次更新带来了许多质量更新和功能改进。 直观的改动是任务栏,网络图标在连接加密隧道时会上锁,时间显示到秒也重新回归。 日常会用到的 AltTab 任务选项卡被限制到最…

04_Cenos安装Docker

docker安装文档: ubuntu:https://docs.docker.com/engine/install/ubuntu/ centos:https://docs.docker.com/engine/install/centos/ debian:https://docs.docker.com/engine/install/debian/ cenos安装Docker前提: 必…

深入理解Linux虚拟内存管理(二)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核(一) 深入理解 Linux 内核(二) Linux 设备驱动程序(一) Linux 设备驱动程序(二) Linux 设备驱动程序(三&#xf…

生态系统NPP及碳源、碳汇模拟、土地利用变化、未来气候变化、空间动态模拟实践技术

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现,“双碳”行动特别是碳中和已经在世界范围形成广泛影响。碳中和可以从碳排放(碳源)和碳固定(碳汇)这两个侧面来理解。陆地生态系统在全球碳循环过程中有着重要作…

加盐加密算法

文章目录 为什么需要加密?加盐加密MD5盐值加密Spring Security加盐 为什么需要加密? 从下面的图片中,可以看到用户的密码在数据库中存储时,如果不对密码加密,则是以明文的方式存储的,如果被别人获取到数据…

Mobx和Mobx-react:集中式状态管理

一、Mobx (1) Mobx是一个功能强大,上手非常容易的状态管理工具。 (2) Mobx背后的哲学很简单: 任何源自应用状态的东西都应该自动地获得。只获取与自己相关的数据,不获取无关数据(redux则相反) (3) Mobx利用getter和setter来收集组…

科技兴警,优云「公安一体化安全运维解决方案」亮相2023警博会

日前,第十一届中国国际警用装备博览会(警博会)在北京首钢会展中心成功举办,600余家企业参展,集中展示国内外前沿警用装备及尖端技术,大力推进警用装备现代化。 国内领先的平台级数字化运维软件服务商广通优…

TDengine集群搭建

我这里用三台服务器搭建集群 1、如果搭建集群的物理节点上之前安装过TDengine先卸载清空,直接执行以下4条命令 rmtaos rm -rf /var/lib/taos rm -rf /var/log/taos rm -rf /etc/taos2、确保集群中所有主机开放端口 6030-6043/tcp,6060/tcp,…

flink的几种source来源

简单的总结了flink的几种source来源,可以参考下 package com.atguigu.apitestimport java.util.Propertiesimport org.apache.flink.api.common.serialization.SimpleStringSchema import org.apache.flink.streaming.api.functions.source.SourceFunction import …

涨点技巧:注意力机制---Yolov8引入Resnet_CBAM,CBAM升级版

1.计算机视觉中的注意力机制 一般来说,注意力机制通常被分为以下基本四大类: 通道注意力 Channel Attention 空间注意力机制 Spatial Attention 时间注意力机制 Temporal Attention 分支注意力机制 Branch Attention 1.1.CBAM:通道注意力和空间注意力的集成者 轻量级…

版本控制系统有哪些推荐? - 易智编译EaseEditing

以下是几个常用的版本控制系统(Version Control System)推荐,并对它们进行简单介绍: Git: Git是目前最流行的分布式版本控制系统。它具有高效、灵活和强大的功能,支持快速的代码提交、分支管理、合并操作…

高频面试八股文原理篇(五)索引相关

目录 索引的优缺点 MySQL索引类型 索引原理 常见索引类型 MySQL数据库要⽤B树存储索引⽽不⽤红⿊树、B树、 Hash的原因 怎么验证 MySQL 的索引是否满足需求 聚簇索引和非聚簇索引 索引的优缺点 索引的优点 可以大大加快数据的检索速度,这也是创建索引的最主…