「网络安全」SQL注入攻击

article/2025/6/25 22:52:05

我们生活在数据的黄金时代。有些公司将其分析为更好的自己,有些公司为了获利而进行交易,没有一家公司因其价值而自由放弃 - 对于他们的业务和犯罪分子。

SQL(结构化查询语言)是一种非常流行的与数据库通信的方式。虽然许多新数据库使用非SQL语法,但大多数仍然与SQL兼容。这使得SQL成为任何想要访问数据的人的便利工具,无论他们的动机如何。

SQL注入(或SQLi)攻击已经存在了近20年。他们永远不会停止使用Imperva的Web应用程序防火墙(WAF)。所以我们有丰富的数据和经验可供分享。在这篇文章中,我们将分享Imperva保护下数千个网站的最新统计数据和图表,以及攻击示例以及保护网站的方法。

基于SQL的应用程序的常见攻击

SQL Injection是一种用于攻击应用程序的代码注入技术。攻击者可以使用工具,脚本甚至浏览器将SQL语句插入应用程序字段。然后由数据库引擎执行这些语句。此类攻击通常用于:

  1. 欺骗身份

  2. 篡改现有数据

  3. 窃取数据

  4. 销毁数据

  5. 更改数据库权限

应用程序背后的数据通常是关键任务,这就是SQL注入攻击被认为非常严重的原因。

来自Imperva WAF的统计数据

Imperva的WAF每天都会在我们保护的网站上减少数百万次SQL注入攻击。我们保护的网站中至少有80%每个月都会受到攻击。我们的数百个网站每天都会面临SQLi攻击。

您可以在下面找到我们监控的攻击中使用的国家,行业和工具的统计数据。

图1:网站行业分布 - 由于BakerHostetler的2018年网络安全报告指出它是数据泄露最严重的行业,因此受攻击程度最高的行业是健康行业,这一点非常有意思,但并不奇怪。

没有图示的是受攻击最多的数据库(按递减顺序):Oracle,PostgreSQL,MySQL和MongoDB。同时,受攻击最多的平台是WordPress,Drupal,Joomla和Quest。

图2:受攻击网站的国家/地区与攻击来源 - 看到黑客倾向于攻击自己国家/地区内的网站并不奇怪。当然,这有可能恰恰相反 - 这些结果可能反映了黑客使用在他们攻击的国家/地区拥有端点的V** /代理,以逃避地理阻塞。

每天大量使用SQLi公共漏洞。例如:CVE-2017-8917和CVE-2015-7858都是Joomla SQLi公共漏洞,这些漏洞在我们监控的66,000个事件中使用。

图3:顶级漏洞扫描程序 - 由于我们计算事件而非请求,每个扫描程序生成的有效负载数量都没有影响。尽管SQLi Dumper取得了成功,但Joomla扫描仪并不落后。

我们每月监控数万个攻击性IP,并使用攻击分析来查找恶意IP并防范它们。我们通过分析过去几个月的攻击IP收集了一些有趣的统计数据:

图4:日复一日尝试SQLi攻击的IP。蓝色:在当天和当天尝试SQLi攻击的IP的百分比,在当天尝试SQLi攻击的IP中。橙色:包含由这些攻击IP发送的SQLi尝试的请求的百分比,包含SQLi尝试的总请求数。

令人好奇的是,即使平均每天不到三分之一的IP攻击(蓝线),他们的请求构成了超过80%的SQLi请求(橙色线)。这可能是由于各种漏洞扫描程序正在进行扫描。这些工具倾向于轰炸目标以寻找漏洞,这解释了高IP到请求比率。

图5:顶级攻击工具 - 非常通用且广泛使用,因此cURL占据如此重要的位置并不奇怪。但是,深入分析显示,与cURL一起发送的大多数可疑请求实际上是攻击后检查,即被阻止的黑客,然后使用cURL来测试他们是否仍然可以访问该网站。cURL紧随其后的是Python - 黑客的首选武器,以及Ruby - 用于编写Metasploit的语言代码。

攻击示例

以下是我们最近一个月跟踪的一些流行攻击:

