网站建设中常用的音频格式和视频格式/免费推广网站视频
预计更新
-
SQL注入概述
1.1 SQL注入攻击概述
1.2 SQL注入漏洞分类
1.3 SQL注入攻击的危害 -
SQLMap介绍
2.1 SQLMap简介
2.2 SQLMap安装与配置
2.3 SQLMap基本用法 -
SQLMap进阶使用
3.1 SQLMap高级用法
3.2 SQLMap配置文件详解
3.3 SQLMap插件的使用 -
SQL注入漏洞检测
4.1 SQL注入漏洞检测基础
4.2 SQL注入漏洞检测工具
4.3 SQL注入漏洞检测实战 -
SQL注入漏洞利用
5.1 SQL注入漏洞利用介绍
5.2 SQLMap利用SQL注入漏洞
5.3 SQL注入漏洞利用实战 -
SQL注入防御
6.1 SQL注入防御基础
6.2 防御SQL注入的最佳实践
6.3 使用SQLMap测试防御效果 -
SQL注入绕过技术
7.1 SQL注入绕过技术介绍
7.2 绕过WAF
7.3 绕过输入过滤 -
SQL注入攻击的后果
8.1 数据泄露
8.2 数据篡改
8.3 数据删除 -
SQL注入漏洞的利用场景
9.1 SQL注入漏洞的利用场景介绍
9.2 电商网站SQL注入漏洞利用实战
9.3 CMS网站SQL注入漏洞利用实战 -
SQL注入漏洞的漏洞挖掘与利用
10.1 SQL注入漏洞的漏洞挖掘方法
10.2 SQL注入漏洞利用的高级技巧
10.3 SQL注入漏洞利用的未来趋势
SQL注入绕过技术介绍
SQL注入攻击是一种常见的网络攻击,攻击者利用漏洞将恶意的SQL代码注入到应用程序中,从而获得对数据库的访问权限,进而窃取、篡改、删除或者破坏数据库中的数据。SQL注入攻击的危害非常大,它可能导致应用程序、数据库和整个系统的完全崩溃。为了防范SQL注入攻击,渗透测试工程师需要了解SQL注入攻击的绕过技术,以便能够发现和修补应用程序中的SQL注入漏洞。
SQL注入攻击的绕过技术主要包括以下几种:
- 绕过注入检测
当应用程序对输入的数据进行过滤和验证时,攻击者需要使用一些技巧来绕过这些措施。常见的绕过注入检测的方法包括:
- 使用大小写混合:攻击者可以使用大小写混合来绕过注入检测。例如,将SELECT改为sElEcT或者SeLeCt,从而使过滤器无法识别。
- 使用特殊字符:攻击者可以使用特殊字符来绕过注入检测。例如,使用单引号、双引号、反斜杠等字符来绕过字符串过滤器。
- 使用注释符号:攻击者可以使用注释符号来绕过注入检测。例如,使用"–"开头的注释符号来注释掉原有的SQL语句,从而让注入的SQL语句得以执行。
- 绕过登录验证
当应用程序需要用户进行登录验证时,攻击者需要绕过登录验证才能够进行SQL注入攻击。常见的绕过登录验证的方法包括:
- 直接绕过验证:攻击者可以直接绕过应用程序的登录验证,例如在URL中加上特定的参数或者修改Cookie中的值来绕过验证。
- 利用已登录的会话:攻击者可以利用已登录的会话来绕过登录验证。例如在浏览器中复制已登录的Cookie值,然后将其插入到攻击页面中,从而绕过登录验证。
- 绕过过滤器
当应用程序对输入的数据进行过滤时,攻击者需要绕过这些过滤器才能够进行SQL注入攻击。常见的绕过过滤器的方法包括:
- 绕过数字型过滤器:攻击者可以使用一些技巧来绕过数字型过滤器。例如,使用布尔逻辑运算符、位运算符、函数等来绕过数字型过滤器。
- 绕过字符串型过滤器:攻击者可以使用一些技巧来绕过字符串型过滤器。例如,使用特殊字符、编码、拼接等技巧来绕过字符串型过滤器。
- 利用错误信息
当应用程序返回错误信息时,攻击者可以利用这些错误信息来进行SQL注入攻击。常见的利用错误信息的方法包括:
- 利用错误信息推断数据库结构:攻击者可以通过错误信息推断数据库结构。例如,通过错误信息得知数据库中有一个名为users的表格,从而进行进一步的注入攻击。
- 利用错误信息得到敏感信息:攻击者可以通过错误信息得到敏感信息。例如,得到数据库管理员的用户名和密码,从而获得对整个数据库的访问权限。
- 使用盲注注入技术
盲注注入是一种无法直接从应用程序返回的结果来判断注入是否成功的注入技术。攻击者需要利用一些技巧来进行盲注注入。常见的盲注注入技术包括:
- 布尔盲注:攻击者可以通过构造布尔逻辑表达式来进行盲注注入。例如,构造一个查询语句,如果返回TRUE,则说明注入成功,否则注入失败。
- 时间盲注:攻击者可以通过构造时间延迟来进行盲注注入。例如,构造一个查询语句,如果返回结果需要很长时间才能返回,则说明注入成功,否则注入失败。
- 利用多语句注入技术
多语句注入是一种利用多个SQL语句进行注入的技术。攻击者可以通过多语句注入来实现多个操作,例如插入、修改、删除等。常见的多语句注入技术包括:
- 利用分号注入:攻击者可以利用分号将多个SQL语句分开来进行注入。例如,将两个SQL语句用分号隔开,从而实现多语句注入。
- 利用UNION注入:攻击者可以利用UNION关键字将多个查询结果进行合并来进行注入。例如,通过UNION注入语句将两个查询结果进行合并。
总之,SQL注入攻击是一种非常危险的网络攻击,攻击者可以利用漏洞获得对数据库的访问权限,从而窃取、篡改、删除或者破坏数据库中的数据。为了防范SQL注入攻击,渗透测试工程师需要了解SQL注入攻击的绕过技术,以便能够发现和修补应用程序中的SQL注入漏洞。
绕过WAF
WAF(Web Application Firewall)是一种应用层防火墙,用于保护Web应用程序免受各种网络攻击。其中包括SQL注入攻击。WAF可以防止常见的SQL注入攻击,并且可以通过配置规则来识别和阻止新的SQL注入攻击。然而,攻击者可以使用各种技术来绕过WAF的防御措施,从而成功地进行SQL注入攻击。为了防范SQL注入攻击,渗透测试工程师需要了解SQL注入攻击绕过WAF的技术,以便能够发现和修补应用程序中的SQL注入漏洞。
SQL注入攻击绕过WAF的技术主要包括以下几种:
- 利用编码
攻击者可以利用编码来绕过WAF的检测。例如,将SQL关键字编码为16进制、Unicode或者Base64格式。WAF可能无法识别这些编码后的关键字,从而无法防止SQL注入攻击。攻击者还可以使用URL编码、HTML实体编码等方式来绕过WAF的检测。
- 利用注释
攻击者可以使用SQL注释来绕过WAF的检测。例如,在SQL语句中使用"–“或者”#"来注释掉后续的语句。WAF可能无法识别这些注释符号,从而无法防止SQL注入攻击。
- 利用括号
攻击者可以使用括号来绕过WAF的检测。例如,在SQL语句中使用括号"()"将攻击载荷包含起来,从而使WAF无法检测到攻击载荷。攻击者还可以使用嵌套的括号来增加攻击的复杂度,从而更难被WAF检测到。
- 利用布尔盲注
攻击者可以使用布尔盲注来绕过WAF的检测。布尔盲注是一种利用布尔逻辑运算符(AND、OR)的SQL注入攻击方式。攻击者可以通过构造布尔查询来判断应用程序中的SQL注入漏洞。例如,攻击者可以构造一个查询,判断一个条件是否成立,从而推断出数据库中的某个值。由于WAF无法识别这种攻击方式,因此攻击者可以成功地进行SQL注入攻击。
- 利用时间盲注
时间盲注是一种利用时间延迟的SQL注入攻击方式。攻击者可以通过构造时间延迟的SQL查询来判断应用程序中的SQL注入漏洞。例如,攻击者可以构造一个查询,在查询结果返回前会有一段时间的延迟。通过观察返回结果的时间来判断查询是否成功执行。由于WAF无法识别这种攻击方式,因此攻击者可以成功地进行SQL注入攻击。
- 利用二次注入
二次注入是一种利用多个SQL查询的SQL注入攻击方式。攻击者可以在一个SQL查询中注入恶意代码,然后在另一个查询中执行该代码。由于WAF无法识别这种攻击方式,因此攻击者可以成功地进行SQL注入攻击。
- 利用错误信息
攻击者可以利用应用程序返回的错误信息来绕过WAF的检测。例如,攻击者可以构造一个错误的SQL查询,从而使应用程序返回错误信息。通过观察错误信息,攻击者可以推断出应用程序中的SQL注入漏洞。由于WAF无法识别这种攻击方式,因此攻击者可以成功地进行SQL注入攻击。
- 利用盲注
盲注是一种利用应用程序返回的信息来判断SQL查询结果的SQL注入攻击方式。攻击者可以通过构造盲注查询来判断应用程序中的SQL注入漏洞。例如,攻击者可以构造一个查询,如果查询结果为真,则应用程序返回一个页面,否则返回另一个页面。通过观察返回页面的内容来判断查询是否成功执行。由于WAF无法识别这种攻击方式,因此攻击者可以成功地进行SQL注入攻击。
总之,SQL注入攻击绕过WAF的技术非常多样化,攻击者可以根据具体情况选择不同的技术来绕过WAF的检测。渗透测试工程师需要了解这些技术,以便能够发现应用程序中的SQL注入漏洞,并进行修补。在修补SQL注入漏洞时,可以使用参数化查询、输入验证、白名单过滤等技术来防止SQL注入攻击。同时,渗透测试工程师还应该对WAF进行测试,以确保WAF能够有效地防止SQL注入攻击。
绕过输入过滤
数据库作为现代应用程序的重要数据存储手段,对于用户提交的数据往往需要执行SQL查询和修改操作。然而,恶意攻击者可以利用 SQL 注入攻击技术,伪造SQL查询语句并通过恶意用户输入来绕过输入过滤,访问和修改数据库中的数据。
常规的安全措施,例如输入过滤、参数化查询等可以有效地减缓 SQL 注入攻击的影响。不过,攻击者拥有多种方法来绕过这些安全措施。本文将从渗透测试工程师的角度,详细阐述 SQL 注入绕过技术之绕过输入过滤。
什么是输入过滤
输入过滤是指通过限制用户输入的方式,防止非法或有害的信息进入应用程序的过程。在 Web 应用程序中,防护通常包括限制非法字符、转义特殊字符等方式。
在 SQL 注入攻击中,输入过滤旨在防止攻击者直接将SQL语句注入到数据库中。例如,通过检查用户输入以确保其只包含数字或字母,并删除包含特殊字符的输入,可以防止常见的 SQL 注入攻击。
常见的输入过滤技术包括正则表达式、白名单过滤、黑名单过滤等。虽然这些技术能够有效地减缓SQL注入攻击,但是它们并不是完美的解决方案,因为攻击者有多种方法可以绕过这些策略。
SQL 注入攻击
在了解如何绕过输入过滤之前,我们需要先理解 SQL 注入攻击的工作原理。
SQL 注入攻击是一种将恶意 SQL 代码插入数据库查询语句中的攻击方式,以可执行任意 SQL 命令的形式达到控制目标系统的目的。攻击者通常发现应用程序存在安全漏洞,并通过对包含某些字符的用户输入进行操作,在应用程序的 SQL 查询语句上执行额外的命令。
例如,以下代码片段从 user 表中获取用户名和密码:
SELECT username, password FROM user WHERE id = $id
如果攻击者提供了一个怀有恶意的ID参数,“1 OR 1=1”, 语句变成了:
SELECT username, password FROM user WHERE id = 1 OR 1=1
由于条件始终为真,结果是 SELECT 语句返回表中所有行的数据,而不仅仅是指定的用户 ID 的行。 攻击者可以利用此类注入向控制台写入其他任意代码来 take-over 目标站点。
绕过输入过滤
为了继续讨论 SQL 注入攻击如何绕过输入过滤,我们需要先了解几种常用的输入过滤技术。
白名单过滤
白名单过滤是一种基于允许列表进行输入检查的技术,以防止恶意用户向应用程序中注入不安全代码。使用白名单过滤时,只有包含在事先定义的白名单中的输入值才被视为合法数据。
例如,一个 Web 应用程序可能会使用以下代码来验证输入的用户名是否只包含字母和数字:
import redef is_valid_username(username):# 只接受只包含字母和数字的字符串return bool(re.match("^[a-zA-Z0-9]*$", username))
此代码使用正则表达式从输入值中删除特殊字符,并确保仅包含字母和数字。 但是,如果攻击者能够绕过这些规则并注入非法数据,则此策略将无法有效地防止SQL注入攻击。
黑名单过滤
黑名单过滤与白名单过滤相反,它试图通过检查输入是否包含已知的危险字符或字符串来防止恶意数据进入系统。使用黑名单过滤时,管理员在服务器上配置黑名单,以排除已知恶意数据。 常见黑名单包括SQL保留字、引号等常见特殊字符。
例如,可以使用以下代码来清理输入的关键词:
def clean_input(value):# 清理未受信任的SQL保留字和特殊符号bad_chars = ["'", "\"", ";", "(", ")", "=", "<", ">"]for char in bad_chars:value = value.replace(char, "")return value
然而,使用黑名单过滤并不能有效抵御所有的 SQL 注入攻击。例如,如果攻击者能够使用万能字符来绕过黑名单,则无论过滤器中是否存在该字符串,恶意数据都将顺利通过。
解码过滤
解码过滤是一种可能被攻击者用来绕过输入检查的技术。此类攻击者会对用户输入进行 URL/HTML 编码或其他形式的编码,以尝试绕过服务器端的输入过滤器。
还有更多相关技术,等待大家的探索和分享!
相关文章:

SQL注入绕过技术
预计更新SQL注入概述 1.1 SQL注入攻击概述 1.2 SQL注入漏洞分类 1.3 SQL注入攻击的危害 SQLMap介绍 2.1 SQLMap简介 2.2 SQLMap安装与配置 2.3 SQLMap基本用法 SQLMap进阶使用 3.1 SQLMap高级用法 3.2 SQLMap配置文件详解 3.3 SQLMap插件的使用 SQL注入漏洞检测 4.1 SQL注入…...

锂电池基础知识及管理方式总结
这两天在排查一个锂电池无法充电的问题,用的是电池管理芯片BQ25713,网上相关的资料也很少,查看数据手册时,里面也有很多术语参数等不是很理解,所以,在此对锂电池的基础知识做个简单的总结,方面后…...

小红书基于零信任 SASE 办公安全解决方案,斩获 “IDC 中国 20 大杰出安全项目”
近日,由 IDC 主办的 2023 全球 CSO 网络安全峰会(中国站)在京举行,峰会荟萃 300 生态伙伴和行业领袖,共同探讨新形势下的数据安全保护,畅议未来网络安全的可靠航道。 会上,“2023 IDC 中国20大杰…...

html通过CDN引入Vue使用Vuex以及Computed、Watch监听
html通过CDN引入Vue使用Vuex以及Computed、Watch监听 近期遇到个需求,就是需要在.net MVC的项目中,对已有的项目的首页进行优化,也就是写原生html和js。但是咱是一个写前端的,写html还可以,.net的话,开发也…...

