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

别再死记硬背Payload了!用DVWA靶场手把手教你理解SQL注入与XSS的底层原理

从DVWA靶场实战拆解Web安全核心原理SQL注入与XSS的攻防博弈当你第一次在DVWA靶场中输入admin or 11成功登录时是否思考过为什么这个简单的字符串能绕过密码验证当img srcx onerroralert(1)在页面上弹出警告框时浏览器究竟是如何解析这段代码的本文将带你穿透表象通过DVWA靶场的三个安全级别Low/Medium/High逐层剖析SQL注入与XSS漏洞的底层运作机制。1. 重新认识DVWA不只是漏洞复现工具DVWADamn Vulnerable Web Application常被新手当作漏洞配方手册但它的真正价值在于可调节的安全防护层级。每个漏洞模块的四个难度级别Low/Medium/High/Impossible实际上展示了安全防护的进化路径Low级别完全不设防状态展示漏洞最原始形态Medium级别基础防护但存在缺陷演示典型防护误区High级别强化防护但仍有绕过可能呈现攻防对抗的复杂性Impossible级别行业最佳实践展示彻底防护方案以SQL注入模块为例观察不同级别对用户输入的处理差异安全级别防护措施典型绕过方法Low无任何过滤直接注入Medium转义单引号数字型注入High使用预处理语句但实现不完整注释符绕过Impossible严格参数化查询无有效绕过2. SQL注入原理深度解析从语法闭合到数据库交互2.1 解剖经典万能密码攻击在DVWA的Low级别登录页面输入admin or 11 --时后端PHP代码实际执行的SQL语句是SELECT * FROM users WHERE useradmin or 11 -- AND password...这里的关键在于单引号闭合与逻辑运算符的配合admin闭合原语句中的左引号or 11注入永真条件--注释掉后续密码验证部分通过开发者工具查看网络请求可以看到这个payload被URL编码为useradmin%27or%271%27%3D%271%27--password1232.2 防护措施演进与绕过技术当切换到Medium级别时开发者使用了mysql_real_escape_string()处理输入$user mysql_real_escape_string($_POST[user]);这个函数会转义特殊字符如单引号 → 但存在两个致命缺陷未设置正确的字符编码时可能失效对数字型注入完全无效如1 OR 11High级别采用了更严格的预处理语句$stmt $db-prepare(SELECT * FROM users WHERE user?); $stmt-bind_param(s, $user);但错误实现时仍可能被绕过。真正的解决方案如Impossible级别所示强制参数化查询密码哈希验证即使SQL注入成功也无法直接登录3. XSS攻击全景透视浏览器解析机制与防御突破3.1 三种XSS类型的本质区别通过DVWA的XSS模块可以直观比较三种XSS的触发条件反射型XSSPayload出现在URL中服务端直接反射回页面http://dvwa/vulnerabilities/xss_r/?namescriptalert(1)/script存储型XSSPayload存入数据库每次访问页面时执行!-- 留言板内容 -- scriptalert(持久化攻击)/scriptDOM型XSS客户端JS直接操作DOM时触发document.write(img srcx onerroralert(1));3.2 绕过过滤的创意手法Medium级别常用过滤方式及绕过示例// 简单替换script标签 $name str_replace(script, , $_GET[name]);对应绕过方案大小写变形ScRiptalert(1)/sCRipt嵌套无效标签scrscriptiptalert(1)/script使用HTML事件属性img srcx onerroralert(1)High级别可能采用更复杂的正则过滤preg_replace(/(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i, , $input);此时可尝试SVG向量或编码混淆svg/onloadalert(1) a hrefjavascript:alert(1)click/a4. 构建自定义防护从理解到创造4.1 实现一个简易XSS过滤器基于对攻击原理的理解我们可以编写基础防护函数function xss_filter($input) { // 转换特殊字符为HTML实体 $input htmlspecialchars($input, ENT_QUOTES, UTF-8); // 移除危险属性 $input preg_replace(/\bon\w/i, data-, $input); // 白名单允许的HTML标签 $allowed_tags pastrongem; return strip_tags($input, $allowed_tags); }测试案例echo xss_filter(img srcx onerroralert(1)); // 输出img srcx4.2 SQL注入防御实践对比几种防护方案的实际效果// 不安全字符串拼接 $query SELECT * FROM users WHERE id.$_GET[id]; // 改进1转义处理 $id mysqli_real_escape_string($conn, $_GET[id]); $query SELECT * FROM users WHERE id$id; // 最佳实践参数化查询 $stmt $conn-prepare(SELECT * FROM users WHERE id?); $stmt-bind_param(i, $_GET[id]);在DVWA的High级别环境中尝试构造以下测试用例1 AND 111 OR 111; DROP TABLE users观察不同防护级别下的响应差异用Wireshark抓包分析实际传输的SQL语句。5. 浏览器安全机制与漏洞利用现代浏览器内置的多层防护如何影响XSS攻击效果通过开发者工具可以观察到CSP内容安全策略Content-Security-Policy: default-src self; script-src trusted.com这种策略会阻止内联脚本执行但可能通过CDN漏洞绕过。HttpOnly Cookiesetcookie(session, value, [httponly true]);阻止JavaScript读取Cookie但对CSRF攻击无效。X-XSS-Protection 已弃用的浏览器内置过滤器可通过特殊构造绕过scriptvar a/scriptscriptalert(1)/script;在DVWA的CSP绕过挑战中尝试以下步骤检查Network标签页的响应头寻找允许的外部域名如pastebin.com托管包含恶意脚本的外部资源诱导应用加载该资源6. 从靶场到实战建立系统性防御思维当在真实项目中设计安全方案时需要考虑的维度远超过靶场环境输入验证白名单优于黑名单数据类型严格校验如filter_var($email, FILTER_VALIDATE_EMAIL)输出编码// 根据输出上下文选择编码方式 htmlspecialchars($str); // HTML输出 json_encode($str); // JavaScript输出 $stmt-bind_param(s, $str); // 数据库查询安全配置PHP.ini设置expose_php OffWeb服务器禁用危险HTTP方法PUT/DELETE定期更新依赖库如composer update纵深防御WAF规则配置示例ModSecuritySecRule ARGS detectXSS id:1,log,deny,status:403数据库权限最小化原则关键操作二次认证在DVWA的Impossible级别代码中这些原则都有充分体现。例如在文件上传模块检查文件内容而不仅是扩展名重命名上传文件防止路径遍历设置严格的权限限制通过这种深度拆解你会发现安全不是魔法——每个漏洞都有其明确的形成原因和防护方案。当你能在代码层面理解mysql_real_escape_string()与预处理语句的本质区别或是清楚htmlspecialchars()的ENT_QUOTES参数意义时Web安全的大门才真正向你敞开。