VectorIncidentsDescription
1 and 1=2 union select password from qianbo_admin634,566Trying to query passwords
1’A=0125,365Probing
N;O=D and 1=1 nessus= or 1=1–CONCAT(‘whs(‘,’)SQLi’)76,155Probing by vulnerability scanners: Veracode, Nessus and WhiteHat Security, respectively
‘ union select unhex(hex(version())) —848,096Attempting to discover database version
;WAITFOR DELAY ’00:00:28′;1,226,955Blind probing — testing for delay in response

表1:SQL注入攻击的示例

如何保护您的应用程序免受SQL注入

有许多方法可以保护您的应用程序免受SQL注入攻击。有些应该在应用程序开发期间使用,其他应该在部署应用程序后使用。

开发阶段:

使用预准备语句 - 一种“模板化”SQL以使其适应SQL注入的方法。只有某些输入值可以发送到数据库,因此无法运行模板化语句以外的语句。稍后使用不同协议传输的值不像语句模板那样编译。因此不能发生SQL注入。

这里有两个Python代码示例,包含和不包含预准备语句。该代码基于MySQL连接器驱动程序(MySQL :: MySQL Connector/Python Developer Guide):

def add_employee(id: int, email: str):

sql = “””INSERT INTO employees (id, email) VALUES (%s, %s)””” cursor = connection.cursor(prepared=True) cursor.execute(sql, (id, email)) cnx.commit() cursor.close()

Python代码示例。这些值将发送到与SQL文本分开的“执行方法”。

def add_employee(id: int, email: str): sql = f”””INSERT INTO employees (id, email) VALUES ({id}, {email})””” cursor = connection.cursor() cursor.execute(sql)

上面是没有预准备语句的Python代码示例。电子邮件可能包含可由数据库引擎执行的SQL注入语句。

除了预处理语句之外,还有其他方法可以在开发和部署应用程序期间阻止SQL注入:

  1. 消毒 - 摆脱任何可能是恶意的特殊字符,单词或短语。例如,删除保留字SELECT或CONTACT,或删除短语WAIT FOR DELAY或DROP TABLE。这不是最佳实践,但在某些情况下它可能很有用。

  2. 转义 - 转义在SQL中具有特殊含义的字符。例如,用两个单引号替换双引号。这是一种简单但易于出错的方式。

  3. 转义和模式检查 - 可以验证数字和布尔参数数据类型,而字符串参数可以限制为模式。

  4. 数据库权限限制 - 将应用程序用户的权限限制为仅需要的权限,因为它可能有助于降低攻击的有效性。

后开发 - 应用程序安全性:

  • 漏洞扫描程序 - 这些可以检测应用程序中的SQL注入漏洞,以后可以由开发团队修复。请记住,应用程序会不断变化 - 因此您应定期运行扫描程序。

  • Web应用程序防火墙 - WAF还可以检测和阻止对您的应用程序的攻击。

总结

保护产品免受SQL注入是必不可少的,以确保其正常运行并防止数据泄露。

当您编写访问数据库的代码时,考虑从一开始就防止SQL注入是一种很好的做法。这是防止这些漏洞发生的最佳时机,而不是以后修补它们。开发过程应包括针对SQL注入的测试,然后是外部扫描程序。

最后,WAF是您产品保护的重要补充。它可以保护您免受错过的漏洞,同时让您有时间尽可能地修补它们。

 总结

首先先通过对 HTTP 中间人攻击的来了解到 HTTP 为什么是不安全的,然后再从安全攻防的技术演变一直到 HTTPS 的原理概括,希望能让大家对 HTTPS 有个更深刻的了解。

   网络安全入门学习路线

其实入门网络安全要学的东西不算多,也就是网络基础+操作系统+中间件+数据库,四个流程下来就差不多了。

1.网络安全法和了解电脑基础

其中包括操作系统Windows基础和Linux基础,标记语言HTML基础和代码JS基础,以及网络基础、数据库基础和虚拟机使用等...

别被这些看上去很多的东西给吓到了,其实都是很简单的基础知识,同学们看完基本上都能掌握。计算机专业的同学都应该接触了解过,这部分可以直接略过。没学过的同学也不要慌,可以去B站搜索相关视频,你搜关键词网络安全工程师会出现很多相关的视频教程,我粗略的看了一下,排名第一的视频就讲的很详细。 当然你也可以看下面这个视频教程仅展示部分截图: 学到http和https抓包后能读懂它在说什么就行。

2.网络基础和编程语言

3.入手Web安全