【LabVIEW学习】5.数据通信之TCP协议,控制电脑的一种方式
一。tcp连接以及写数据(登录) 数据通信--》协议--》TCP 1.tcp连接 创建while循环,中间加入事件结构,创建tcp连接,写入IP地址与端口号 2.写入tcp数据 登录服务器除了要知道IP地址以及端口以外,需要用户名与密…...

uview1 的u-tabs组件在微信小程序中会出现横向滚动条
uview1 的u-tabs组件在微信小程序中会出现横向滚动条,真机才会生效,微信开发者工具没问题包括官方示例也会 原因:未屏蔽微信小程序的滚动条 解决办法:uview-ui中uview-ui/components/u-tabs/u-tabs.vue文件把h5屏蔽滚动条的条件编…...

服务器ipv6地址显示“scope global dadfailed tentative noprefixroute”无法连通的问题处理一例
服务器规模启用ipv6地址后,遇到一起案例 ,配置的服务ipv6地址显示“scope global dadfailed tentative noprefixroute”,无法连通,现将解决过程记录如下。 一、问题情况 1、ipv6信息检查 某台服务器配置ipv6地址后,…...

深度学习学习顺序梳理
https://www.bilibili.com/video/BV1to4y1G7xq/?spm_id_from333.999.0.0&vd_source9607a6d9d829b667f8f0ccaaaa142fcb 1.吴恩达机器学习课程 已学完,时间较久了,后续可以重新听一遍,整理一下笔记 2. 白板推导读西瓜书 统计学习方法看…...

