phpStudy_2016-2018_RCE漏洞复现

文章目录

  • 前言
  • 一、phpStudy_2016-2018_RCE是什么
  • 二、漏洞存在的文件位置
  • 三、漏洞分析
  • 四、漏洞复现
  • 总结


前言

phpstudy漏洞在当时的影响还是蛮大的,所以决定对phpstudy存在的漏洞进行解析复现。


一、phpStudy_2016-2018_RCE是什么

Phpstudy软件是国内的一款免费的PHP调试环境的程序集成包,通过集成Apache、PHP、MySQL、phpMyAdmin等多款软件一次性安装,无需配置即可直接安装使用,一键搭建。
其中2016、2018版本的phpstudy存在被黑客恶意篡改后形成的RCE漏洞。该漏洞可以直接远程执行系统命令。

二、漏洞存在的文件位置

后门代码存在于\ext\php_xmlrpc.dll模块中,至少有2个版本:
phpStudy2016和phpStudy2018自带的php-5.2.17、php-5.4.45。
其中:
phpStudy2016查看:

\phpStudy\php\php-5.2.17\ext\php_xmlrpc.dll
\phpStudy\php\php-5.4.45\ext\php_xmlrpc.dll

phpStudy2018查看:

\PHPTutorial\PHP\PHP-5.2.17\ext\php_xmlrpc.dll
\PHPTutorial\PHP\PHP-5.4.45\ext\php_xmlrpc.dll

三、漏洞分析

通过 IDA分析xmlrpc.dll发现,被植入危险函数eval()。
phpStudy_2016-2018_RCE漏洞复现_第1张图片
xmlrpc.dll中的初始化函数request_startup_func被篡改:当发起HTTP请求的数据包中包含“Accept-Encoding”字段时,就会进入黑客自定义的攻击流程。
phpStudy_2016-2018_RCE漏洞复现_第2张图片
当Accept-Encoding字段的信息为“compress,gzip”时,触发系统收集功能。
phpStudy_2016-2018_RCE漏洞复现_第3张图片
当Accept-Encoding字段的信息为“gzip,deflate”时,再进一步判断Accept-Charset字段,只有当Accept-Charset字段为一些特定字符时才会触发漏洞。

四、漏洞复现

环境搭建

虚拟机中安装phpstudy2016或者phpstudy2018,运行5.2.17或5.4.45版本。
phpStudy_2016-2018_RCE漏洞复现_第4张图片
能正常访问web站点。
phpStudy_2016-2018_RCE漏洞复现_第5张图片

漏洞触发

开启BP代理,拦截数据流量。
phpStudy_2016-2018_RCE漏洞复现_第6张图片
重构HTTP请求包。
请求中添加一项参数 Accept-Charset:系统命令。
phpStudy_2016-2018_RCE漏洞复现_第7张图片
将系统命令代码进行Base64转码,如system(‘whoami’);
phpStudy_2016-2018_RCE漏洞复现_第8张图片
重放HTTP请求包。
phpStudy_2016-2018_RCE漏洞复现_第9张图片
写入一句话木马。
phpStudy_2016-2018_RCE漏洞复现_第10张图片
phpStudy_2016-2018_RCE漏洞复现_第11张图片
菜刀链接。
phpStudy_2016-2018_RCE漏洞复现_第12张图片

总结

本文通过复现 phpstudy 的远程执行漏洞,在模拟漏洞攻击的过程中学习技术,锻炼思维。该漏洞可以直接执行系统命令,属于高危漏洞。
下一篇:
phpstudy漏洞检测利用脚本(EXP)编写

你可能感兴趣的:(php,数据库,系统安全)