web是对外开放的,自然成了的重点关照对象,有事没事就来入侵一波,你说不管能行吗! 想学好Web安全,咱首先得先弄清web是怎么搭建的,知道它的构造才能精准打击。所以web前端和web后端的知识多少要了解点,然后再学点python,起码得看懂部分代码吧。

最后网站开发知识多少也要了解点,不过别紧张,只是学习基础知识。

等你用几周的时间学完这些,基本上算是具备了入门合格渗透工程师的资格,记得上述的重点要重点关注哦! 再就是,要正式进入web安全领域,得学会web渗透,OWASP TOP 10等常见Web漏洞原理与利用方式需要掌握,像SQL注入/XSS跨站脚本攻击/Webshell木马编写/命令执行等。

这个过程并不枯燥,一边打怪刷级一边成长岂不美哉,每个攻击手段都能让你玩得不亦乐乎,而且总有更猥琐的方法等着你去实践。

学完web渗透还不算完,还得掌握相关系统层面漏洞,像ms17-010永恒之蓝等各种微软ms漏洞,所以要学习后渗透。可能到这里大家已经不知所云了,不过不要紧,等你学会了web渗透再来看会发现很简单。

其实学会了这几步,你就正式从新手小白晋升为入门学员了,真的不算难,你上你也行。

4.安全体系

不过我们这个水平也就算个渗透测试工程师,也就只能做个基础的安全服务,而这个领域还有很多业务,像攻防演练、等保测评、风险评估等,我们的能力根本不够看。

所以想要成为一名合格的网络工程师,想要拿到安全公司的offer,还得再掌握更多的网络安全知识,能力再更上一层楼才行。即便以后进入企业,也需要学习很多新知识,不充实自己的技能就会被淘汰。

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

尾言

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,最后联合CSDN整理了一套【282G】网络安全从入门到精通资料包,需要的小伙伴可以点击链接领取哦! 网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

 


http://chatgpt.dhexx.cn/article/KrpAVI59.shtml

相关文章

网络安全市场投资融资趋势报告

远程办公、隐私保护、风险合规,疫情之下的网络安全投 融资都有哪些关键词?| 2020 网络安全投融资趋势报告 毫无疑问,疫情是 2020 年最大的关键词之一。受疫情影响,全球经济形势不容乐观,网络 安全产业也受到了一定的波…

2022年我国网络安全市场融资情况汇总

远程办公、隐私保护、风险合规,疫情之下的网络安全投 融资都有哪些关键词?| 2020 网络安全投融资趋势报告 毫无疑问,疫情是 2020 年最大的关键词之一。受疫情影响,全球经济形势不容乐观,网络 安全产业也受到了一定的波…

少的有点可怜,955 不加班的公司名单...

估计每个人都想过,要是自己的工作能钱多事少离家近就好了,但现实很残酷,特别是在互联网行业,大小周是良心企业,单休 996 是常态,007 的公司数量也在增加,对于大多数“打工人”来说,如…

955 互联网公司白名单来了!

点击上方“码农突围”,马上关注 这里是码农充电第一站,回复“666”,获取一份专属大礼包 真爱,请设置“星标”或点个“在看”955,每天 9 点上班,下午 5 点下班,一周工作 5 天。相比 IT 行业盛行的…

人脸识别-实时轨迹

人脸识别-实时轨迹:是把人脸识别摄像机在地图上面标注点位;人脸识别摄像机抓拍识别到人脸后把人脸数据入库;查询点位关联的摄像机抓拍的人脸数据,在地图上将点位串联展示并实时刷新。 小细节 1.前提:人脸识别抓拍机,在添加客户人…

虹软java接摄像头_虹软人脸识别SDK在网络摄像头中的实际应用

目前在人脸识别领域中,网络摄像头的使用很普遍,但接入网络摄像头和人脸识别SDK有一定门槛,在此篇中介绍过虹软人脸识别SDK的接入流程,本文着重介绍网络摄像头获取视频流并处理的流程(红色框内),以下内容仅供参考。 市面…

海康SDK方式对接摄像头

1知识相关: OpenAPI:对外开放的接口 Http Methodhttp:请求的方法,常用的方法有GET/POST/PUT/DELETE等请求 Path:http请求路径,指域名/IP(端口号)之后的部分,如请求地址为"www.example.com/artemis/api"&…

人脸服务器如何与门禁系统对接,人脸识别门禁与自动门接线图