机器学习实验六:聚类
系列文章目录 机器学习实验一:线性回归机器学习实验二:决策树模型机器学习实验三:支持向量机模型机器学习实验四:贝叶斯分类器机器学习实验五:集成学习机器学习实验六:聚类 文章目录 系列文章目录一、实验…...

逆向思考 C. Fence Painting
Problem - 1481C - Codeforces 思路:逆序考虑,因为每一块木板都是被最后一次粉刷所决定的。 从后往前开始,对于 c i c_i ci来说, 如果这个颜色还有没有涂的木板,那么涂到其中一个木板即可如果这个颜色下没有未涂的…...

当当狸AR智能学习图集跨越千年文明传承,邀您“面对面”与虚拟诗人互动对诗
中华传统文化底蕴深厚,余韵悠长。即使经过千年的历史裂变,依然历久铭心慰藉着一代又一代人的灵魂。千百年后的今天,成为了我们独一无二的财富。 如今,国人学习中华传统文化的方式有很多,诗词集、动画影片、诗歌传颂等…...

CESM笔记——component活动状态+compset前缀解析+B1850,BHIST区别
时隔一年没写CSDN笔记了,一些CESM的知识点我都快忘了。诶,主要是在国外办公室的网屏蔽了好多国内的网络,CSDN登不上,回家又不想干活。。。好吧,好多借口。。。 昨天师弟问我一些问题,想想要不可以水一篇小…...

