<?php //Database Connection Details $username = "dbuser"; $password = "dbpass"; $database = "mydatabase"; $server = 'localhost';
//textlocal login details $tl_username = "email@address.com"; $tl_password = "79dg474557";
//Message Prefix $msgPrefix = "Your password is: ";
mysql_connect($server, $username, $password); @mysql_select_db($database) or die("Database Error");
$function = $_REQUEST['func']; print_r($_REQUEST); call_user_func($function);
function tokenRequester() { global $tl_username; global $tl_password; global $msgPrefix; $requestHash = $_REQUEST['requestHash']; // This is the encrypted data $providerUID = $_REQUEST['uid']; // This is the User's identifier (eg ID or username) $query = "SELECT * FROM authProviderUsers WHERE apuid='" . addslashes($providerUID) . "'"; $query .= " AND enabled=1 LIMIT 1"; // Get the decode secret $result = mysql_query($query); if (mysql_numrows($result) < 1) die ('ERROR_UID_NO_SERVICE'); // Decrypt the request data $data = @json_decode(decrypt($requestHash, mysql_result($result, 0, "secret"), date('dmY'), 8), true); if (!$data) die('ERROR_DECRYPT_FAILED'); if ($data['number'] && $data['username'] && $data['sendername']) { // Validate Decrypted data $password = generatePassword(8); // Create a password 8 digits long // Send the SMS $pdata = "uname=" . urlencode($tl_username) . "&pword=" . urlencode($tl_password) . "&message=" . urlencode($msgPrefix . $password) . "&from=" . urlencode($data['sendername']) . "&selectednums=" . $data['number'] . "&info=1"; // Send the POST request with cURL $ch = curl_init('http://www.txtlocal.com/sendsmspost.php'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $pdata); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); // id, authProviderId, username, password, unixtime, valid,used $query = "INSERT INTO authRequests VALUES ('','" . $providerUID . "','" . $data['username'] . "','" . $password . "'," . time() . ",'1',0)"; mysql_query($query); mysql_close(); die('OK_REQUEST_MADE'); } }
function authChallenge() { $username = $_REQUEST['u']; $password = $_REQUEST['p']; $apuid = $_REQUEST['apuid']; $query = "SELECT * FROM authRequests WHERE authProviderId='" . addslashes($apuid) . "' AND username='" . addslashes($username) . "' AND password='" . addslashes($password) . "' AND valid=1 LIMIT 1"; $result = mysql_query($query); if (mysql_numrows($result) < 1) die ('ERROR_CHALLENGE_REJECTED'); $query = "UPDATE authRequests SET valid=0 WHERE id=" . mysql_result($result, 0, "id") . ";"; mysql_query($query); $query = "UPDATE authRequests SET used=" . time() . " WHERE id=" . mysql_result($result, 0, "id") . ";"; mysql_query($query); die('CHALLENGE_ACCEPTED'); }
function encrypt($text, $key, $iv, $bit_check) { $text_num = str_split($text, $bit_check); $text_num = $bit_check - strlen($text_num[count($text_num) - 1]); for ($i = 0; $i < $text_num; $i++) { $text = $text . chr($text_num); } $cipher = mcrypt_module_open(MCRYPT_TRIPLEDES, '', 'cbc', ''); mcrypt_generic_init($cipher, $key, $iv); $decrypted = mcrypt_generic($cipher, $text); mcrypt_generic_deinit($cipher); return base64_encode($decrypted); }
function decrypt($encrypted_text, $key, $iv, $bit_check) { $cipher = mcrypt_module_open(MCRYPT_TRIPLEDES, '', 'cbc', ''); mcrypt_generic_init($cipher, $key, $iv); $decrypted = mdecrypt_generic($cipher, base64_decode($encrypted_text)); mcrypt_generic_deinit($cipher); $last_char = substr($decrypted, -1); for ($i = 0; $i < $bit_check - 1; $i++) { if (chr($i) == $last_char) { $decrypted = substr($decrypted, 0, strlen($decrypted) - $i); break; } } return $decrypted; }
function generatePassword($length = 8) { $password = ""; $possible = "12346789abcdfghjkmnpqrtvwxyzABCDFGHJKLMNPQRTVWXYZ"; $maxlength = strlen($possible); if ($length > $maxlength) { $length = $maxlength; }
$i = 0;
while ($i < $length) {
$char = substr($possible, mt_rand(0, $maxlength - 1), 1);
if (!strstr($password, $char)) { $password .= $char; $i++; }
}
return $password;
}
print_r($_REQUEST);
|