相关文章:

别再死记硬背Payload了!用DVWA靶场手把手教你理解SQL注入与XSS的底层原理

从DVWA靶场实战拆解Web安全核心原理&#xff1a;SQL注入与XSS的攻防博弈 当你第一次在DVWA靶场中输入admin or 11成功登录时&#xff0c;是否思考过为什么这个简单的字符串能绕过密码验证&#xff1f;当<img srcx onerroralert(1)>在页面上弹出警告框时&#xff0c;浏览器…...

三电平半桥LLC谐振变换器电路仿真研究:移相角度控制与DSP PWM生成方式探讨,输出电压优化...

三电平半桥LLC谐振变换器电路仿真 采用频率控制方式 引入一定的移相角度&#xff08;比较小&#xff09; 驱动信号采用CMPA CMPB方式产生 增计数模式&#xff08;参照DSP PWM生成&#xff09; 相比普通半桥LLC开关管电压应力小 输出电压闭环控制 输出特性好&#xff0c;几乎无超…...

Firefox老版本爱好者的自救指南:手动修改prefs.js与channel-prefs.js锁定版本

Firefox版本锁定终极指南&#xff1a;从配置文件到注册表的深度控制 你是否也遇到过这样的困扰&#xff1f;精心挑选的Firefox旧版本在不知不觉中被强制升级&#xff0c;熟悉的界面突然变得陌生&#xff0c;那些陪伴多年的插件一夜之间全部失效。对于依赖特定版本进行开发测试的…...

