SQL注入渗透与攻防(八)之延时注入

news2024/12/26 11:01:22

目录

基于时间的SQL盲注 - 延时注入

案列演示


基于时间的SQL盲注 - 延时注入

关于延时注入的使用场景一般在我们测试的注入点没有报错信息又没有回显点的情况下进行的。通过对于时间的延时判断来猜解数据。在实战过程中并不推荐大家通过延时注入去判断数据库,因为实在是太麻烦了。

知识储备:

sleep(): Sleep 函数可以使计算机程序(进程,任务或线程)进入休眠

if(): i f 是 计算机编程语言一个关键字,分支结构的一种

mid(a,b,c): 从b开始,截取a字符串的c位

substr(a,b,c): 从b开始,截取字符串a的c长度

left(database(),1),database() : left(a,b)从左侧截取a的前b位

length(database())=8 : 判断长度

ord=ascii ascii(x)=100: 判断x的ascii值是否为100

在不使用sleep下查询数据所需要的时间:0.03秒

使用sleep可以使查询数据休眠指定时间  ,我们这里指定休眠3秒。

if(a,b,c):可以理解在java程序中的三目运算符,a条件成立 执行b, 条件不成立,执行c :

使用if与sleep结合使用:

达到延时数据显示,从而通过数据显示的时间判断数据对错! 

案列演示

使用靶场less-2来实现延时注入:

我们构造如下语句:

id=1%20and%20sleep(if(database()=%27security%27,5,0)) --+

然后我们看到这条语句在执行的时候:

时间延迟显示了5秒,说明了数据库的名称是对的,所以if语句执行了延时5秒。

我们可以通过length()来判断数据库的长度 ,假如我们这里的数据库的名称长度为8,我们构造如下语句:

id=1%20and%20sleep(if(length(database())=8,8,0))

 最终页面加载了八秒才有回显,说明数据库字符长度为8,在实际中,我们可以通过这样的办法一个一个去猜解数据库库名的长度。

接下来我们讲解延时注入里常用到的函数

mid这个函数有三个参数:

 mid()使用:

 我们这里数据库的名称是test,mid这个函数从当前的数据库的名称中第一位开始,截取一位长度的字符串,所以返回了t,如果我们这里是select mid(database(),1,2)l;的话,那么就会返回te两个字符了。

substr()函数 :

Substr()和substring()函数实现的功能是一样的,均为截取字符串。

string substring(string, start, length) string substr(string, start, length)

参数描述同mid()函数,第一个参数为要处理的字符串,start为开始位置,length为截取的长度。

substr()函数使用:

Left()函数  :

Left()得到字符串左部指定个数的字符

Left ( string, n ) string为要截取的字符串,n为长度。

 ASCII码

使用ascii函数() :

 这里的意思就是x这个字符的ascii码字符十进制是否为120,是则回显123,否则回显234.这里回显了123,说明x这个字符十进制为120。

