DVWA—SQL Injection

news2024/11/15 8:06:01

DVWA—SQL Injection实例

1. low等级

进入界面后,可以看到它是一个ID的查找内容的输入框,我们输入数字1、2可以看到是从后端返回数据库相应的数据,但是我们作为SQL注入的最终目标是得到更多有关的信息,所以我们需要通过构造payload来进行操作。
在这里插入图片描述
在此之前我们需要判断它是属于哪一方面的漏洞,通过sql-lab的博客介绍相关sql注入类型来对它的漏洞类型进行判断。漏洞类型大致可以初定为数字型和字符型。
其实所有的类型都是根据数据库本身表的类型所产生的,在我们创建表的时候会发现其后总有个数据类型的限制,而不同的数据库又有不同的数据类型,但是无论怎么分常用的查询数据类型总是以数字与字符来区分的,所以就会产生注入点为何种类型。
数字型判断:
用 and 1=1 和 and 1=2 来判断:
1.Url 地址中输入 http://xxx/abc.php?id= x and 1=1 页面依旧运行正常,继续进行下一步。
2.Url 地址中继续输入 http://xxx/abc.php?id= x and 1=2 页面运行错误,则说明此 Sql 注入为数字型注入。因为逻辑判断错误。1并不等于2。
字符型判断
概述:当输入的参数为字符串时,称为字符型。字符型和数字型最大的一个区别在于,数字型不需要单引号或其它特殊符号来闭合,而字符串一般需要通过特殊符号,如单引号来闭合的。
如果一条后台语句为:$sql=“SELECT * FROM users WHERE id='1 ’ LIMIT 0,1”,这里的“1”被加上了单引号,使我们无法查询
我们可以通过在URL地址栏输入?id=1’ 来判断是否是字符型注入,
输入?id=1’,这时候1后面的单引号把原本语句的一对单引号隔开了,变成了?id=‘1’',多出了一个单引号,正常来说,包裹着id变量的单引号是成对,这样的语句结构没有问题的,多出了一个单引号就报错了破坏了原本的sql语句结构,并且这条语句被带进数据库进行查询,数据库由于无法处理这条 ‘非正常’ 的语句,所以也就报错了,由于数据库和前端页面是交互的,所以前端页面也会出现异常或者报错,会报错说明这条语句成功被带进数据库查询,存在字符型注入。
所以通过构造不同类型的payload可以知道这个是属于字符型注入漏洞。

1 and 1=2

在这里插入图片描述

1’and ‘false

在这里插入图片描述
从上面得到我们注入的类型是属于字符型我们就可以考虑整体注入思路,因为SQL注入最终的目标都是将数据库进行脱库然后对数据进行存储使用。
然后根据正常的SQL表的构成需要分别获取数据库库名、数据库对应的表名、数据库表名对应的列名。
① 获取库名
我选择的是union联合注入方式

1’ union select 1,database()#

在这里插入图片描述
得到表名为dvwa
② 获取表名

1’ union select 1,group_concat(table_name)COLLATE utf8_general_ci from information_schema.tables where table_schema=database()#

在这里插入图片描述
③ 获取列表名

1’ union select 1,group_concat(column_name)COLLATE utf8_general_ci from information_schema.columns where table_name=‘users’#

可以看到表中的列表共有如下这么多
在这里插入图片描述
得到所有列表我们就可以进行脱库处理了
例如我们只对users数据库中的用户名字(ID),账号密码感兴趣

1’ or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(user,password) from users #

在这里插入图片描述
可以看到我们在获取到的user跟password中password是加密的,我们可以去试着查看多个user的password的长度如果相同我们可以推断这个加密方式为hash加密即将密码设为同一长度的密文形式。

2. medium等级

因为在medium等级中在页面输入中将id的值输入变成了选择项的输入框来进行数据传递,所以我们需要用到burpsuits工具进行操作。然后可以看到在medium等级中使用了mysqli_real_escape_string()函数,通过查找可以知道这是一种过滤特殊字符类似于/n、’这类字符的操作,所以这就应该是一个数字型注入漏洞。
在这里插入图片描述
在这里插入图片描述
根据上面的判断我们就可以开始进行与low等级一样的流程操作了
① 获取数据库库名