论mysql国盾shell-sfa犯罪行为集团下的分项工程及反向注入原理尐深度纳米算法下的鐌檵鄐鉎行为

SQL注入核心技术原理及纳米技术深度计算机算法机器应用函数技术的黑客用途是什么涵盖与控制原理**1. 概念澄清&#xff1a;不存在“纳米技术深度计算机算法”** * **SQL 注入**是一种针对**数据库软件层面**的网络攻击技术&#xff0c;利用的是代码逻辑漏洞。 * **纳米技术…...

VR视频转换终极指南:用VR-Reversal将3D视频智能转换为2D格式

VR视频转换终极指南&#xff1a;用VR-Reversal将3D视频智能转换为2D格式 【免费下载链接】VR-reversal VR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcode.com…...

关于Vscode配置企业Git

1.获取账号信息①企业邮箱&#xff1a;xxxxxxxxxxx.com.cn②在邮箱里会有企业给你的git密码修改自己设置③打开Vscode下方终端旁边有一个加号&#xff0c;新建终端2.配置终端打开 VS Code&#xff0c;在顶部菜单栏点击 终端(Terminal) -> 新建终端(New Terminal)&#xff0c…...

思源宋体TTF版本兼容性与升级指南

思源宋体TTF版本兼容性与升级指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 版本兼容性矩阵 版本发布日期主要特性兼容性说明升级建议v1.0012021-10-15初始版本发布完全兼容所有…...

【2024信创落地硬核案例】:某政务终端从ARM切换至平头哥曳影1520,C驱动重写仅用11人日——附完整Makefile与Kconfig补丁包

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;国产化 RISC-V 芯片 C 语言驱动适配案例 随着平头哥、芯来科技、赛昉科技等厂商推出成熟 RISC-V SoC&#xff08;如 TH1520、Nuclei N/NX 系列、JH7110&#xff09;&#xff0c;国产嵌入式生态正加速构…...

为什么你的Tidyverse 2.0报告总在CI/CD中断?8大环境变量冲突真相,含可复用的docker-compose.yml模板

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Tidyverse 2.0自动化数据报告的核心挑战与定位 Tidyverse 2.0 的发布标志着 R 生态在声明式数据处理与可重复报告生成方面迈入新阶段&#xff0c;但其自动化能力在真实生产环境中仍面临多重结构性挑战。…...

别再被线阻坑了!用开尔文四线法精准测量毫欧级电阻(附Multisim仿真步骤)

毫欧级电阻测量的终极方案&#xff1a;开尔文四线法全解析与Multisim实战 在硬件调试的微观世界里&#xff0c;毫欧级电阻的测量就像用普通尺子测量头发丝的直径——传统两线法的误差足以淹没真实信号。当某次电源模块异常发热的排查中&#xff0c;我反复测量MOSFET的导通电阻始…...

别急着把 autocast 全切成 bf16:RTX 3090 上把 GEMM、Conv2d 和 ResNet18 训练都跑完后,我的推荐顺序是这样

别急着把 autocast 全切成 bf16:RTX 3090 上把 GEMM、Conv2d 和 ResNet18 训练都跑完后,我的推荐顺序是这样 很多人把 bf16 当成“更稳的 fp16”,也有人一提消费级显卡就先下结论:bf16 肯定更慢,别折腾。我这次在一张 RTX 3090 上,把 4096x4096 的 GEMM、Conv2d 和 ResN…...