人脸识别门禁开锁流程是将VIP客户人脸图像库导入系统人脸库;当VIP客户接近高清摄像头,摄像头开始抓怕,并将所拍的人脸图像信息传给后台人脸识别服务器; 服务器收到摄像头传递过来的VIP客户图像,并将图像与预先导入的人脸库进行人脸比对。 若对…

调用远程摄像头进行人脸识别_工地如何实现安全帽检测/人脸识别?

安全生产一直是施工生产中很重要的一部分,只有保障了员工的安全,才能保证企业的利益。安全帽作为保护、防护的重要防范手段,一直是各大企业要求员工佩戴的,可还是发生了各种由于未佩戴安全帽导致的安全事故。 通过安装在工地施工现…

使用512KiB RAM基于单片机的实时摄像头人脸识别DNN论文解析

前言: 在读论文前可以先了解一下什么是GAP8(GAP8 是基于 RISC-V 和 PULP(并行超低功耗处理平台)开源平台的物联网应用处理器。它实现了智能设备的经济高效的开发、部署和自主操作,这些设备可以捕获、分析、分类并处理…

Springboot集成海康威视门禁设备,车牌识别摄像头,人脸设备

海康设备集成springboot 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 海康设备集成springboot前言一、海康SDK包根据下载的SKD包中的DEMO示例连接设备创建一个springboot项目将库文件放入根目录lib文件下&#…

java海康摄像头添加人脸_java及opencv实现调用本地摄像头、网络摄像头完成人脸检测、人脸收集、人脸识别、性别识别...

这几年人脸识别比较流行,各种应用场景都用到了人脸识别,如:无人店、火车站检票口、小区门禁、智慧展厅、某些银行网点等,这也是未来生活的一种趋势。我也是好奇想研究一下,百度google了一大堆资料,发现网上…

JAVA使用海康SDK摄像头人体目标识别模块

JAVA使用海康SDK 首先到海康威视官网下载SDK 海康威视SDK 1.导入项目时候需要注意,linux环境跟windows不同的 区别如下: public interface HCNetSDK extends Library //linux public interface HCNetSDK extends StdCallLibrary //windows2.初始化SDK …

PDF图片文字识别

工具 adobe acrobat XI PRO 没有安装该软件的,需下载安装,有了此软件,pdf随意改,必备! 步骤 1.打开pdf文件,点击工具---文本识别---在本文件中 2.选择“所有页面”,点击“编辑” 3.选择语言&a…

利用Java实现的图片中文字识别,你学会了吗?

一. 背景 今天有粉丝向波哥提出了这样一个疑问:给出一张图片,如何利用Java中的技术获取图片中的文字信息?针对这个问题,你有么有解决办法呢?如果你没有想到好的解决思路,也不用怕,看波哥来给你…

Python利用百度AI图像识别技术识别图片

准备工作:在百度云控制台创建文字识别模块;装备几张简单的有文字的图片。 百度官方文档:http://ai.baidu.com/docs#/OCR-API/7e4792c7 然后进入编码阶段: 如下代码获取access_token client_id和client_secret是百度云列表提供…

java做图文识别

现在的世界,什么都需要人工智能AI进行处理,那么,对于Java程序猿来说,是不是有些工作是不是就不能胜任呢,答案是显然是不一定的,对于图片识别来说,这个任务就可以使用Java进行开发,虽…

【计算机视觉】人脸识别--人脸识别技术综述

https://www.cnblogs.com/huty/p/8517691.html 参考:http://www.xuehuile.com/thesis/9a81f680054441ad907934b07b465c8e.html,本文做了相关修改。 1 人脸识别技术概述 近年来,随着计算机技术的迅速发展,人脸自动识…

厉害了,用 Java 也能实现图片识别!

点击上方蓝色“终端研发部”,选择“设为星标” 学最好的别人,做最好的我们 最近闲来无事研究了一下用 Java 如何模拟浏览器的行为,在实验登录的步骤时碰到了识别验证码的问题,于是在网上查找了关于 Java 如何进行图片识别验证码&a…

图片验证码识别教程技术原理分析

面对技术这片大海,我们都是一个渔民,三天打鱼,两天结网。我是把过去自己所掌握的所有技术总结成一张网,若一个技术干货分享的东西离我的网还太远,我就会放弃去了解。因为如果不能连结到这张网中,形成一个节…