vue 页面跳转时,浏览器上方显示进度条
vue 页面跳转时,浏览器上方显示进度条 文章目录 vue 页面跳转时,浏览器上方显示进度条先看效果一、安装 nprogress二、main.js 引入nprogress1.引入库 三、在router.js中对路由钩子进行设置四、测试 先看效果 vue 页面跳转时,浏览器上方显示进…...

tqdm输出字符串被截断
tqdm输出截断 1.遇到的问题2.tqdm默认的字符串长度是80(ncols属性)3.修改tqdm的ncols属性4.本人字符串长度是64 1.遇到的问题 字符串打印,显示不完整, 2.tqdm默认的字符串长度是80(ncols属性) 3.修改tqdm的…...

Qt::UniqueConnection和lambda一块用无效
如果槽函数是lambda。 那么用了Qt::UniqueConnection也会出现槽函数被多次调用的问题。 原因: 参考官方文档: QObject Class | Qt Core 5.15.16https://doc.qt.io/qt-5/qobject.html#connect...

四川技能大赛——2023年四川网信人才技能大赛(网络安全管理员赛项)决赛
四川技能大赛——2023年四川网信人才技能大赛(网络安全管理员赛项)决赛 文章目录 四川技能大赛——2023年四川网信人才技能大赛(网络安全管理员赛项)决赛C1-比64少的bas - DONEC2-affine - DONEC3-简单的RSA - DONEM1-不要动我的f…...

