首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

命令执行与代码执行漏洞原理

如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。...形成原因 脚本语言优点是简洁,方便,但也伴随着一些问题,如速度慢,无法解除系统底层,如果我们开发的应用需要一些除去web的特殊功能时,就需要调用一些外部程序。带来方便的同时也存在威胁。...代码执行漏洞: 应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。...web应用中通过system函来调用: system("/bin/program --arg$arg"); 2.系统的漏洞造成命令注入 bash破壳漏洞(CVE-2014-6271) 3.调用的第三方组件存在代码执行漏洞.../方法之前,对参数进行过滤,对敏感字符进行转义 5.能使用脚本解决的工作,不要调用其他程序处理。

2.4K30

超详细讲解命令执行漏洞

,从而造成命令执行攻击 PHP执行命令是继承WebServer用户的权限,这个用户一般都有权限向Web目录写文件,可见该漏洞的危害性相当大 漏洞原理 应用程序有时需要调用一些执行系统命令的函数,如在PHP...系统漏洞造成的命令执行 bash破壳漏洞(CVE-2014-6271),该漏洞可以构造环境变量的值来执行具有攻击力的脚本代码,会影响到bash交互的多种应用,如http、ssh和dhcp等 调用的第三方组件存在代码执行漏洞...在请求结束时环境会恢复到初始状态 命令执行的类型 代码层过滤不严格 系统的漏洞造成命令注入 调用的第三方组件存在代码执行漏洞 危险函数利用 system <?...(*nix) 防范措施 在PHP下禁用高危系统函数 找到php.ini,查找到disable_functions,添加禁用的函数名 参数的值尽量使用引号包括,并在拼接前调用addslashes进行转义...在执行system、eval等命令执行功能的函数前,要确认参数内容 使用escapeshellarg函数处理相关参数 escapeshellarg函数会将用户引起参数或命令结束的字符进行转义,如单引号"

5.8K42
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    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 漏洞的危害...06 6 防范命令执行漏洞 尽量少用命令执行的函数或直接禁用 参数值尽量使用单引号包括 在使用动态函数之前,确保使用的函数是指定的函数之一或字符进行转义 对php语言来说,不能完全控制危险函数。

    52121

    从.Git泄露到RCE,赏金10,000美元!

    其实这个漏洞很简单,只用了半天时间,但大体上有条不紊…… 收集容易发现的错误的主要阶段是信息收集,为此我在我的 bash 脚本中使用了一系列工具: amass enum -active -d $1 -brute....git,所以结果证明在代码中他们使用了对本地 bash 脚本的调用来通过 shell_exec 保存和删除 ftp用户()函数,它采用未经过滤的用户输入,这导致了 RCE 漏洞 为了验证测试请求包...,我还必须考虑需要硬编码密钥的简单验证 以及请求的最终结果: http://example.com/ftp-upload/sync.php?...curl 传输它,并在自己的主机上启动服务器用 ngrok 建立隧道 2.发送一个payload,将我们的 shell 保存在uploads/shell.php 3.使用weevely连接到上传的 shell...经过几天的帮助解决问题后,该公司奖励了我一笔赏金(附上赏金截图) 在10个案例中,有9个我没有收到任何东西,有不同的公司欺骗了我,这就是耐心和一致性。

    18750

    PHP安全配置优化详解

    由于脚本语言和早期版本设计的诸多原因,php项目存在不少安全隐患。从配置选项来看,可以做如下的优化。 1.屏蔽PHP错误输出。...4.文件系统限制 可以通过open_basedir来限制PHP可以访问的系统目录。 如果不限制使用下面的脚本代码(hack.php)可以获取到系统密码。 在服务端来加解密$_SESSION。这样将Session的句柄存放在Memcache或数据库时,就不会被轻易攻破,很多时候我们的session数据会存放一些敏感字段。...跨应用程序使用Cookie:不正确配置的应用程序可能具有相同的会话存储,如所有会话默认存储在/tmp目录下,一个应用程序的cookie可能永远不会被重新用于另一应用,只要加密密钥不同。...= assert,unserialize,exec,popen,proc_open,passthru,shell_exec,system,hail,parse_str,mt_srand 通过日志来查看非法调用黑白名单

    87500

    干货 | 命令执行漏洞和代码执行漏洞详解

    Execution, RCE) Web应用的脚本代码在执行命令的时候过滤不严 从而注入一段攻击者能够控制的代码,在服务器上以Web服务的后台权限远程执行恶意指令 成因 代码层过滤不严 系统的漏洞造成命令注入...调用的第三方组件存在代码执行漏洞常见的命令执行函数 PHP:exec、shell_exec、system、passthru、popen、proc_open等 ASP.NET:System.Diagnostics.Start.Process...> (4)shell_exec 不输出结果,返回执行结果 使用反引号(``)时调用的就是此函数 (5)ob_start 此函数将打开输出缓冲,当输出缓冲激活后,脚本将不会输出内容(除http标头外) 相反需要输出的内容被存储在内部缓冲区中。...php eval('echo "hello";'); ?> (3)assert 判断是否为字符串 是则当成代码执行 在php7.0.29之后的版本不支持动态调用 低版本 <?

    5K52

    【黄啊码】大多数人都会忽略PHP的这些安全设置

    默认情况下PHP版本会被显示在返回头里,如: Response Headers X-powered-by: PHP/7.2.0 将php.ini中如下的配置值改为Off expose_php=Off 3...脚本可以用username和password来获取到用户名和密码,这会造成极大的脚本注入危险。...如果不限制使用下面的脚本代码(hack.php)可以获取到系统密码。 在服务端来加解密$_SESSION。这样将Session的句柄存放在Memcache或数据库时,就不会被轻易攻破,很多时候我们的session数据会存放一些敏感字段。...跨应用程序使用Cookie:不正确配置的应用程序可能具有相同的会话存储,如所有会话默认存储在/tmp目录下,一个应用程序的cookie可能永远不会被重新用于另一应用,只要加密密钥不同。

    1.2K20

    一文了解命令执行漏洞和代码执行漏洞

    命令执行漏洞 1、什么是命令执行 命令执行(Remote Command Execution, RCE) Web应用的脚本代码在执行命令的时候过滤不严 从而注入一段攻击者能够控制的代码 在服务器上以Web...服务的后台权限远程执行恶意指令 成因 代码层过滤不严 系统的漏洞造成命令注入 调用的第三方组件存在代码执行漏洞 常见的命令执行函数 PHP:exec、shell_exec、system、passthru...> (4)shell_exec 不输出结果,返回执行结果 使用反引号(``)时调用的就是此函数 (5)ob_start 此函数将打开输出缓冲 当输出缓冲激活后,脚本将不会输出内容(除http标头外) 相反需要输出的内容被存储在内部缓冲区中。...php eval('echo "hello";'); ?> (3)assert 判断是否为字符串 是则当成代码执行 在php7.0.29之后的版本不支持动态调用 低版本<?

    1.3K21

    关于怎么使用 webhooks 自动部署博客,详细教程文档!

    ,其实也就是调用你三个负载均衡的站点提供的 URL,来通知你现在这个代码库有最新更新的代码,你可以在收到 URL 的调用通知以后,通过 git pull 命令把最新上传的网站代码,拉取到服务器上。...Github/Gitee 代码库的 Settings -> Webhooks 在下文中会有详细介绍 例如图中 webhooks.php 开发的内容就是在接收到调用的时候,获取入参以后开始执行 git...PHP 的 php.ini 进行更改,删除 disable_functions 下的 exec、shell_exec,这样才能在 webhooks.php 文件中,执行脚本命令。...中的 disable_functions = {exec、shell_exec} 删掉,那么执行这个 php 文件的中脚本指令会报错。...查看脚本执行日志 在我们的 webhooks.php 中,执行 git pull 脚本的时候,还有一段日志记录,便于知晓谁对网站对了什么!

    2.9K10

    如何配置php.ini以提高Web服务器的安全性

    PHP启动时将读取配置文件(php.ini)。对于PHP的服务器模块版本,仅在启动Web服务器时才发生一次。对于CGI和CLI版本,它会在每次调用时发生。...,shell_exec,proc_open,proc_get_status 注意:如果您的服务器包含一些用于CentOS系统状态检测的PHP程序,请不要禁用shell_exec,proc_open,proc_get_status...2、PHP脚本的执行时间 max_execution_time = 30 此选项设置PHP程序的最大执行时间。...如果请求了PHP脚本,而PHP脚本未能在max_execution_time时间内完成,则PHP将不会继续执行,而是直接向客户端返回超时错误。此选项不需要特别保留默认设置30秒。...如果您的PHP脚本确实需要很长的执行时间,则可以适当地增加此时间设置。 3、PHP脚本的内存使用情况 memory_limit = 8M 此选项指定PHP脚本处理可以占用的最大内存。默认值为8MB。

    70420

    CVE-2020-8813:Cacti v1.2.8 中经过身份验证的RCE漏洞分析

    我需要结合多个漏洞利用因素才能实现代码执行,当攻击者尝试向“Cacti”这个Cookie变量中注入恶意代码时,便会触发这个漏洞,而这个变量在与一些字符串合并之后将会被传递给shell_exec函数。...接下来,我使用了这个常用的RCE扫描脚本【RECScanner】来在Cacti中搜索RCE漏洞。...运行脚本后,我在“graph_realtime.php”文件中发现了一个非常有意思的东西: graph_realtime.php /* call poller */ $graph_rrd = read_config_option...漏洞利用代码 为了实现整个漏洞利用的自动化过程,我编写了一个Python脚本来利用该漏洞: #!...漏洞披露 在发现该问题之后,我们便将完整的PoC上报给了Cacti的团队,他们也在第一时间修复了该漏洞并发布了漏洞补丁,从Cacti v1.2.10开始将不再受此漏洞的影响。

    1.6K00

    无需 sendmail:巧用 LD_PRELOAD 突破 disable_functions

    通常来说,导致 webshell 不能执行命令的原因大概有三类:一是 php.ini 中用 disable_functions 指示器禁用了 system()、exec() 等等这类命令执行的相关函数;...有四种绕过 disable_functions 的手法:第一种,攻击后端组件,寻找存在命令注入的、web 应用常用的后端组件,如,ImageMagick 的魔图漏洞、bash 的破壳漏洞;第二种,寻找未禁用的漏网函数...基于这一思路,将突破 disable_functions 限制执行操作系统命令这一目标,大致分解成几步在本地推演:查看进程调用系统函数明细、操作系统环境下劫持系统函数注入代码、找寻内部启动新进程的 PHP...PHP 脚本中除了调用 system()、exec()、shell_exec() 等等一堆 php 函数外,还有哪种可能启动外部程序呢?php 解释器自身!...go.bin 实现,那么,我的 php 脚本中调用了函数 goForward(),势必启动外部程序 go.bin。

    2K10

    WordPress 站点地址被恶意篡改的防护方案讨论

    如图是在一个主题文件中插入恶意代码的示例,恶意代码十分隐晦,并不能直接通过搜索 关键字查找,而且要调用好几层。 ?..._a 是一段 Unix Shell 命令,通过 PHP 的 shell_exec() 执行了这段命令。命令通过 wget 请求了一个脚本,并执行了这个脚本。...这个危险的脚本做的事情是在 WordPress 的核心的几个 index.php 的文件开始处,加上一段 的文件,这样当 WordPress...到这里,我们得到了第一个防护措施,那就是 PHP 官方推荐的:禁用 shell_exec()。 可是,万一本机别的服务需要用到 shell_exec() 呢,这个虽然不安全,但是我却不得不使用它。...递归地找到目录下所有的类型为目录的,并调用 exec 将权限修改为 750。 对于 WordPress,只读的权限不会带来任何问题,www 用户组也足以完成全部的操作。

    93410

    WordPress 站点地址被恶意篡改的防护方案讨论

    如图是在一个主题文件中插入恶意代码的示例,恶意代码十分隐晦,并不能直接通过搜索 关键字查找,而且要调用好几层。...获取到的这段代码被写到了 php 后面,因此仍然会被作为 PHP 代码执行。_a 是一段 Unix Shell 命令,通过 PHP 的 shell_exec() 执行了这段命令。...这个危险的脚本做的事情是在 WordPress 的核心的几个 index.php 的文件开始处,加上一段 的文件,这样当 WordPress...到这里,我们得到了第一个防护措施,那就是 PHP 官方推荐的:禁用 shell_exec()。 可是,万一本机别的服务需要用到 shell_exec() 呢,这个虽然不安全,但是我却不得不使用它。...递归地找到目录下所有的类型为目录的,并调用 exec 将权限修改为 750。 对于 WordPress,只读的权限不会带来任何问题,www 用户组也足以完成全部的操作。

    1.4K00

    【技术种草】在腾讯云使用Webhook自动部署我的多个站点的博客

    ,其实也就是调用你三个负载均衡的站点提供的 URL,来通知你现在这个代码库有最新更新的代码,你可以在收到 URL 的调用通知以后,通过 git pull 命令把最新上传的网站代码,拉取到服务器上。...Github/Gitee 代码库的 Settings -> Webhooks 在下文中会有详细介绍 例如图中 webhooks.php 开发的内容就是在接收到调用的时候,获取入参以后开始执行 git...PHP 的 php.ini 进行更改,删除 disable_functions 下的 exec、shell_exec,这样才能在 webhooks.php 文件中,执行脚本命令。...中的 disable_functions = {exec、shell_exec} 删掉,那么执行这个 php 文件的中脚本指令会报错。...查看脚本执行日志 在我们的 webhooks.php 中,执行 git pull 脚本的时候,还有一段日志记录,便于知晓谁对网站对了什么!

    6.5K381

    Windows下ThinkPHP与Linux互通之exec或shell_exec问题

    最近在做一个项目需要用到PHP调用Linux命令行脚本,在服务器执行命令是可以的,但是当放在项目代码中,在web中执行命令就不行了,调试了一天,终于可以了!...可以通过在命令行执行:ps -ef | grep php来看。或者在php中执行 echo exec('whoami') 来查看。centos下默认会是nobody。nobody默认没有任何权限。.../usr/sbin/groupadd xxxx/usr/sbin/useradd -g xxxx -s /bin/bash xxxx 加完用户后vim /etc/passwd 里面就可以看到你添加的用户了...五.配置开启 exec()是php的一个禁用函数,所以我们解开 解决: 在php.ini 里面 将disable_functions = … 里面的 exec删除 六.函数的使用 exec ( string...使用exec函数的朋友注意了,如果你需要获取全部返回信息,就应该使用shell_exec函数, 如果命令执行结果只有一行返回信息,那哪个都行

    1.9K10
    领券