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 ...
随机推荐
- docker容器学习资料
现在说起docker容器,你应该不会太陌生了吧?如果你是真的不懂或者是太久没有用到已经忘记的差不多了,那么你需要这一波的干货了,这波的干货刚刚好可以满足你的需要! 话不多说,直接上干货
- react-native 签名
完成项目时,我们需要将项目打包成一个apk,方便测试以及发布版本. 这时,需要把js代码和图片资源都放进apk中, 并且发布版本还需要签名,今天把这一系列操作记录下来. 一.生成离线bundle包 离 ...
- 配置交换机之间直连链路聚合-LACP模式
组网图形 LACP模式链路聚合简介 以太网链路聚合是指将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的.链路聚合分为手工模式和LACP模式. LACP模式需要有链路聚合控制协 ...
- JAVA类库之——Character类(持续更新)
Character 类 目录 Character 类 判断该字符是不是一个数字的方法:isDigit(ch) 判断该字符是不是一个字母的方法:isLetter(ch) 判断该字符是不是一个数字或字母的 ...
- 跟我一起学Redis之Redis配置文件啃了一遍之后,从尴尬变得有底气了
前言 秋高气爽的一天,那时候年轻帅气的我正在参照着搜索引擎写代码,迷之微笑般的敲着键盘(又从搜索引擎上找到代码案例啦),突然领导在小隔间里传来了呼唤声,然后有了以下场景: 领导:小Z,你过来一下: 当 ...
- k8s中pod的yaml文件全面解读
apiVersion: v1 #必选,版本号,例如v1,版本号必须可以用 kubectl api-versions 查询到 . kind: Pod #必选,Pod metadata: #必选,元数据 ...
- http post 四种方式
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...
- Flink的sink实战之二:kafka
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 直播软件开发关于Android、iOS中的视频采集步骤
很多人对直播软件开发还是抱有想法的,但是在这个资本冷静的市场下,直播平台该怎么玩,在直播软件开发过程中哪些功能是必须具备的,这都是值得关注的话题.今天我们给大家分享一份详细的直播软件开发关于Andro ...
- 【SpringCloud】04.SpringCloud Eureka Server与Client的创建
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCloud将它集成在其子项 ...