DVWA 1.10 命令注入实战:5种连接符绕过黑名单过滤与防御原理

发布时间:2026/10/1 11:17:43

DVWA 1.10 命令注入实战:5种连接符绕过黑名单过滤与防御原理
DVWA 1.10 命令注入实战5种连接符绕过黑名单过滤与防御原理在渗透测试和CTF竞赛中命令注入Command Injection始终是Web安全领域的高频漏洞之一。DVWADamn Vulnerable Web Application作为经典的漏洞演练平台其命令注入模块完整呈现了从无防护到严格防御的四种安全等级。本文将聚焦、、|、||、;这五种命令连接符的实战应用通过黑名单绕过案例揭示防御机制的薄弱环节。1. 命令连接符核心原理命令连接符是操作系统提供的特殊字符用于控制多条命令的执行逻辑。理解它们的差异是绕过过滤的基础连接符执行逻辑适用系统A;B顺序执行A和B无论A是否成功Linux/WindowsABA后台运行B立即执行Windows等效于A;BLinux/WindowsAB仅当A成功时执行B短路与Linux/WindowsAB将A的输出作为B的输入AB典型Payload示例# 查看当前用户Linux 127.0.0.1 whoami # 列出Windows用户列表 127.0.0.1 net user注意Windows和Linux对某些连接符的解释存在差异例如在Linux中表示后台运行而在Windows中仅作为命令分隔符。2. Low级别无过滤的绝对漏洞Low级别直接拼接用户输入到系统命令毫无防护措施// DVWA Low级别关键代码 $target $_REQUEST[ip]; if(stristr(php_uname(s), Windows NT)) { $cmd shell_exec(ping . $target); // 直接拼接命令 }绕过技巧直接注入有效命令127.0.0.1 cat /etc/passwd多命令组合127.0.0.1 ifconfig uname -a乱码解决方案Windows环境 修改dvwa/includes/dvwaPage.inc.php中的字符集- charsetutf-8 charsetGB23123. Medium级别初阶黑名单的突破Medium级别引入了黑名单机制但仅过滤了和;$substitutions array( , ; , ); $target str_replace(array_keys($substitutions), $substitutions, $target);三种有效绕过方式未过滤连接符127.0.0.1 net user未被过滤Windows下等效于黑名单替换缺陷127.0.0.1 ; net user→ 替换后变为127.0.0.1 net user管道符利用127.0.0.1 | netstat -ano|将ping结果传递给netstat4. High级别精准打击黑名单漏洞High级别扩展了黑名单但存在致命设计缺陷$substitutions array( , ; , | , // 注意此处过滤的是| 带空格 || , // 其他过滤字符... );关键绕过点黑名单中的|管道符空格存在空格导致未过滤纯|字符127.0.0.1|net user # 无空格绕过防御建议应使用正则表达式严格匹配preg_replace(/\|/, , $target); // 过滤所有|字符5. Impossible级别白名单的最佳实践Impossible级别采用白名单CSRF Token的终极防护// 验证IP格式 $octet explode(., $target); if(is_numeric($octet[0]) ... sizeof($octet) 4) { $target implode(., $octet); // 执行ping命令 }防护特点严格限制输入格式为数字.数字.数字.数字添加Anti-CSRF Token防止伪造请求使用stripslashes()防止转义绕过6. 防御方案设计指南根据OWASP建议命令注入防御应遵循输入验证白名单验证如Impossible级别的IP格式检查示例正则/^[0-9]\.[0-9]\.[0-9]\.[0-9]$/安全函数调用// 使用参数化调用 $cmd [ping, -c, 4, escapeshellarg($user_input)]; shell_exec(implode( , $cmd));最小权限原则Web服务器进程使用低权限账户运行禁用危险函数system(),exec()等日志监控记录所有命令执行行为设置异常操作告警在真实渗透测试中命令注入往往需要结合其他漏洞扩大攻击面。建议在DVWA环境反复练习不同操作系统的Payload差异掌握黑名单绕过的核心思路。

相关新闻

命令注入防御演进:从DVWA 4个级别看3种过滤策略的优劣与绕过

命令注入防御演进:从DVWA 4个级别看3种过滤策略的优劣与绕过

2026/9/30 22:11:53

命令注入防御演进:从DVWA四个级别看安全策略的实战优化在Web应用安全领域,命令注入攻击始终位列OWASP Top 10威胁榜单。本文将以DVWA(Damn Vulnerable Web Application)的命令注入模块为蓝本,系统剖析四种安全级别&…

如何解锁索尼相机的隐藏功能:OpenMemories-Tweak完全指南

如何解锁索尼相机的隐藏功能:OpenMemories-Tweak完全指南

2026/9/7 5:32:14

如何解锁索尼相机的隐藏功能:OpenMemories-Tweak完全指南 【免费下载链接】OpenMemories-Tweak Unlock your Sony cameras settings 项目地址: https://gitcode.com/gh_mirrors/op/OpenMemories-Tweak 索尼相机用户常常发现设备存在各种限制,比如…

Vulnhub Y0USEF-1 文件上传:Content-Type 绕过与 5 种 MIME 类型检测对抗

Vulnhub Y0USEF-1 文件上传:Content-Type 绕过与 5 种 MIME 类型检测对抗

2026/8/24 20:57:03

Vulnhub Y0USEF-1 靶机深度剖析:文件上传漏洞的5种MIME类型对抗实战1. 靶机环境与初始侦察Y0USEF-1是Vulnhub平台上的一款中级难度靶机,专注于Web应用安全中的文件上传漏洞利用。这个靶机特别适合想要深入理解文件上传过滤机制和绕过技术的学习者。首先我…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/29 22:00:59

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/30 20:35:35

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/30 20:35:38

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/30 20:35:36

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/30 20:35:33

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/30 8:20:32

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…