当前位置: 首页 > article >正文

命令注入漏洞原理以及修复方法

漏洞名称 :命令注入

漏洞描述:Command Injection,即命令注入攻击,是指由于Web应用程序对用户提交的数据过滤
不严格,导致黑客可以通过构造特殊命令字符串的方式,将数据提交至Web应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者网络资源等。在命令注入的漏洞中,最为常见的是PHP的命令注入。PHP命令注入攻击存在的主要原因是Web应用程序员在应用PHP语言中一些具有命令执行功能的函数时,对用户提交的数据内容没有进行严格的过滤就带入函数中执行而造成的。例如,当黑客提交的数据内容为向网站目录写入PHP文件时,就可以通过该命令注入攻击漏洞写入一个PHP后门文件,进而实施进一步的渗透攻击。

检测条件:

1、 Web业务运行正常
2、 例如已知某页面URL(假设为http://www.exmaple.com/abc.jsp)接收参数,且参数中接收类似于系统命令的字符(假设为cmd=ls)

检测方法

1、 通过web扫描工具进行扫描,如果具有该漏洞,一般可以扫描得到,也可以通过手工去进行验证:例如打开网站,在地址栏中的网址后面输入‚?cmd=所要执行的命令‛,如下图所示的http://192.168.1.3/?cmd=net user,可以发现命令能够成功执行:

修复方案

PHP中命令注入攻击漏洞带来的危害和影响很严重。防范命令注入攻击漏洞的存在可以通过以下几种方法:

1、 尽量不要执行外部的应用程序或命令。
2、 使用自定义函数或函数库实现外部应用程序或命令的功能。
3、 在执行system、eval等命令执行功能的函数前,确定参数内容。
4、 使用escapeshellarg函数处理相关参数。Escapeshellarg函数会将任何引起参数或命令结束的字符进行转义,如单引号‚’‛会被转义为‚\’‛,双引号‚‛‛会被转义为‚\‛‛,分号‚;‛会被转义为‚\;‛,这样escapeshellarg会将参数内容限制在一对单引号或双引号里面,转义参数中所包含的单引号或双引号,使其无法对当前执行进行截断,实现防范命令注入攻击的目的。
5、 使用safe_mode_exec_dir执行可执行的文件路径。将php.ini文件中的safe_mode设置为On,然后将允许执行的文件放入一个目录中,并使用safe_mode_exec_dir指定这个可执行的文件路径。这样,在需要执行相应的外部程序时,程序必须在safe_mode_exec_dir指定的目录中才会允许执行,否则执行将失败。


http://www.kler.cn/a/227801.html

相关文章:

  • 如何从客观角度批判性阅读分析博客
  • 深入理解MySQL 的 索引
  • 线程池以及在QT中的接口使用
  • 项目测试之Postman
  • 《HelloGitHub》第 106 期
  • EasyExcel写入和读取多个sheet
  • 解释 Python 中的描述符(Descriptor)是什么?如何在 Python 中实现一个简单的 ORM(对象关系映射)?
  • Golang中的HTTP请求凝聚器
  • C语言标准库所有字符串操作库函数汇总
  • ruoyi(若依)(el-menu也可参考)菜单栏过长显示省略号才显示气泡
  • SVDiff: Compact Parameter Space for Diffusion Fine-Tuning——【论文笔记】
  • 聊聊PowerJob的ContainerController
  • Vue中跨域问题的解决
  • 红队渗透靶机:LORD OF THE ROOT: 1.0.1
  • 聊聊并发编程,另送5本Golang并发编程新书
  • LeetCode--代码详解 1.两数之和
  • 为 Windows10 22H2 启用 Microsoft Copilot 功能
  • Android 中的卡顿优化
  • 【JavaEE进阶】 图书管理系统开发日记——肆
  • 1452 - Cannot add or update a child row
  • ES证书过期,错误信息: current license is non-compliant for [security]
  • 大数据信用报告在线查询平台哪个好?
  • [python]基于LSTR车道线实时检测onnx部署
  • 13.2 Web与Servlet进阶(❤❤)
  • Redis(十一)单线程VS多线程
  • [机缘参悟-145] :一个软件架构师对佛学的理解 -9- 修行的目标和层次:净心、智慧和解脱