VSCode 2026协作权限体系曝光:细粒度文件级/行级/语义级锁定策略(含RBAC+SCIM集成方案)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;VSCode 2026实时协作多人编辑的架构演进与设计哲学 VSCode 2026 将协作能力从插件生态升维至核心运行时层&#xff0c;其底层采用基于 CRDT&#xff08;Conflict-free Replicated Data Type&#xff09…...

Microsemi Libero SoC 实战:用Verilog写个LED呼吸灯,从仿真到上板全流程(附ModelSim波形分析)

Microsemi Libero SoC实战&#xff1a;Verilog实现LED呼吸灯的全流程解析 引言 呼吸灯效果在消费电子产品中极为常见&#xff0c;从笔记本电脑的睡眠指示灯到智能家居设备的待机状态提示&#xff0c;这种柔和的光线渐变效果远比简单的闪烁更富科技感和用户体验。对于FPGA开发…...

如何在 Chrome 浏览器中快速接入 Taotoken 并调用大模型 API

如何在 Chrome 浏览器中快速接入 Taotoken 并调用大模型 API 1. 准备工作 在开始之前&#xff0c;请确保您已经拥有 Taotoken 平台的 API Key。登录 Taotoken 控制台&#xff0c;在「API 密钥」页面可以创建和管理您的密钥。同时&#xff0c;建议在「模型广场」查看当前可用的…...

【紧急预警】大模型上线前必做的3项R统计审查:Feldman–Hajek偏差指数、Wasserstein公平距离、Bootstrap置信带校验

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;R语言在大语言模型偏见检测中的统计方法导论 在大语言模型&#xff08;LLM&#xff09;部署日益广泛的背景下&#xff0c;系统性偏见可能通过训练数据、词嵌入或生成逻辑被隐式放大。R语言凭借其强大的…...

Visual C++运行库终极修复指南:一键解决系统依赖问题的完整教程

Visual C运行库终极修复指南&#xff1a;一键解决系统依赖问题的完整教程 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Visual C运行库是Windows系统中不可或缺…...

终极指南:让Mem Reduct内存优化工具显示中文界面的完整方案

终极指南&#xff1a;让Mem Reduct内存优化工具显示中文界面的完整方案 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct …...

告别视频消失焦虑:用m4s-converter永久保存你的B站收藏

告别视频消失焦虑&#xff1a;用m4s-converter永久保存你的B站收藏 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经遇到过这样的情况&…...

用MSP432P401R驱动HX711压力传感器:从引脚配置到数据读取的保姆级代码解析

MSP432P401R与HX711压力传感器的深度开发指南 1. 硬件架构与通信原理 HX711是一款专为高精度称重传感器设计的24位模数转换器芯片&#xff0c;采用双线制串行通信协议。与MSP432P401R微控制器的配合使用&#xff0c;能够构建高性价比的称重系统解决方案。 核心引脚功能&#xf…...

java同步另一项目数据

java同步另一平台的数据 在 Java 中实现跨平台的数据同步&#xff0c;并没有唯一的标准答案&#xff0c;而是需要根据你的数据量大小、实时性要求以及对方平台提供的接口类型来选择合适的方案。 结合你的 Spring Boot MyBatis-Plus 技术栈&#xff0c;这里为你梳理了 4 种最主…...

别光看Loss曲线了!用TensorBoard/PyTorch Lightning可视化工具,5分钟揪出模型过拟合的‘狐狸尾巴’

别光看Loss曲线了&#xff01;用TensorBoard/PyTorch Lightning可视化工具&#xff0c;5分钟揪出模型过拟合的‘狐狸尾巴’ 在模型训练过程中&#xff0c;我们常常会陷入一个误区&#xff1a;盯着Loss曲线的下降趋势就以为万事大吉。但实际上&#xff0c;Loss曲线背后隐藏的信息…...

STM32F103三路DS18B20单总线测温实战:从Proteus 8.11仿真到代码调试避坑全记录