id=1 and if(ascii(mid((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=120,sleep(3),0)

我们这里构造如上的语句就是判断当前的数据库的第一个表的表名第一位是否为‘x’,是则休眠3秒,否则不休眠。在实际操作中,我们可以一个一个修改位于120这个位置上的数字去猜解当前的表名,是不是看起来太麻烦了?所以实战中我并不推荐这种方法去爆破数据库。

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

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

相关文章

转行做程序员,难吗

在互联网急速发展的这几年里,程序员这个职业,成为了很多人的心之所向。虽然高薪背后往往伴随着高强度的工作节奏和压力,但是也不妨碍大量的人在编程培训或者自学编程的道路上前仆后继。 那么转行程序员真的容易吗?下面就跟大家分享…

无需编程即可将chatgpt接入自己的微信公众号

ChatGpt是openai推出的GPT3文本生成机器人。该机器人主要完成文本生成相关任务。机器人可以自主进行写作、翻译、修改语法、角色扮演的,甚至编写程序。网上有很多接入方法,大部份需要编程,并且需要注册openai账号获取appkey。本文所介绍的方法…

datagridview如何根据不同的按钮显示不同的表

以我设计的为例: 双击按钮,会自动创建三个事件 以第一个按钮为例:在其中添加如下代码 SqlConnection sqlcon new SqlConnection(); sqlcon.ConnectionString "";//双引号内填入你的数据库连接字符 sqlcon.Open(); string sql &…

UG NX二次开发(C#)-获取模型文件的预览图片

文章目录 1.前言2. 模型文件预览图介绍3.采用二次开发的方法获取模型的预览图4.验证1.前言 UG NX保持的prt文件中保存了模型的预览位图,但是采用UG NX二次开发时不能直接提取出来,本文讲解一下将prt文件的预览位图提取出来并单独保存。 2. 模型文件预览图介绍 如果我们在UG…

【字体】写代码编程字体展示推荐

写代码编程字体展示推荐 零、适合写代码编程的字体 什么样的字体适合写代码用?一般来讲,写代码的字体要求字母的宽度一致、轮廓清晰美观、l1i,0oO易于分辨、清晰易分辨的标点等,甚至有强迫症的还要中文与英文严格2:1对齐。下面收…

机器学习 | 决策树

一.基本原理 决策树是一种树状结构模型,每一个根节点都是一个特征判断,它的叶子节点就是它的特征分类结果 决策树是一种分类和回归的基本模型,是一棵树的形式,其实就是将平时所说的 if-else 语句构建成了树的形式。决策树主要包…

使用 SQL 别名简化查询并自定义结果

别名能够在不影响基础表或视图的情况下临时重命名表或列。作为大多数甚至所有关系数据库管理系统都支持的 SQL 功能,别名是简化查询和/或自定义结果集中列标题的好方法。在这篇文章中,我们将使用 Navicat Premium 16 来完成这两项工作。 重命名列 许多…

带宽消耗以及Swap(上)

今天我们来看一个真实的案例。事情是这样的,之前有人在微信上问我一个问题,这个问题的现象很典型:典型的 TPS 上不去,响应时间增加,资源用不上。 大概的情况是这样的:有两台 4C8G 的服务器,一台服务器上有 2 个 Tomcat,一台服务器上是 DB。压测的混合场景有 4 个功能模…

【验证码逆向专栏】某验三代滑块验证码逆向分析

声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 本文章未经许可禁止转载…

k8s教程(20)-pod之定时任务

文章目录01 引言02 基本语法03 案例04 文末01 引言 声明:本文为《Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)》的读书笔记 Kubernetes从1.5版本开始增加了一种新类型的Job,即类似Linux Cron的定时任务…

SpringMVC、SSM整合

SpringMVC的工作原理(底层Servlet的工作流程) DispatcherServletHandlerMapping ,返回值 HandlerExecutionChainHandlerAdapterViewResolverView ~~老版本(过去式) 一、搭建springmvc 第一步:配置打包…

互联网行业逐步回暖!就业显示有74%学员跨专业学编程!

三年以来,居家办公、隔离等影响已深入每个人的生活。就业形势承受着巨大的压力,同时就业环境也发生巨大变化,越来越多的人都面临转行! 达妹被问到最多的问题是: 跨专业学编程的疑虑 非科班出身零基础能学会编程吗? 数…

程序人生:起薪13k,兜兜转转还得是软件测试

很多人一聊到IT教育培训第一反应就是:为什么要报班呢,网上大把资源它不香吗?自己学一学不就出来找工作了吗?还花这种冤枉钱? 小编作为从业人员认真地说,进入IT行业虽然不是特别难,但也没有这么…

English Learning - L1-6 从此口语变得简约(下)2022.12.22 周四

English Learning - L1-6 从此口语变得简约(下)2022.12.22 周四引言6.2.2 分词非谓语动词作后置定语的三种被动结构1. to be done 将来的动作2. being done 正在进行的3. done 已经完成的6.2.3 分词形容词挑错其它1. 形容词 名词 ed2. 数词 名词 ed答…

RiscV汇编基础学习

文章目录一、基础概念指令集---指示计算机执行某种操作的命令,是计算机运行的最小功能单位。复杂指令集CISC(如x86)和精简指令集RISC(如arm、riscV)---两种指令集的优化设计方向RiscV---一个基于精简指令集RISC原则的开…

SQL注入渗透与攻防(七)之查询方式及报错注入

目录 SQL注入之查询方式 select 查询数据 delete 删除数据 insert 插入数据 update 更新数据 SQL注入 报错盲注 1.基于布尔的SQL盲注 - 逻辑判断 2.基于时间的SQL盲注 - 延时判断 3.基于报错的SQL盲注 - 报错回显(强制性报错 ) 案列演示 SQL注入…

移动设备的自动化测试工具,如何选型?

一、问题的提出 最近二两年来,一直在从事移动设备的自动化测试工作,可以说小有心得。但最近由于种种原因,面临着对移动设备的自动化测试工具的更换工作。所以,一个问题呈现在面前。我们需要为我们的项目选出一款新的自动化测试工…

最长上升子序列

基于最长上升子序列 LIS 求最长上升子序列有两种做法求最长上升子序列有两种做法求最长上升子序列有两种做法 一种是n2复杂度的线性dp一种是n^2复杂度的线性dp一种是n2复杂度的线性dp 另一种是O(nlogn)复杂度的贪心二分另一种是O(nlogn)复杂度的贪心二分另一种是O(nlogn)复杂度…

看BP英文文献生词记录

看BP英文文献生词记录 总的来说,该论文是在讲CAT和SAR的后向后向投影之间的联系与区别 acoustic imaging 原声成像 polychromatic 美 [pɒlɪkroʊ’mtɪk] 英 [pɒlɪkrəʊ’mtɪk] adj.多色的 illumination 美 [ɪˌlumɪˈneɪʃ(ə)n] 英 [ɪˌluːmɪˈne…

我国牛血清行业现状:FBS是最常用血清添加剂 但目前市场亟需规范化

根据观研报告网发布的《中国牛血清行业现状深度研究与投资前景分析报告(2022-2029年)》显示,牛血清是血清的一种,是一种浅黄色澄清、无溶血、无异物稍粘稠液体,内含有各种血浆蛋白、多肽、脂肪、碳水化合物、生长因子、…