命令执行漏洞

简介: 命令执行漏洞

简介

命令执行漏洞是指应用程序在调用执行系统命令的函数时,未对用户输入进行严格的过滤和验证,导致恶意用户可以通过构造恶意命令参数来执行任意系统命令。这种漏洞可能会导致公鸡者获取敏感信息、执行恶意操作或者控制服务器等危害。

命令执行漏洞的分类主要有两种情况:

代码层过滤不严:开发人员在编写代码时没有对用户输入进行充分的验证和过滤,导致恶意用户可以通过构造恶意命令参数来执行任意系统命令。

命令拼接符:恶意命令通常是拼接在正常命令后面,公鸡者利用命令拼接符来构造恶意命令参数,从而执行任意系统命令。

在Windows系统中,常见的命令拼接符有:

&:无论前一个命令执行成功与否,都会执行后一个命令。

&&:具有短路效果,如果前一个命令执行失败,则后面的命令不会执行。

|:将前一个命令的输出作为后一个命令的输入执行。

||:表示前一个命令执行失败,然后才执行后一个命令。

为了防止命令执行漏洞,开发人员应该对用户输入进行严格的验证和过滤,避免直接拼接用户输入到系统命令中。可以使用安全的API或者库来执行系统命令,并且避免使用可执行命令的函数。

image.png

命令执行漏洞是一种常见的安全漏洞,它允许公鸡者通过执行恶意命令来获取系统权限或者执行未授权的操作。该漏洞通常出现在应用程序中,当应用程序接受用户输入并将其作为命令或命令参数传递给底层操作系统时,如果没有对用户输入进行充分的验证和过滤,公鸡者就可以通过构造恶意输入来执行任意命令。

公鸡者可以利用命令执行漏洞来执行以下操作:

执行系统命令:公鸡者可以通过注入恶意命令来执行系统命令,例如查看敏感文件、修改系统配置等。

执行远程命令:公鸡者可以通过注入远程命令来执行远程操作,例如下载恶意文件、执行远程代码等。

执行特权命令:如果应用程序在特权用户或管理员权限下运行,公鸡者可以通过命令执行漏洞来获取特权权限,从而完全控制系统。

命令执行漏洞的原理是由于应用程序没有对用户输入进行充分的验证和过滤,导致用户输入被当作命令或命令参数直接传递给底层操作系统。公鸡者可以通过构造恶意输入来绕过应用程序的安全机制,从而执行任意命令。

为了防止命令执行漏洞,开发人员应该始终对用户输入进行严格的验证和过滤,并使用安全的API或函数来执行系统命令。例如,可以使用参数化查询或预编译语句来防止SQL注入漏洞,使用安全的文件操作函数来防止路径遍历漏洞,以及使用安全的命令执行函数来防止命令执行漏洞

漏洞分类

1、远程命令执行漏洞

概念:

远程命令执行漏洞,指用户通过浏览器提交执行操作命令, 由于服务器端,没有针对执行函数做过滤,就执行了恶意命令

2、远程代码执行漏洞

概念:

代码执行漏洞也叫代码注入漏洞,指用户通过浏览器 提交执行恶意脚本代码,执行恶意构造的脚本代码

认识命令连接符

1、window层面

&:无论左边是false还是true,右边都执行,按顺序执行

&&:具有短路效果,左边是false,右边不执行  

|:表示A命令语句的输出,作为B命令语句的输入执行。当A为false的时候将不会执行

||:A||B,表示A命令语句执行失败,然后才执行B命令语句。  

2、linux层面

‘&‘:在后台运行  

';':分号(;) 可以进行多条命令的无关联执行,每一条执行结果不会影响其他命令的执行  

'&&':按照顺序执行,如果前面应该正确就会执行下一个,如果错误那么就不会执行下一个  

'||':如果 || 左边的命令执行失败(返回1表示失败),才执行||右边的命令,否则不执行右边的命令,具有短路功能。  

'()':如果想执行几个命令,则需要用命令分隔符分号隔开每个命令,并使用圆括号()把所有命令组合起  

命令执行常用函数

在 PHP 中,一些常用的可以执行系统命令的函数包括:

system():执行系统命令,并直接输出结果。

shell_exec():执行系统命令,并返回输出结果。

exec():执行系统命令,并返回输出结果和执行结果。

passthru():执行系统命令,并直接输出结果。

popen():打开一个管道,并执行指定命令。

proc_open():通过指定命令打开一个进程,并建立管道进行通信。

反引号其实调用的是shell_exec()函数,当反引号中的变量可控时就会造成命令执行,且无回显。

pcntl_exec():执行指定的可执行文件,并用该文件替换当前进程。(在 Linux/Unix 系统中执行指定的可执行文件,并替换当前进程。)

expect_popen():通过 spawn 的方式启动一个进程,并对其进行交互式控制。(使用 Tcl 的 expect 扩展执行交互式命令。)

dl():装载指定的动态链接库文件,并执行其中的函数。(5.4已经移弃)

posix_spawn():启动一个新的进程,并指定要执行的程序文件名、命令行参数等。(针对 POSIX 环境)

这些函数都可以用于执行系统命令,但是都存在着安全风险。在编写 PHP 代码时,应该避免使用这些函数或者对用户输入进行严格的验证和过滤,以防止命令注入公鸡。

低安全级别

image.png

通过burp截取请求页面

image.png

相关文章
|
24天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
16天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
20天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2577 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
18天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
3天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
2天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
163 2
|
20天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1576 16
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
22天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
973 14
|
3天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
219 2
|
17天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
734 9