Web 安全手工识别 SQL 注入全实战(DVWA Low 完整复现 + 底层源码拆解 + 踩坑防护) 📅 发布时间:2026/7/7 2:02:04 👁️ 浏览次数: 前言很多网络安全初学者刚接触渗透测试时一上来就直接使用 Sqlmap 自动化工具跑注入完全忽略手工判断注入点这一核心基础能力。在等保测评、企业渗透实战中大量 WAF 会直接拦截工具特征流量此时只能依靠手工 Payload 判断漏洞同时面试、课程实训中手工注入原理也是高频考点。本文基于 DVWA 1.10 靶场 Low 安全等级完整复现从探测、验证到利用的全套手工 SQL 注入流程附带每一步拼接后的完整 SQL 语句、后端危险源码、实验截图、漏洞成因、线上真实防护方案解决大部分新手只懂操作不懂原理的问题全文实操可 1:1 复现。 实验环境PHPStudyDVWA1.10MySQL5.7安全等级Low无任何输入过滤适合入门理解字符型注入一、SQL 注入漏洞底层原理1.1 漏洞产生核心原因Web 程序将用户可控输入URL GET 参数、表单 POST 数据、Cookie不做过滤、转义、预处理直接字符串拼接进后端 SQL 查询语句攻击者可通过特殊符号破坏原有 SQL 语法结构篡改查询逻辑。 DVWA Low 级别 SQL 注入页面后端 PHP 原始危险代码php运行?php // 获取前端传入的id参数无过滤无转义 $id $_GET[id]; // 直接拼接用户输入存在致命注入漏洞 $query SELECT * FROM users WHERE id . $id . ; // 直接执行拼接后的SQL语句 $result mysqli_query($db, $query); ?这段代码是线上最典型的高危写法$_GET[id]接收用户可控参数后未做任何校验直接拼接进 SQL 字符串给注入提供了完整利用空间。1.2 字符型注入判定关键单引号 的作用MySQL 数据库中字符串类型字段的值必须使用单引号包裹闭合。 原有查询模板固定格式WHERE id用户输入输入提前闭合原有引号造成 SQL 引号数量不匹配抛出语法报错输入输入的两个单引号一个闭合原有语句另一个和后端末尾单引号配对抵消语法恢复正常以此确认注入点存在。二、实验前置环境配置启动 PHPStudy 集成环境开启 Apache 与 MySQL 服务浏览器访问 DVWA 首页使用默认账号 admin/admin 登录左侧菜单栏找到Setup / Reset DB点击重置数据库恢复原始测试数据进入DVWA Security页面安全级别下拉选择Low点击提交保存左侧导航切换至SQL Injection靶点页面进入 User ID 输入测试界面。三、分步手工探测 SQL 注入步骤 1正常业务逻辑测试确认查询规则操作在 User ID 输入框输入数字1点击 Submit 提交 页面返回结果ID:1First name:adminSurname:admin 拼接后执行 SQLsqlSELECT * FROM users WHERE id1;作用确认页面接收 id 参数、正常查询 users 表数据摸清基础查询结构为后续异常测试做对照。步骤 2输入 1通过数据库报错初步判定注入风险Payload 输入1页面返回 MySQL 原生语法报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 1拼接后错误 SQLsqlSELECT * FROM users WHERE id1;报错原理拆解 原始语句末尾自带单引号用户输入的1多增加了一层闭合引号整条 SQL 出现奇数单引号语法结构错乱数据库直接抛出错误并回显到页面。关键判定点网站直接输出数据库底层报错信息说明用户输入内容直接参与 SQL 拼接存在 SQL 注入高危风险。步骤 3输入 1抵消引号消除报错实锤注入漏洞存在Payload 输入1页面现象无报错正常返回 ID1 的 admin 用户数据 拼接后完整 SQLsqlSELECT * FROM users WHERE id1;逻辑说明第一个闭合id后的原有单引号第二个和后端语句末尾自带的单引号配对整条 SQL 引号数量匹配语法合法不再抛出错误。 这一步是区分 “页面报错” 和 “可利用注入点” 的关键能抵消报错即可确认漏洞可被攻击者利用。步骤 4万能注入 Payload or 11 批量读取全表数据Payload 输入 or 11页面现象一次性打印 users 表内全部 6 条测试用户数据admin、Gordon、Hack、Pablo、Bob、user 拼接后最终执行 SQLsqlSELECT * FROM users WHERE id or 11;逐段拆解注入逻辑开头提前闭合id后的原有单引号跳出原有查询条件orSQL 逻辑或运算符任意一侧条件成立整条 WHERE 判断结果为 True11永久恒真条件永远成立末尾和后端自带单引号配对保证 SQL 语法无错误。 等效查询逻辑WHERE true忽略原有 ID 限制查询 users 表内全部记录实现数据库批量信息泄露。四、手工注入标准化判断流程4.1 字符型注入三步探测法原创实操总结正常数字测试输入纯数字确认页面存在参数查询功能单引号报错探测输入页面输出 SQL 语法报错 → 存在注入风险双引号抵消验证输入报错消失、页面正常展示数据 → 确认漏洞可利用。4.2 字符型 / 数字型注入快速区分字符型注入本次实验场景参数被单引号包裹必须使用闭合原有语句才能注入数字型注入参数无引号包裹直接输入or 11即可脱库无需额外单引号。4.3 手工 Payload 拓展除基础 or 11外同场景可用等效 Payload 验证漏洞plaintext or 22 or 11-- - admin or 11#-- -与#为 MySQL 注释符可注释掉后端原有 SQL 剩余语句避免语法冲突。五、SQL 注入真实线上危害核心业务数据泄露用户账号、明文 / 哈希密码、手机号、身份证、订单数据全部脱库恶意篡改、删除数据通过 UPDATE、DELETE 语句清空业务数据表造成企业业务瘫痪服务器权限接管数据库账号拥有高权限时可通过into outfile写入 Webshell完全控制服务器合规处罚等保 2.0 明确将 SQL 注入列为高危漏洞存在该漏洞未修复会面临整改、罚款。六、生产环境完整防护方案6.1 代码层根治最优方案从根源杜绝注入使用参数化预编译查询PDO 预处理彻底分离用户输入与 SQL 语句示例安全 PHP 代码php运行?php $stmt $db-prepare(SELECT * FROM users WHERE id?); $stmt-bind_param(s, $_GET[id]); $stmt-execute(); ?预编译会将 SQL 模板与用户输入分开解析用户输入仅作为参数值不会被数据库解析为 SQL 指令。6.2 输入校验与过滤ID 类数字参数使用正则白名单仅允许 0-9 数字拦截单引号、or、union、#、-- 等特殊字符文本输入对单引号、双引号、反斜杠进行转义处理。6.3 服务器与运维层面防护关闭线上详细 SQL 报错页面统一返回自定义 404 / 错误提示禁止向前端输出数据库原生报错数据库账号最小权限Web 业务连接账号仅授予 SELECT 查询权限禁止 DROP、ALTER、FILE 等高危权限部署 WAF 应用防火墙拦截携带单引号、or、union 等注入特征的恶意请求定期渗透测试上线前手工 工具结合扫描提前修复注入漏洞。七、实验踩坑总结切换 DVWA 安全级别后未重置数据库旧数据干扰测试结果每次实验前务必 Reset DBPayload 空格缺失or11无空格会导致 SQL 语法错误or 前后必须保留空格靶场 MySQL 服务未启动页面无数据返回先检查 PHPStudy 数据库服务状态线上环境打印数据库报错攻击者可利用报错信息判断表名、字段名大幅提升注入成功率线上必须关闭。八、课后拓展练习将 DVWA 安全级别调整为 Medium分析后端数字过滤逻辑寻找绕过注入方法学习 Union 联合查询注入通过手工 Payload 爆库名、表名、字段名学习布尔盲注、时间盲注应对无回显、无报错的注入场景对比 Sqlmap 自动化注入与手工注入的优缺点总结实战中两者适用场景。
云原生数据库字段加密:透明代理与KMS集成架构实践 1. 项目概述:当敏捷开发遇上数据合规的“硬骨头” 最近几年,我参与和主导了多个从单体架构向云原生微服务架构迁移的项目。一个几乎在每个项目后期都会浮出水面的、让人头疼的问题,就是数据安全,尤其是数据库字段级别的加密。开发… 2026/7/7 1:56:01
06-高级模式与实战项目——10. 组件测试 - React Testing Library 10. 组件测试 - React Testing Library 概述 React Testing Library (RTL) 是一个用于测试 React 组件的工具库,它鼓励编写以用户行为为中心的测试,而不是测试实现细节。通过模拟用户交互,验证组件的行为是否符合预期。 维度内容What以用户… 2026/7/7 1:54:01
华为加速商业市场AI落地:要让鲲鹏昇腾算力像用水电一样便利 进入2026年以来,从“全民养虾潮”的现象级破圈,到AI深度嵌入企业生产经营,AI正加速从“生成内容”迈向“执行任务”的实质性落地阶段。在赋能千行百业的过程中,拥抱AI不再是大企业的专利,超6000万家中小企业正从观望者… 2026/7/7 1:54:01
GD/兆易创新代理现货库存GD32F103C8T6 单片机 长期供应 GD32F103C8T6 性能、应用及优势一、核心硬件性能1. 内核与存储内核:ARM Cortex‑M3,标准主频 72MHz,超频最高稳定 108MHz,Flash 零等待读取,同等频率运算效率比同规格 STM32 高 30%~40%。存储:64KB Flash、… 2026/7/7 3:53:36
3DThinkVLA:基于隐式SDF空间推理的具身智能新范式 1. 项目概述:这不是又一个“多模态缝合怪”,而是一次对空间智能本质的重新定义最近在几个顶会 workshop 的 poster 区反复看到3DThinkVLA这个名字,不是贴张图配段文字就完事的那种 demo,而是真正在机器人抓取、具身导航、工业质检… 2026/7/7 3:51:36
Seedance2.5本地部署指南:免费AI生图与视频生成实战 🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 Seedance2.5本地部署实战:免费无限制AI生图与视频生成全流程指南 最近在探索AI生图和视频生成工具时,发现很多… 2026/7/7 3:45:35
从零到机器人专家:20个STM32实战例程完整指南 从零到机器人专家:20个STM32实战例程完整指南 【免费下载链接】Development-Board-C-Examples 项目地址: https://gitcode.com/gh_mirrors/de/Development-Board-C-Examples 你是否曾想开发智能机器人,却被复杂的嵌入式系统吓退?面对… 2026/7/7 3:45:35
基于RFID的通信运营商基站设备固定资产现场巡检与数字化台账 随着5G网络规模化部署与政企专线、算力基站等新型基础设施持续扩容,通信运营商基站设备固定资产数量激增、品类繁杂、分布广泛,传统人工巡检、纸质台账登记的管理模式暴露出效率低下、数据滞后、账实不符、溯源困难等诸多问题,难以适配现代化… 2026/7/7 3:41:34
商城小程序开发怎么避坑?从商品、订单、支付和售后看选择 商城小程序开发怎么避坑?从商品、订单、支付和售后看选择商城小程序开发最容易踩的坑,不是页面不够漂亮,而是上线后才发现交易链路不完整。商品规格不能灵活维护、订单状态不清楚、支付配置不稳定、优惠活动不好改、会员数据沉淀不下来、售后… 2026/7/7 3:37:33
Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践 1. 项目概述:Acunetix v24.8 高级版漏洞扫描器深度解析作为一名在网络安全领域摸爬滚打多年的老兵,我深知一款趁手的“兵器”对于安全测试工作意味着什么。今天要聊的,就是Web应用安全测试领域里一个响当当的名字——Acunetix。特别是其v24.8… 2026/7/7 0:01:11
如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是… 2026/7/7 0:03:13
Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 【免费下载链接】Jailhouse-gui A graphical user interface (GUI) tool for configuring and managing Jailhouse, a Linux-based hypervisor for partitioning multicore processors into isolated cel… 2026/7/7 0:03:13
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/6 8:43:22
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/6 7:29:49
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/6 7:29:51