小白都能看懂的命令执行漏洞

您所在的位置:网站首页 命令执行漏洞的危害包括 小白都能看懂的命令执行漏洞

小白都能看懂的命令执行漏洞

2024-07-05 23:50| 来源: 网络整理| 查看: 265

01

6

命令执行漏洞原理

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

02

6

命令执行漏洞利用条件

应用调用执行系统命令的函数将用户输入作为系统命令的参数拼接到命令执行中没有对用户输入进行过滤或过滤不严谨

03

6

漏洞分类

代码层过滤不严谨

在商业应用的一些核心代码封装在二进制文件中,在web应用中通过system函数来调用:

System(“/bin/program --arg $arg”);

系统自身漏洞产生命令注入 如:bash破壳漏洞(CVE-2014-6271) 在利用第三方组件存在代码执行漏洞

如:WordPress中用来出来图片的lmageMagick组件

Java中的命令执行漏洞(Struts2/ElasticsearchGroovy等)

ThinkPHP命令执行

04

6

漏洞的危害

继承web服务器程序的权限去执行系统命令或读写文件反弹shell控制整个网站和服务器权限进一步内网渗透

05

6

本期作者:xxxxx

用的靶场是 pikachu下载地址: https://github.com/zhuifengshaonianhanlu/pikachu

1.我们拿到靶场

2. 在输入框内我们输入正常的

这是输出正常的提示

3. 我们将恶意的系统里面带进去执行看下,这里以ipconfig为例

我们把系统命令带进去之后,然后他就执行了我们的恶意命令。它先是把前面的127.0.0.1执行完成之后,再来执行我们的ipconfig的。这是后端没有做严格的过滤,用户能用拼接的符号让系统执行其他的命令。

4. 让我们简单的来看下源码

if(isset($_POST['submit']) && $_POST['ipaddress']!=null){ $ip=$_POST['ipaddress'];// $check=explode('.', $ip);可以先拆分,然后校验数字以范围,第一位和第四位1-255,中间两位0-255 if(stristr(php_uname('s'), 'windows')){// var_dump(php_uname('s')); $result.=shell_exec('ping '.$ip);//直接将变量拼接进来,没做处理 }else { $result.=shell_exec('ping -c 4 '.$ip); }}

在这里的代码我们能看到,没用做任何的过滤

首选通过post去请求,获取相对应的ip地址,然后它会去判断操作系统的类型,如果是Windows的,他就会直接去ping一下IP地址,直接就把

shell_exec('ping '.$ip);

进行拼接起来执行。

06

6

防范命令执行漏洞

尽量少用命令执行的函数或直接禁用参数值尽量使用单引号包括在使用动态函数之前,确保使用的函数是指定的函数之一或字符进行转义对php语言来说,不能完全控制危险函数。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3