1.使用未被禁用的其他函数

exec,shell_exec,system,popen,proc_open,passthru (python_eval?perl_system ? weevely3 wiki中存在这两个函数)

要求:看看哪个函数没在禁用列表里的

2.pcntl_exec

使用pcntl_exec函数可命令执行

要求:linux系统特有模块,需编译选项中存在--enable-pcntl

3.windows com组件绕过

通过生成的com对象调用wscript.shell或shell.application以执行命令

要求:windows系统,com_dotnet模块开启

4.使用ld_preload劫持环境变量

利用ld_preload劫持动态链接库的优先加载路径,通过会调用系统程序的php函数,来触发对我们伪造的标准库函数的调用,从而执行恶意代码

要求:linux系统,putenv函数未被禁用,可以上传so文件

5.php7.4+ ffi特性

php7.4加入的新特性,利用ffi可以执行c代码

要求:php版本7.4+,ffi模块开启,ffi.enable 状态为enable(这个有三个状态,一定要是enable才可以)

6.构造数据包直接与php-fpm模块通信

跳过中间件分配请求的过程,直接构造特定的数据包与php-fpm模块通信

要求:目标使用了php-fpm模块,php-fpm的进程端口暴露在外网(一般为9000端口),知道一个php脚本的绝对路径和名称

7.通过.htaccess使其他后缀文件被mod_cig模块处理

主要思路和6思路差不多

要求:使用mod_cig模块,可以上传文件,.htaccess模块被开启(蚁剑有个bypass disable function的模块存在此方法)

8.imap_open()

cve-2018-19518,通过构造exp,在调用rsh的时候插入可执行命令的-oProxyCommand参数执行系统命令

要求:开启了imap扩展,enable_insecure_rsh选项打开,imap_open未被禁用,漏洞未被修复

9.破壳漏洞

cve-2014-6271

要求:php<5.6.2,linux系统

10.imagemagick组件命令执行

利用的是imagemagic本身的命令执行漏洞,有2个,利用的exp也不相同

要求:开启了imagemagic模块且漏洞未被修复

11.其他

还有一些其他的方法,要结合具体情况使用,例如现权限是否可以读取宝塔的session.db,redis的利用等等,这个需要平时对漏洞的积累。

想要深入了解上列具体原理的推荐看这位大佬的文章

https://github.com/mi1k7ea/Mi1k7ea.github.io/blob/master/index.html

以上内容如有不妥之处,敬请斧正

php bypass disable_function 命令执行 方法汇总简述的更多相关文章

  1. Python开发的3种命令执行方法

    在python开发中,我们常常需要执行命令,修改相关信息.那对于初学者来说,python中如何执行命令呢?今天,小编就为大家分享3种python命令执行的方法. 1. 使用os.system(&quo ...

  2. 史上最全log4j2远程命令执行漏洞汇总报告

    已投稿信安之路公众号,文章链接

  3. PING命令执行漏洞-绕过空格

    目录 PING命令执行漏洞-绕过空格 这边介绍一下绕过空格的方法大概有以下几种 方法一:用变量拼接:我们发现源码中有一个$a变量可以覆盖 方法二:过滤bash?那就用sh.sh的大部分脚本都可以在ba ...

  4. bypass disable_function的方法及蚁剑插件bypass-php-function使用

    bypass disable_function的方法及蚁剑插件bypass-php-function使用 在学习php时,发现有许多函数会对网站或系统造成很大危险隐患,常见的危险函数有: phpinf ...

  5. MySQL命令执行sql文件的两种方法

    MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希 ...

  6. 通过spring来配置某个命令号和执行方法之间的映射

    整理的内容 1.手动获取spring的ApplicationContext和bean对象 写一个工具类实现ApplicationContextAware接口 2.反射的知识整理 3.前后端协议交互的时 ...

  7. linux shell 执行多个命令的方法

    (1)在每个命令之间用:(分号)隔开. (2)在每个命令之间用&&隔开. &&表示:若前一个命令执行成功,才会执行下一个.这样,可确保所有的命令执行完毕后,其执行过程都 ...

  8. [转帖]Linux后端执行命令的方法

    Linux 后台执行命令的方法 http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4241330&fromuid=212883 ...

  9. C# 执行CMD命令的方法

    /// <summary> /// 执行CMD命令 /// </summary> /// <param name="str"></para ...

随机推荐

  1. LuoguP3602 Koishi Loves Segments

    题面 n个区间和数轴上的m个关键点 (0<=n,m<=4*1e5,数轴范围 \(-1^7\) ~ \(1^7\))每个关键点有被区间区间覆盖的次数上限,求最多能放多少个区间到数轴上 传送门 ...

  2. 购买GPRS DTU时应该怎么选择

    GPRS DTU如今是一种被广泛应用的物联网无线数据终端,主要是利用GPRS网络为用户提供无线长距离数据透传功能,在电力.环保.物流.气象等行业领域有着广泛应用.目前市场上的GPRS DTU产品眼花缭 ...

  3. 详解Git

    版本控制 基本概念 版本控制是一个非常简单的概念,我举个例子简单说明一下你就能大概明白它是一个什么东西,当你不会版本控制的时候: 你的BOSS决定做一款灰常牛逼的软件,找你进行开发 当你做好之后,老板 ...

  4. Hill密码解密过程(Java)

    Hill密码是一种传统的密码体系.加密原理:选择一个二阶可逆整数矩阵A称为密码的加密矩阵,也就是这个加密体系的密钥.加密过程: 明文字母依次逐对分组,例如加密矩阵为二阶矩阵,明文就两个字母一组,如果最 ...

  5. Android基础——项目的文件结构(二)

    Android基础--项目的文件结构(二) AndroidManifest.xml文件分析 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目 ...

  6. 如何用css设置鼠标属性的小手

    在元素中添加onmouseover="this.style.cursor='hand'"或者 cursor:pointer;

  7. 洛谷日报 & 原来博客(转载)

    震惊,新的功能:可以按Ctrl + F 进行关键字查询. \(update\) on 10.26:把这两个月的日报也加入进去了,并且修复了几个错误. 本文会把小编用过的博客和比较好的博客放在这里. 可 ...

  8. JavaScript变量污染

    定义过多的全局变量,有可能造成全局变量冲突,这种现象称为变量污染. 全局变量在全局作用域内外都是可见的.若是已经声明了一个全局变量,再以相同的关键字和标识符重新声明全局变量,后者的赋值会替代前者的赋值 ...

  9. 深度学习中的Dropout

    dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃.注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络. ...

  10. nginx&http 第二章 ngx 事件event初始化 ngx_event_process_init

    |----------(ngx_worker_process_cycle->ngx_worker_process_init) |--------->for(;;) {ngx_process ...