DVWA 靶场 SQL Injection (Blind) 通关解析

前言

DVWA代表Damn Vulnerable Web Application,是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序,旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。

DVWA提供了一系列的漏洞场景和练习环境,用户可以通过攻击这些漏洞场景来学习和实践漏洞利用技术。这些漏洞包括常见的安全问题,如SQL注入、跨站脚本攻击(XSS)、文件包含漏洞等。通过攻击这些漏洞,用户可以了解漏洞的原理、影响和防御方法。

DVWA提供了不同的安全级别,从低到高,以满足不同技能水平的用户需求。用户可以根据自己的能力选择适当的安全级别,并进行相应的练习和挑战。

DVWA还提供了一些额外的功能和工具,如Web代理、密码破解、弱密码检测等,以帮助用户更好地理解和处理漏洞问题。

总之,DVWA是一个用于学习和练习Web应用程序漏洞的开源应用程序。它提供了一系列的漏洞场景和练习环境,帮助安全专业人员和爱好者提高对Web应用程序安全的理解和实践能力。通过使用DVWA,用户可以加深对Web应用程序漏洞的认识,并学习如何有效地保护Web应用程序免受攻击

介绍

SQL 注入(SQL Injection)是一种通过将恶意 SQL 代码注入到应用程序的输入中,以操纵数据库执行攻击者指定的操作的攻击方式。盲注(Blind SQL Injection)是 SQL 注入的一种特殊形式,攻击者无法直接获取数据库的错误消息或查询结果,只能通过观察应用程序的行为变化来推断数据库的响应。以下是对盲注的详细介绍,包括其原理、常见技术、攻击手法、防御措施以及实例分析。

一、盲注的原理

在盲注攻击中,攻击者无法直接看到数据库的查询结果,而是通过间接方法推断数据库的响应。通常有两种盲注方式:

  1. 基于布尔的盲注(Boolean-based Blind SQL Injection)

    • 通过发送不同的 SQL 查询,观察应用程序的响应是否变化,推断查询的布尔值。
    • 例如,通过发送 AND 1=1AND 1=2 查询,如果页面响应不同,可以判断应用程序是否易受攻击。
  2. 基于时间的盲注(Time-based Blind SQL Injection)

    • 通过发送包含延迟函数的 SQL 查询,观察响应时间的变化,推断查询结果。
    • 例如,通过发送 IF(condition, SLEEP(5), 0) 查询,如果响应时间增加,可以判断条件是否为真。

二、防御措施

  1. 使用预编译语句(Prepared Statements)

    • 预编译语句使用参数化查询,可以有效防止 SQL 注入。
  2. 输入验证和输出编码

    • 对用户输入进行严格验证和清理,防止恶意输入。
    • 在输出到 HTML、JavaScript 等环境时,进行正确的编码。
  3. 最小特权原则

    • 数据库用户权限设置为最低,防止通过 SQL 注入获得更高权限。
  4. 数据库防护机制

    • 使用 Web 应用防火墙(WAF)和数据库防火墙,检测和阻止恶意请求。
  5. 定期安全审计和测试

    • 定期进行代码审计和渗透测试,发现和修复潜在的 SQL 注入漏洞。

一、Low

打开靶场,先输入正常数据

得到回显 

接下来输入 6,显示不存在

由此得到两种回显,接下来就是加引号判断,先输入 1'

再换双引号正常,说明闭合是单引号

上工具爆破数据库

sqlmap -u "http://192.168.134.148:8081/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie "security=low; PHPSESSID=bl6rh2nnmkkk753hs7vd87gjam" --technique B --dbs

二、Medium

这一关做了限制

抓包可以看到是 POST 提交

右键发送到重放器 

在重放器中更改参数为 6 显示不存在

接下来测试单引号和双引号

结果都是报错,索性不加引号直接跟上 and 1=1 判断

回显正常,说明咱找到了注入点 

三、High

点击链接弹出程序

输入 1 后,两个都有正常回显

