分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

web命令执行漏洞

发布时间:2023-09-06 01:06责任编辑:蔡小小关键词:命令执行


一,什么是命令执行漏洞:


  应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。



二,利用条件:


 1,应用调用执行命令的函数

 2,将用户输入作为系统命令的参数拼接到命令中

 3,没有对用户输入过滤或者过滤不严格


三,漏洞危害:

 1,攻击者可以执行命令获取想要的信息

 2,攻击者可以拿下服务器等



四,例子:


例子一:

代码:

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


访问:http://127.0.0.1/mingling/simple1.php?cmd=ping%20127.0.0.1

也就是执行了“ping 127.0.0.1”命令

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/03/D5/wKiom1mhSCqRquRRAABG8Ph3pVk375.png" title="2017-08-26_180604.png" alt="wKiom1mhSCqRquRRAABG8Ph3pVk375.png" />


例子二:

<?php    $arg = $_GET[‘cmd‘];        if ($arg) {        system("ping -c 3 $arg");    }?>


访问:http://192.168.25.107/simple2.php?cmd=127.0.0.1;pwd

执行了pwd命令


650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/A2/86/wKioL1mhSpKwchuFAABd3q5AflU285.png" title="2017-08-26_181626.png" alt="wKioL1mhSpKwchuFAABd3q5AflU285.png" />






例子三:

<?php    $arg = $_GET[‘cmd‘];           if ($arg) {        system("ls -al \"$arg\"");    }      ?>

访问:http://192.168.25.107/simple3.php?cmd=/home%22;ifconfig%22

执行了ifconfig命令

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/03/D6/wKiom1mhS_PyLrHyAACEeRHaYWU317.png-wh_500x0-wm_3-wmp_4-s_23229392.png" title="3.png" alt="wKiom1mhS_PyLrHyAACEeRHaYWU317.png-wh_50" />


例子四:

<?php eval($_REQUEST[‘code‘]);?>

当访问:http://192.168.25.107/simple4.php?code=phpinfo();

注意后面的分号,当然后面也可以跟一句话木马。

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/A2/86/wKioL1mhTSOCUcCpAAB08Yga69Y420.png-wh_500x0-wm_3-wmp_4-s_660029195.png" title="4.png" alt="wKioL1mhTSOCUcCpAAB08Yga69Y420.png-wh_50" />


例子五:

<?php    $fun = $_GET[‘fun‘];    $par = $_GET[‘par‘];    $fun($par);?>


当访问:http://192.168.25.107/simple5.php?fun=system&par=whoami

其实就相当于是执行了:

system("whoami")

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/03/D6/wKiom1mhTmXy7ri_AAAtxYR739k204.png-wh_500x0-wm_3-wmp_4-s_3769725770.png" title="3.png" alt="wKiom1mhTmXy7ri_AAAtxYR739k204.png-wh_50" />



五:修复方案:

  1. 尽量少用执行命令的函数或者直接禁用

  2. 参数值尽量使用引号包括

  3. 在使用动态函数之前,确保使用的函数是指定的函数之一

  4. 在进入执行命令的函数/方法之前,对参数进行过滤,对敏感字符进行转义

如:

<?php    $arg = $_GET[‘cmd‘];    // $arg = addslashes($arg);    $arg = escapeshellcmd($arg);  //拼接前就处理    if ($arg) {        system("ls -al ‘$arg‘");    }?>


escapeshellcmd( )逃脱字符串中任何可能用来哄骗(trick)shell命令的字符串,此函数用来确定资料传送到exec( )或system( )之前,由使用者输入的任何资料已经逃脱,标准的用法如下

Example :<?php   system(EscapeShellCmd($cmd));?>


六:参考链接:


1,http://haojiawei.xyz/2017/03/15/%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E/

2,http://www.jianshu.com/p/1e706f13b088



650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/A2/86/wKioL1mhT0LBqM-9AAQF1aT1ixQ725.png" title="打赏.png" alt="wKioL1mhT0LBqM-9AAQF1aT1ixQ725.png" />

本文出自 “天道酬勤” 博客,请务必保留此出处http://tdcqvip.blog.51cto.com/12995943/1959586

web命令执行漏洞

原文地址:http://tdcqvip.blog.51cto.com/12995943/1959586

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved