命令执行基础知识

本文介绍了命令执行的基础知识,包括PHP中的系统命令执行函数,如system、exec等,以及命令执行漏洞的成因,如代码层过滤不严、系统漏洞、调用第三方组件等。此外,还阐述了命令执行的危害,如权限继承、反弹shell等,并分类讨论了不同类型的命令执行漏洞,如直接注入、本地包含、反序列化和动态变量执行。最后,给出了修复方案,如使用escapeshellarg和escapeshellcmd函数,以及禁用危险函数。
摘要由CSDN通过智能技术生成

 

    1. 思维导图

 

    1. 命令执行含义

 

当应用需要调用一些外部程序去处理内容情况下,就会用到一些执行系统命令的函数,比如php中的system、exec、shell_exec、passthru、popen、popc_popen等,当用户调用这些函数时,将恶意系统命令注入到正常命令中,造成命令执行漏洞;

PHP可动态执行PHP代码的有eval,

jsp有Runtime、getruntime()、exec();

Asp/aspx有eval等

本质:程序设计违背了”数据与代码分离”的原则;

 

    1. 命令执行漏洞成因

成因

    1. 代码层过滤不严

一些商业应用需要执行命令,商业应用的一-些核心代码可能封装在二进制文件中,在web应用中通过system函数来调用之:eg:system("/bin/program --arg $arg");

    1. 系统漏洞造成的命令注入

bash破壳漏洞(CVE-2014-6271),如果我们能够控制执行的bash的环境变量就可以通过破壳漏洞来执行任意代码;

    1. 调用第三方组件存在代码执行漏洞

典型的就是WordPress中,可以选择使用lmageMagick这个常用的图片处理组件,对用户. 上传的图片进行处理(默认是lmageMagick库)造成命令执行。

另外JAVA中的命令执行漏洞(struts2/ElasticsearchGroovy等)很常见。

    1. 漏洞危害
    2. 继承权限,执行系统命名,读写文件
    3. 反弹shell
    4. 控制整个服务器

 

 

 

    1. 漏洞分类
    2. 命令直接注入执行漏洞

命令注入

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值