| <?php |
| require_once '../../../resources/portabilityLayer.php'; |
| |
| function prettify($name) { |
| return str_replace(' ', '-', ucwords(str_replace('_', ' ', str_replace('http_', '', strtolower($name))))); |
| } |
| |
| $beaconFilename = sys_get_temp_dir() . "/beacon" . (isset($_REQUEST['name']) ? $_REQUEST['name'] : "") . ".txt"; |
| $beaconFile = fopen($beaconFilename . ".tmp", 'w'); |
| $httpHeaders = $_SERVER; |
| ksort($httpHeaders, SORT_STRING); |
| $contentType = ""; |
| foreach ($httpHeaders as $name => $value) { |
| if ($name === "CONTENT_TYPE" || $name === "HTTP_REFERER" || $name === "REQUEST_METHOD" || $name === "HTTP_COOKIE" || $name === "HTTP_ORIGIN") { |
| if ($name === "CONTENT_TYPE") { |
| $contentType = $value; |
| $value = preg_replace('/boundary=.*$/', '', $value); |
| } |
| $headerName = prettify($name); |
| fwrite($beaconFile, "$headerName: $value\n"); |
| } |
| } |
| $postdata = file_get_contents("php://input"); |
| if (strlen($postdata) == 0) |
| $postdata = http_build_query($_POST); |
| |
| fwrite($beaconFile, "Length: " . strlen($postdata) . "\n"); |
| if (strpos($contentType, "application/") !== false) { |
| $postdata = base64_encode($postdata); |
| } |
| |
| fwrite($beaconFile, "Body: $postdata\n"); |
| fclose($beaconFile); |
| rename($beaconFilename . ".tmp", $beaconFilename); |
| |
| if (!array_key_exists('dontclearcookies', $_GET)) { |
| foreach ($_COOKIE as $name => $value) |
| setcookie($name, "deleted", time() - 60, "/"); |
| } |
| ?> |