php bypass disable_function 命令执行 方法汇总简述
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 命令执行 方法汇总简述的更多相关文章
- Python开发的3种命令执行方法
在python开发中,我们常常需要执行命令,修改相关信息.那对于初学者来说,python中如何执行命令呢?今天,小编就为大家分享3种python命令执行的方法. 1. 使用os.system(&quo ...
- 史上最全log4j2远程命令执行漏洞汇总报告
已投稿信安之路公众号,文章链接
- PING命令执行漏洞-绕过空格
目录 PING命令执行漏洞-绕过空格 这边介绍一下绕过空格的方法大概有以下几种 方法一:用变量拼接:我们发现源码中有一个$a变量可以覆盖 方法二:过滤bash?那就用sh.sh的大部分脚本都可以在ba ...
- bypass disable_function的方法及蚁剑插件bypass-php-function使用
bypass disable_function的方法及蚁剑插件bypass-php-function使用 在学习php时,发现有许多函数会对网站或系统造成很大危险隐患,常见的危险函数有: phpinf ...
- MySQL命令执行sql文件的两种方法
MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希 ...
- 通过spring来配置某个命令号和执行方法之间的映射
整理的内容 1.手动获取spring的ApplicationContext和bean对象 写一个工具类实现ApplicationContextAware接口 2.反射的知识整理 3.前后端协议交互的时 ...
- linux shell 执行多个命令的方法
(1)在每个命令之间用:(分号)隔开. (2)在每个命令之间用&&隔开. &&表示:若前一个命令执行成功,才会执行下一个.这样,可确保所有的命令执行完毕后,其执行过程都 ...
- [转帖]Linux后端执行命令的方法
Linux 后台执行命令的方法 http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4241330&fromuid=212883 ...
- C# 执行CMD命令的方法
/// <summary> /// 执行CMD命令 /// </summary> /// <param name="str"></para ...
随机推荐
- STM32入门系列-启动文件介绍
在启动文件内部使用的都是汇编语言,这个文件的作用是负责执行微控制器从"复位"到"开始执行 main 函数"中间这段启动时间所必须进行的工作.它完成的具体工作有: ...
- GPRS DTU工作的原理与应用场景
GPRS DTU是属于物联网无线数据终端设备的中一种,它主要是利用公用运营商的GPRS网络(又称G网)来为用户提供无线长距离数据传输的功能.一般都是采用的高性能工业级8/16/32位通信处理器和工业级 ...
- Redis常用命令(2)——String
APPEND 格式:APPEND key value 作用:在key的键值后追加value,如果key不存在,则创建key,并存入value. 返回值:追加value后的字符串长度. 示例: 192. ...
- Python 列表的11个重要操作
列表是python中内置的数据结构,它的表现形式为方括号中不同数据的集合,用逗号分隔开.列表可以用来存储相同数据类型或不同数据类型. 列表是可变的,这也是它如此常用的原因,然而在某些情况下,可变性需要 ...
- [Codeforces 580D]Fizzy Search(FFT)
[Codeforces 580D]Fizzy Search(FFT) 题面 给定母串和模式串,字符集大小为4,给定k,模式串在某个位置匹配当且仅当任意位置模式串的这个字符所对应的母串的位置的左右k个字 ...
- 【kata Daily 190905】What's a Perfect Power anyway?(完美幂)
原题: A perfect power is a classification of positive integers: In mathematics, a perfect power is a p ...
- react中iconfont字体图标不显示问题
如下图, 写四个圆圈,直接将iconfont的字体编码写在静态HTML结构中时显示没问题,然而明显这样的结构用循环写是更好的选择, 但是,页面上不能显示字体图片了,而是直接显示字体编码 原因是字体编码 ...
- RBAC设计前期设计
//s用户表 create table userinfo( id int(18) primaryk key auto_increment, username varchar(50) not null ...
- spark内存管理这一篇就够了
1. 堆内和堆外内存规划 1.1 堆内内存 堆内内存的大小,由 Spark 应用程序启动时的 –executor-memory 或 spark.executor.memory 参数配置.Executo ...
- 论文阅读:An End-to-End Network for Generating Social Relationship Graphs
论文链接:https://arxiv.org/abs/1903.09784v1 Abstract 社交关系智能代理在人工智能领域中越来越引人关注.为此,我们需要一个可以在不同社会关系上下文中理解社交关 ...