php定时执行代码漏洞_PHP-CGI远程任意代码执行漏洞(CVE-2012-1823)修复方案
发布日期:2022-02-18 13:20:07 浏览次数:6 分类:技术文章

本文共 954 字,大约阅读时间需要 3 分钟。

首先介绍一下这个漏洞,其实是在apache调用php解释器解释.php文件时,会将url参数传我给php解释器,如果在url后加传命令行开关(例如-s、-d 、-c或

-dauto_prepend_file%3d/etc/passwd+-n)等参数时,会导致源代码泄露和任意代码执行。

这个漏洞影响php-5.3.12以前的版本,mod方式、fpm方式不受影响。

既然出现了,那就补吧,以下都是自己亲身经验,本着开源精神,做个分享,欢迎留言!

三种方案:

1.升级php版本;(php-5.3.12以上版本);

2.在apache上做文章,开启url过滤,把危险的命令行参数给过滤掉,由于这种方法修补比较简单,采用比较多吧。

具体做法:

修改http.conf文件,找到增加以下三行

RewriteEngine on

RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]

RewriteRule ^(.*) $1? [L]

重启一下apache即可,但是要考虑到,相当于每次request就要进行一次url过滤,如果访问量大的话,可能会增加apache的负担。

3.打上php补丁,我个人也比较倾向这一点。

补丁下载地址:https://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/

补丁作用:其实就是增加了一个判断,如果是普通的cgi方式,命令行-s等参数就不再处理,遗憾的是验证的时候,补丁和我当时的php版本不一致,所以补丁一直打不上。

后来索性改源码吧,把补丁手动打上,涉及到sapi/cgi/cgi_main.c这个文件。在main函数中,搜索php_getopt用下面这行替换,一共有两处。

if (!cgi) while ((c = php_getopt(argc, argv, OPTIONS, &php_optarg, &php_optind, 0)) != -1)

替换后就是重新编译安装,经我验证完美解决。

最后上传cgi_main.c文件,有需要的可以直接下载覆盖。

下载地址:http://files.cnblogs.com/files/virgree/cgi_main.rar

转载地址:https://blog.csdn.net/weixin_28929351/article/details/111969477 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:大一高数下册笔记整理_华东师范大学数学系《数学分析》第4版下册复习笔记和课后习题答案考研真题详解复习答案备考考研资料...
下一篇:sqlserver获得年月_SQLServer提取日期中的年月日季

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年02月28日 02时22分31秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

python制作表格处理软件_震惊!当Python遇到Excel后,将开启你的认知虫洞 2019-04-21
手写一个promise用法_手写系列之实现一个Promise 2019-04-21
数字拆分问题算法回溯_学会了回溯算法,我终于会做数独了 2019-04-21
广州刷脸支付骗局_刷脸支付是骗局?那可能你还不了解刷脸支付 2019-04-21
卸载源码安装的mysql_源码安装与卸载mysql 2019-04-21
mysql查询当天记录_sql查询当天记录 2019-04-21
java 远程调试 端口_JAVA远程调试 2019-04-21
java 获取 html 图片路径_JAVA-替换html中图片的路径-从html代码中提取图片路径并下载(完整版)... 2019-04-21
java redis 面试题_Java面试题(Redis篇) 2019-04-21
java 正则表达式分类功能_JAVA正则表达式4种常用功能 2019-04-21
java3d立方体_3d立方体贴图 2019-04-21
java ajax教程_(转)JAVA AJAX教程第三章—AJAX详细讲解 2019-04-21
java operators_A guide to Java Operators 2019-04-21
java socket调试_JAVA实现SOCKET多客户端通信的案例 2019-04-21
java 使用或覆盖了已过时的api_JAVA使用或覆盖了已过时的 API 2019-04-21
java 图片旋转保存_Java 对图片90度旋转 2019-04-21
用java实现文学研究助手_数据结构文学研究助手 C语言代码实现(带源码+解析)... 2019-04-21
java gc的几种方式_GC 的三种基本实现方式 2019-04-21
wget linux java 32_通过wget在Linux上下载Java JDK会显示在许可证页面上 2019-04-21
babylonjs 设置面板位置_babylonjs 空间坐标转为屏幕坐标 2019-04-21