Kali 中文网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 122|回复: 0

浅谈php代码审计之命令执行漏洞

[复制链接]
发表于 2017-9-14 11:26:18 | 显示全部楼层 |阅读模式
一、什么是命令执行?
当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数,如PHP中的:systemexecshell_execpassthrupopenproc_popen等,
当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
二、漏洞危害
继承WEB服务程序的权限,执行系统命令,进行读写文件,反弹shell,控制整个网站甚至控制整个服务器,可以进一步的内网渗透
三、本地演示
示例一:
<?php
    $arg = $_GET['cmd'];
if ($arg) {
system("$arg");
    }
?>


首先代码第二行通过GET获取了一个cmd参数,传给arg变量,然后通过if语句判断条件是否成立,如果成立则执行下面的语句,最后直接传给system函数执行,导致了任意命令执行漏洞。


QQ图片20170914111838.png


示例二:
<?php
    $arg = $_GET['cmd'];
if ($arg) {
system("ping -c 3 $arg");
    }


该代码与上方相似,在代码第四行加上了ping命令,在执行命令的时候加上“;”符号(前面的执行完执行后面的命令),可以看到下方执行了ping命令和pwd命令。

QQ图片20170914112127.png

四、漏洞执行代码(以system函数为例)
linux
;前面的执行完执行后面的语句
| 管道符,只执行后面的语句
||当前面的执行出错时执行后面的语句
Windows:
不能用;可以用&&&|||代替
&如果前面的语句为假则直接执行后面的
&&如果前面的语句为假则直接出错,后面的也不执行
|直接执行后面的语句
||前面出错执行后面的
五、互联网实例演示
这里以互联网某防火墙实例演示,看下方代码

123.png
可以简单看到系统通过POST获取了参数IG_checkbox,传给了变量IG_str,然后带入了system函数该参数IG_checkbox可控且没有任何过滤,导致了命令执行漏洞。

代码解析:
首先看到代码第35行:
$IG_str=trim($_POST['IG_checkbox'.$IG_i]);
这里通过POST获取了一个IG_checkbox参数,然后通过“.”拼接了一个变量$IG_i++,而$IG_i是由上方的for循环递增而来,//34行:for($IG_i=1; $IG_i<=$IG_pagenum; $IG_i++)
//28行:有个变量 $IG_pagenum看了下这个变量
$IG_pagenum=15;,值是15,说明这是一个15的循环递增。

现在就可以构造语句进行命令执行了。
1234.png
最终构造的POST语句是:IG_operation=IG_delete&IG_checkbox1=1

IG_checkbox参数命令执行,115for循环递增,可以115任意值,这里我选择1
12345.png
可以看到执行了pwdcat /etc/passwdid、多个命令。

六、修复建议
1.尽量不要使用系统执行命令
2.参数值尽量使用引号包括起来。
3.在进入执行命令函数方法之前,变量一定要做好过滤,对敏感字符进行转义,
可以使用escapeshellcmd函数或escapeshellarg函数进行过滤

例如:
<?php
    $arg = $_GET['cmd'];
    $arg = escapeshellcmd($arg);  //在变量拼接到system函数前就处理
if ($arg) {
system("ping -c 3 $arg");
    }
?>


*本文为 kali linux中文网 原创文章,转载请注明出处
+1
122°C
沙发哦 ^ ^ 马上
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Kali linux ( 蜀ICP备10027298号-4 ) Topics |


免责声明:
Kali linux中文网所发布的一切教程文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。

GMT+8, 2017-9-25 12:36 , Processed in 0.166381 second(s), 33 queries , Gzip On.

Powered by Discuz!

© 2009-2016 CNNS

快速回复 返回顶部 返回列表