开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

web命令执行漏洞

简介:
+关注继续查看

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


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



二,利用条件:


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

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

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


三,漏洞危害:

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

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



四,例子:


例子一:

代码:

1
2
3
4
5
6
<?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”命令

wKiom1mhSCqRquRRAABG8Ph3pVk375.png


例子二:

1
2
3
4
5
6
<?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命令


wKioL1mhSpKwchuFAABd3q5AflU285.png






例子三:

1
2
3
4
5
6
7
8
<?php
    $arg $_GET['cmd'];   
     
    if ($arg) {
        system("ls -al \"$arg\"");
    }
     
  ?>

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

执行了ifconfig命令

wKiom1mhS_PyLrHyAACEeRHaYWU317.png-wh_50


例子四:

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

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

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

wKioL1mhTSOCUcCpAAB08Yga69Y420.png-wh_50


例子五:

1
2
3
4
5
<?php
    $fun $_GET['fun'];
    $par $_GET['par'];
    $fun($par);
?>


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

其实就相当于是执行了:

1
system("whoami"

wKiom1mhTmXy7ri_AAAtxYR739k204.png-wh_50



五:修复方案:

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

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

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

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

如:

1
2
3
4
5
6
<?php
    $arg $_GET['cmd'];    // $arg = addslashes($arg);
    $arg escapeshellcmd($arg);  //拼接前就处理
    if ($arg) {
        system("ls -al '$arg'");
    }?>


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

1
2
3
4
5
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


1.jpg


本文转自 天道酬勤VIP 51CTO博客,原文链接:http://blog.51cto.com/tdcqvip/1959586


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
web入门 命令执行 web53-web55
web入门 命令执行 web53-web55 WP
0 0
web入门 命令执行 web42-web52
web入门 命令执行 web42-web52 WP
0 0
web入门 命令执行 web29-web41
web入门 命令执行 web29-web41 WP
0 0
【PHP -S命令】PHP内置web服务器
【PHP -S命令】PHP内置web服务器
0 0
Maven通过命令创建web项目
Maven通过命令创建web项目
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
边缘安全,让Web加速有保障
立即下载
使用CNFS搭建弹性Web服务
立即下载
WEB框架0day漏洞的发掘及分析经验分享
立即下载