union select 1,database()#

在这里插入图片描述
在这里插入图片描述
② 获取表名

union select 1,group_concat(table_name)COLLATE utf8_general_ci from
information_schema.tables where table_schema=database()#

在这里插入图片描述
③ 获取列表名以及脱库操作

or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(user,password) from users #

在这里插入图片描述

3. high等级

在high中它使用了LIMIT1这样的函数来对它进行限制,但是通过查找相关资料可以知道可以通过#来实现对它的SQL注入所以,我们可以直接套用low等级中的语句实现SQL注入,因为前面阶段都相同所以我在这里直接演示拉取数据的操作。
在这里插入图片描述
在这里插入图片描述
4. impossible等级
在impossible等级中有点大道至简的感觉了,因为我们查询的是通过id值来进行查找所以我们直接使用is_numberic()函数对输入的id是否为数字进行判断直接就杜绝了一切SQL注入的可能出现。
在这里插入图片描述

总结

在SQL injection注入中,我们可以选择union联合注入也可以像其他博主那样选择error注入方式,虽然各有千秋本质都是想要将数据库脱库对想要的数据进行操作,所以方法并不唯一。

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

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

相关文章

【生成式人工智能-九-大型语言模型的幻觉、偏见等安全性问题】

大型语言模型的安全性 幻觉对语言模型的输出做核查 偏见消除偏见的方法 鉴别是否是人工智能输出prompt hacking 语言模型被骗做事情jailbreakingjailbreaking的危害 prompt injection 今天还是先来谈一下有哪些安全性问题,以及简单介绍有那些应对方案。 幻觉 看过大…

BugKu CTF Misc:

前言 BugKu是一个由乌云知识库(wooyun.org)推出的在线漏洞靶场。乌云知识库是一个致力于收集、整理和分享互联网安全漏洞信息的社区平台。 BugKu旨在提供一个实践和学习网络安全的平台,供安全爱好者和渗透测试人员进行挑战和练习。它包含了…

写一个Vue2和vue3的自定义指令(以复制指定作为示例)

文章目录 一、自定义指令是什么?二、自定义指令有啥用?三、自定义指令怎么用?1.自定义指令的参数2.自定义指令的钩子函数(1)五个钩子函数的说明(2)钩子函数的参数(主要参数:el和valu…

高效管理视频文件,2024年视频压缩软件精选集

我的生活中处处都充满了数据的影子,不知道你是不是也这样。而且存储的数据可能由于某些失误会导致我们数据的丢失,幸运的是,现在我们掌握全免费的数据恢复工具的使用方式,就能尽可能地找回丢失的数据。 1.FOXIT数据恢复 连接直达…

解决客户访问超时1s问题

访问公网地址返回状态码499-CSDN博客 需求描述 客户访问公司公网服务,期望在1s内完成。他们在客户端设置了超时1s的配置,如果超过1s公司服务就会报错499,这是正常的请求返回。 分析问题 目前这个服务通过公网的alb负载均衡到ecs&#xff0…

Stable Diffusion绘画 | 提示词格式

推荐格式 提升画质的提示词与画风的提示词,对整体画面影响较大,建议在首行填写 画质词画风词画面主体描述环境、场景、灯光、构图Lora负面词 画质词 常规画质词: (masterpiece:1.2),best quality,highres,extremely detailed CG,perfect…

集成新的 AI 服务时需要考虑的问题

让我们来谈论最近发生的几个恐怖故事。 去年年底,一家雪佛兰经销商在其主页上部署了一个由大型语言模型 (LLM) 驱动的聊天机器人。该 LLM 经过雪佛兰汽车详细规格的训练,旨在仅回答有关雪佛兰汽车的问题。 然而,用户很快就找到了绕过这些限…

驰骋BPM RunSQL_Init接口SQL注入漏洞复现 [附POC]

文章目录 驰骋BPM RunSQL_Init接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现驰骋BPM RunSQL_Init接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,由于…

LeetCode 热题 HOT 100 (022/100)【宇宙最简单版】

【技巧】No. 0647 回文子串【中等】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#xff…

step12:qml程序.exe生成指定图标

文章目录 0.文章内容1.在qt中改变图标效果代码 2. 在生成的build应用程序中改变图标效果代码 3. 获取.ico格式图片的连接参考文档 0.文章内容 1.在qt中改变图标 效果 代码 2. 在生成的build应用程序中改变图标 效果 代码 RC_ICONS logo2.ico 3. 获取.ico格式图片的连接 不…

vue 日期控件 100天内的时间禁用不允许选择

vue 日期控件 100天内的时间禁用不允许选择&#xff0c;可以从101天选起 比如&#xff0c;2024年8月9号开始&#xff0c;100天内禁止选择&#xff0c;第101天之后的日期可以选&#xff0c;效果如图所示 // 日期控件代码 加上 :picker-options"pickerOptions" <…

使用 Vue3 生成二维码和条形码

目录 前言 一、前期准备 1.1. 使用Vite创建工程化项目 1.2 安装所需的依赖 二、环境检查 三、生成二维码 3.1 创建二维码组件 3.2 在App.vue中使用二维码组件 四、生成条形码 4.1 创建条形码组件 4.2.在App.vue中使用条形码组件 五、启动测试与效果演示 5.1 启动de…

【前端可视化】大屏可视化项目三 包含了横向柱形图、竖向柱形图、雷达图、环形图、关系图、数据云图、数据展示图和地图可视化等八个部分

基于vite与tailwindcss创建大屏可视化 项目准备 传统的三列布局 <template><div class"w-full h-full"><div v-if"loading" class"bg-[url(assets/images/bg.png)] bg-cover bg-center loading-container h-screen w-full flex jus…

Arthas简介及示例

一、什么是Arthas&#xff1f; Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方…

记2024-08原生微信小程序开发

继2024.08 最近需要开发一个微信小程序的一个功能模块&#xff0c;但是之前在学的时候都是好几年前的东东了&#xff0c;然后重新快速过了一遍b站大学的教程&#xff0c;这篇文章就是基于教程进行的一些总结&#xff0c;和自己开发过程当中使用到的一些点和一些技巧什么的吧。 …

uniapp小程序出现【 wxss GetCompiledResult】报错

报错信息 进入页面报错&#xff0c;导致页面无法显示 原因 查看小程序源代码发现 wxss 文件内有个不正常的字符 就是这个 * 导致解析失败 出现解析失败的原因 / 解决办法 是因为这里使用了通配符 注释掉就可以了

多组织系统的设计思路

一、什么是多组织系统 多组织这个概念是一般多用于企业信息化系统。通常是指一个集团分拆了多个子公司进行运营&#xff0c;每家子公司负责集团业务的一个到多个部分&#xff0c;多家子公司共同支撑集团的全部业务。 子公司内部&#xff0c;在业务执行过程中相对独立&#xf…

c++标准库STL————string类的基础模拟

string类 一、构造类函数1.构造一个空内容的对象2.用已知对象进行拷贝构造3.用c语言字符串的形式构造 二、容量型函数三、对象访问四、修改类操作4、非成员函数 一、构造类函数 c11提供了许多参数的重组&#xff0c;但通常这四种类型的构造较为常用。 1.构造一个空内容的对象 …

Python 机器学习求解 PDE 学习项目 基础知识(4)PyTorch 库函数使用详细案例

PyTorch 库函数使用详细案例 前言 在深度学习中&#xff0c;PyTorch 是一个广泛使用的开源机器学习库。它提供了强大的功能&#xff0c;用于构建、训练和评估深度学习模型。本文档将详细介绍如何使用以下 PyTorch 相关库函数&#xff0c;并提供相应的案例示例&#xff1a; to…

我在高职教STM32——I2C通信之读写EEPROM(1)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助CSDN平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思设计的教学课件分…