STM32F103三路DS18B20单总线测温实战&#xff1a;从Proteus 8.11仿真到代码调试避坑全记录 1. 项目背景与硬件选型思考 去年冬天帮朋友改造温室大棚时&#xff0c;需要同时监测三个不同区域的温度变化。市面上现成的测温设备要么价格昂贵&#xff0c;要么无法满足多点同步采集的…...

Jetson Orin Nano系统镜像备份与恢复全攻略:用l4t_backup_restore.sh一键搞定NVMe硬盘

Jetson Orin Nano系统镜像备份与恢复全攻略&#xff1a;用l4t_backup_restore.sh一键搞定NVMe硬盘 当你花费数小时配置好一台完美的Jetson Orin Nano开发环境后&#xff0c;最怕什么&#xff1f;系统崩溃、硬盘损坏&#xff0c;或是需要为十台同型号设备重复相同的配置流程。作…...

SLK模型MCP服务器:标准化集成与工具调用优化实践

1. 项目概述&#xff1a;一个为SLK模型设计的MCP服务器最近在折腾大模型应用开发的朋友&#xff0c;可能都绕不开一个概念&#xff1a;MCP&#xff08;Model Context Protocol&#xff09;。简单来说&#xff0c;它就像是大模型和外部工具、数据源之间的一座标准化的桥梁。而今…...

京东抢购助手终极指南:三步实现Python自动化抢单

京东抢购助手终极指南&#xff1a;三步实现Python自动化抢单 【免费下载链接】jd-assistant 京东抢购助手&#xff1a;包含登录&#xff0c;查询商品库存/价格&#xff0c;添加/清空购物车&#xff0c;抢购商品(下单)&#xff0c;查询订单等功能 项目地址: https://gitcode.c…...

开源贡献者提名工具Nominate:用静态站点与轻量流程重塑社区认可

1. 项目概述&#xff1a;一个被低估的开源贡献提名工具 在开源社区里&#xff0c;我们经常谈论“贡献”&#xff0c;但很多时候&#xff0c;我们谈论的仅仅是代码提交。然而&#xff0c;一个健康的开源项目生态&#xff0c;远不止于代码。文档的完善、问题的精准反馈、社区氛围…...

保姆级教程:用Spring Boot Filter + 飞书机器人,5分钟搞定慢SQL监控告警

生产级慢SQL监控&#xff1a;Spring Boot Filter与飞书机器人深度整合实战 当数据库查询性能开始拖累整个系统时&#xff0c;大多数团队往往要等到用户投诉才会发现问题。传统的监控方案要么太重&#xff08;需要全套APM系统&#xff09;&#xff0c;要么太滞后&#xff08;依赖…...

3步彻底清理Mac残留文件:Pearcleaner开源解决方案指南

3步彻底清理Mac残留文件&#xff1a;Pearcleaner开源解决方案指南 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾为Mac电脑存储空间不足而烦恼&…...

什么是 MQTT?物联网设备如何通过 MQTT 连接云平台

什么是 MQTT&#xff1f;物联网设备如何通过 MQTT 连接云平台 文章目录什么是 MQTT&#xff1f;物联网设备如何通过 MQTT 连接云平台一、MQTT 是什么&#xff1f;二、为什么物联网中常用 MQTT&#xff1f;1. 协议轻量&#xff0c;通信开销小2. 支持长连接3. 支持发布/订阅模式4…...

【卷卷观察】学历年龄还重不重要?AI 时代真正稀缺的是会判断的人

中文互联网今天最容易吵起来的一条 AI 新闻&#xff0c;是钉钉创始人陈航谈 AIQ。多家媒体报道&#xff0c;陈航在 2026 清华五道口金融发展论坛上说&#xff0c;AI 时代招人&#xff0c;学历、经历、年龄都变得不重要&#xff0c;更重要的是真诚可靠、心态开放&#xff0c;以及…...