输入 6 则报错

开启拦截然后发送到重放模块

发生是框框里面的,因为它没有回显所以对咱来说没用 

又有一个 GET 请求 

再重放模块中测试得出 GET 请求是网页的,所以咱拿它测试是一样的 

加单引号报错

双引号则没报错,所以应该是单引号闭合 

这关使用sqlmap主要注意要比low关增加一个参数--level 2,这样才会检测cookie中是否包含注入点(默认--level 1,不检测cookie)

四、结论

盲注是 SQL 注入的一种复杂形式,攻击者无法直接获取查询结果,而是通过观察应用程序的行为变化推断数据库的响应。为了防御盲注攻击,开发者应采取一系列安全措施,包括使用预编译语句、输入验证和输出编码、最小特权原则、数据库防护机制以及定期安全审计和测试。通过这些措施,可以有效防止 SQL 注入攻击,保护应用程序和用户数据的安全。

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

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

相关文章

sklearn之各类朴素贝叶斯原理

sklearn之贝叶斯原理 前言1 高斯朴素贝叶斯1.1 对连续变量的处理1.2 高斯朴素贝叶斯算法原理 2 多项式朴素贝叶斯2.1 二项分布和多项分布2.2 详细原理2.3 如何判断是否符合多项式贝叶斯 3 伯努利朴素贝叶斯4 类别贝叶斯4 补充朴素贝叶斯4.1 核心原理4.2 算法流程 前言 如果想看…

docker nacos2.3.2安装填坑

#nacos2.3.2安装# git clone https://github.com/nacos-group/nacos-docker.git cd nacos-docker #安装mysql8单机版 docker-compose -f example/standalone-mysql-8.yaml up #https://hub.docker.com 抽风# 因为网络原因,nacos/nacos-server 默认安装的最后版本…

Python封装cryptography对称加密方法

安装依赖 pip install cryptography实现方法 from cryptography.fernet import Fernetclass SymmetricEncryption(object):对称加密算法def __init__(self, secret_key=None

学习笔记——交通安全分析08

目录 前言 当天学习笔记整理 4信控交叉口交通安全分析 结束语 前言 #随着上一轮SPSS学习完成之后,本人又开始了新教材《交通安全分析》的学习 #整理过程不易,喜欢UP就点个免费的关注趴 #本期内容接上一期07笔记 当天学习笔记整理 4信控交叉口交…

天马学航——智慧教务系统(移动端)开发日志四

天马学航——智慧教务系统(移动端)开发日志四 日志摘要:优化了教师端界面的UI,更新了教师端添加课程,提交成绩等功能,修复了一些已知的BUG 1、教师添加课程设计 教师在此界面添加课程,并将数据提交后端进行审核 界…

代码随想录算法训练营第四十七天|LeetCode123 买卖股票的最佳时机Ⅲ

题1: 指路:123. 买卖股票的最佳时机 III - 力扣(LeetCode) 思路与代码: 买卖股票专题中三者不同的是Ⅰ为只买卖一次,Ⅱ可多次买卖,Ⅲ最多可买卖两次。那么我们将买买卖行为分为五个状态部分(…

LeetCode 每日一题 2024/6/17-2024/6/23

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 6/17 522. 最长特殊序列 II6/18 2288. 价格减免6/19 2713. 矩阵中严格递增的单元格数6/20 2748. 美丽下标对的数目6/21 LCP 61. 气温变化趋势6/22 2663. 字典序最小的美丽字…

WAAP的特性、功能以及优势

随着互联网技术的快速发展,Web应用程序和API已经成为企业日常运营中不可或缺的部分。然而,与此同时,网络攻击手段也愈发复杂和隐蔽,给企业的数据安全带来了严峻的挑战。为了应对这一挑战,WAAP(WebApplicati…

fastapi+vue3+primeflex前后端分离开发项目第一个程序

安装axios axios是用来请求后端接口的。 https://www.axios-http.cn/docs/intro pnpm 是一个前端的包管理工具,当我们需要给前端项目添加新的依赖的时候,就可以使用pnpm install 命令进行安装。 pnpm install axios安装 primeflex primeflex是一个cs…

知乎客户端跨平台-Hybrid-调试实战

在开发上述功能的过程中,发现了 flipper 这个工具 flipper 提供了一个桌面客户端,然后这个桌面客户端提供了一个和手机客户端通信的机制,免去了 socket 服务的开销,依靠这个通信机制,我们可以把上述的功能复制过来 基…

Python数列求和

1 问题 如何用python解决数学问题?如何用python数列求和? 2 方法 代码清单 1 Courier New字体,23磅行间距>>> def sum_num(): input_num input("输入一个0-9的整数:") try: input_num int(input_num) …

AI时代的音乐革命:创作更简单,灵魂在哪里?

#AI在创造还是毁掉音乐# 我是李涛,一名音乐创作者,最近一直在思考一个问题:AI到底是在创造音乐,还是在毁掉音乐? 几个月前,我第一次接触到AI音乐创作工具。它让我震惊,只需要输入几个关键词&a…

Apollo9.0 PNC源码学习之Planning模块(一)—— 规划概览

0 前言 规划本质就是搜索问题,数学角度来看就是寻找函数最优解 规划模块复杂的就是相关的逻辑处理和过程计算 对于规划的三维问题,目前解决方案:降维+迭代 将SLT问题分解为ST和SL二维优化问题:在一个维度优化之后,再另一个维度再进行优化,最后整合成三维的轨迹。 虽然降…

人机交互中的真问题与假问题

在人机交互领域,存在一些真正的挑战和问题,这些问题影响着如何有效地设计、开发和使用人机界面和交互系统。具体涉及: 人机交互系统需要尽可能自然和普适,以便用户可以轻松理解和使用。例如,语音识别系统需要能够准确地…

Excel使用小技巧

1、快速求和 选中数据区域&#xff0c;然后按组合键<Alt> 2、Excel表格美化 选中单元格区域&#xff0c;插入——表格&#xff0c;确定。也可以按快捷键CtrlT。 3、多个单元格同时输入 选中所有单元格&#xff0c;在编辑栏输入数据&#xff0c;按下Ctrl键的同时&#xf…

How to create a langchain doc from an str

问题背景&#xff1a; Ive searched all over langchain documentation on their official website but I didnt find how to create a langchain doc from a str variable in python so I searched in their GitHub code and I found this : 在 langchain 的官方文档中&#…

链表题目之模拟类

还有一些题目是没有特别复杂的技巧&#xff0c;但是考察仔细程度以及基本的链表处理能力&#xff0c;从而考察在基本的逻辑处理上考虑的全面和细致层度。这类题目对于业务代码编码能力的鉴定的确是有一些帮助。 分隔链表(86) 题目&#xff1a;86. 分隔链表 把大于等于的放到一…

游戏工厂:AI(AIGC/ChatGPT)与流程式游戏开发

游戏工厂&#xff1a;AI&#xff08;AIGC/ChatGPT&#xff09;与流程式游戏开发 码客 卢益贵 ygluu 关键词&#xff1a;AI&#xff08;AIGC、ChatGPT、文心一言&#xff09;、流程式管理、好莱坞电影流程、电影工厂、游戏工厂、游戏开发流程、游戏架构、模块化开发 一、前言…

Vue76-路由对浏览器历史记录的影响

一、push模式 默认是push 二、replace模式 替换当前记录&#xff01; &#xff08;当前指针指向的那一条记录&#xff09; 三、小结

完全禁用 Windows Defender

你有没有这样的情况&#xff0c;安装软件时&#xff0c;关闭了Windows实时保护&#xff0c;过几天&#xff0c;打开软件时&#xff0c;发现里面的附件被吞噬&#xff0c;因为Defender又自动打开了&#xff0c;那么&#xff0c;有没有一款可以完全禁用Defender的工具&#xff0c…