死锁(面试常问)
1.什么是死锁 简单来说就是一个线程加锁后解锁不了 一个线程,一把锁,线程连续加锁两次。如果这个锁是不可重入锁,会死锁。两个线程,两把锁。 举几个例子,1.钥匙锁车里了,车钥匙锁家里了。2. 现在有一本书…...

GO设计模式——3、抽象工厂模式(创建型)
目录 抽象工厂模式(Abstract Factory Pattern) 抽象工厂模式的核心角色 优缺点 代码实现 抽象工厂模式(Abstract Factory Pattern) 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他…...

AUTOSAR_PRS_LogAndTraceProtocol文档翻译
1简介和概述 本协议规范规定了AUTOSAR协议Dlt的格式、消息序列和语义。 该协议允许将诊断、日志和跟踪信息发送到通信总线上。 因此,Dlt模块从应用程序或其他软件模块收集调试信息,向调试信息添加元数据,并将其发送到通信总线。 此外&#x…...

自定义比较器
package org.jeecg.modules.develop.api.livePort; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; // 创建一个泛型类 class MyObject { private T data; public MyObject(T data) {this.data data; }p…...

【NLP】如何管理大型语言模型 (LLM)
什么是LLM编排? LLM 编排是管理和控制大型语言模型 (LLM)的过程,以优化其性能和有效性。这包括以下任务: 提示LLM:生成有效的提示,为LLMs提供适当的背景和信息以产生所需的输出。链接LLM: 结合多个LLM的输…...

利用机器学习实现客户细分的实战
前言: Hello大家好,我是Dream。 今天来学习一下机器学习实战中的案例:创建客户细分,在此过程中也会补充很多重要的知识点,欢迎大家一起前来探讨学习~ 一、导入数据 在此项目中,我们使用 UCI 机器学习代码库…...

Tair(4):Tair原理架构
一个Tair集群主要包括3个必选模块:ConfigServer、Dataserver和Client 通常情况下,一个 Tair 集群中包含2台 Configserver 及多台 DataServer。其中两台 Configserver 互为主备。通过和 Dataserver 之间的心跳检测获取集群中存活可用的 Dataserver&#…...

SAP UI5 walkthrough step7 JSON Model
这个章节,帮助我们理解MVC架构中的M 我们将会在APP中新增一个输入框,并将输入的值绑定到model,然后将其作为描述,直接显示在输入框的右边 首先修改App.controllers.js webapp/controller/App.controller.js sap.ui.define([&…...

智能检测/摄像头监控系统EasyCVR无法启动进程是什么原因?如何解决?
国标GB28181智慧安防平台EasyCVR支持高清视频的接入和传输、分发,平台采用了开放式的网络结构,提供实时远程视频监控、录像回放与存储等功能。视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持…...

export命令详解
export命令详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! Export命令详解:释放Linux强大的数据导出能力 在Linux世界中,export命令是…...

十几个软件测试实战项目【外卖/医药/银行/电商/金融】
项目一:ShopNC商城 项目概况: ShopNC商城是一个电子商务B2C电商平台系统,功能强大,安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城,系统PC后台是基于ThinkPHP MVC构架开发的跨…...

用python打印出菱形图案
你可以使用Python编写一个简单的函数来打印菱形图案。下面是一个例子,这个函数接受一个参数n,表示菱形的高度,然后打印出一个菱形图案: def print_diamond(n): # 上半部分 for i in range(n): print(" " …...

k8s 中externalTrafficPolicy应用场景和实践
在Kubernetes(K8s)中,externalTrafficPolicy 是一个用于控制服务的外部流量的策略。这个字段可以在 Service 的定义中设置,其主要作用是决定服务对外部请求的负载均衡行为。具体来说,externalTrafficPolicy 有两个可选…...

Selenium自动化测试框架(超详细)
Selenium自动化测试(基于python) 1、Selenium简介 1.1 Selenium是一款主要用于Web应用程序自动化测试的工具集合。Selenium测试直接运行在浏览器中,本质是通过驱动浏览器,模拟浏览器的操作,比如跳转、输入、点击、下…...