- Joined
- Jul 12, 2009
- Messages
- 337
- Reaction score
- 31
Тъй като дълго обмисля дали да го релийзна или не,и стигнах до извода че Zending is Ass,и това да криптира човек със 2 алгоритма и едно Encryption, е глуво.
Ето го и чистия код на index.php:
За да махнете валидация за времето просто сменяте
На някоя 2012,защото по натам може и да ни няма
+ файла Core.php не ви е нужен вече,той съдържаше RC4 алгоритъма
И още:
Моля уважавайте автора и неговата работа като не махате Credit's от скрипта.
Credit's:hateYou,RC4,Elven` | HF
Ето го и чистия код на index.php:
PHP:
<?php
session_start();
define("IN_SMSADMINS", 1);
$crypted_code=md5("50b9e23596aa9bcefc28695c72b7621d");
$script_expire_on = strtotime("01.03.2010");
$warning_period = strtotime("25.02.2010");
$warn_head = '
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>SMSAdmins by hateYou @ amxmodxbg.org</title>
<style type="text/css">
body {
background-color: #808080;
color: white;
}
a {
color:black;
font-weight:bold
}
</style>
</head>
<body>
<center> <br><br><br><br><br> <br><br><br><br><br>';
$warning_for_expire = '
Срокът за използване на SMSAdmins изтича в края на този месец.<br>
Ако искате да продължите да ползвате системата, моля изтеглете я на ново от <a href="http://amxmodxbg.org/forum/viewtopic.php?t=14906" title="AMX Mod X България: SMSAdmins от hateYou">http://amxmodxbg.org/forum/viewtopic.php?t=14906</a>.<br><br>
За въпроси и контакти: <i>hateyou @ amxmodxbg.org</i>';
$warn_footer = '
</center>
</body>
</html>';
echo"\n\n\n\n<!--
/*
****************************************************************
*
* SMSAdmins System v1.0
*
* Author: hateYou @ amxmodxbg.org
* More info at: http://amxmodxbg.org/forum/viewtopic.php?t=14906
*
****************************************************************
*/
-->\n\n\n\n";
if(time() < $script_expire_on && defined("IN_SMSADMINS") ) { // && md5(strtolower(IN_SMSADMINS)) == $crypted_code
define('SMSAdmins', 1);
include("include/config.php");
include("include/style.php");
function clean($str) { return htmlspecialchars(trim(stripslashes($str))); }
if(!clean($_GET['p']) || clean($_GET['p']) == 'logout') ob_start();
define(g_error, "Couldn't connect to database");
function dbc() {
global $g_dbhost, $g_dbuser, $g_dbpass, $g_dbname;
$result = @mysql_connect($g_dbhost, $g_dbuser, $g_dbpass);
if (!$result)
return false;
if (!@mysql_select_db($g_dbname))
return false;
return $result;
}
function isValid($type,$var) {
$valid = false;
switch ($type) {
case "num":
if (ereg("^[0-9]+$",$var)) {
$valid = true;
}
break;
case "captcha":
if (ereg("^([a-z0-9]{5})$",$var)) {
$valid = true;
}
break;
}
return $valid;
}
function is_included_in_smsadmins_system() {
if(defined('SMSAdmins')) {
return 1;
} else {
return 0;
}
}
function security_num($numofletters = 4, $encode = "0") {
$code="";
for($i=0;$i<$numofletters;$i++) $code.=strtolower(chr(rand(65,90)));
if($encode == "1") {
return md5($code);
} else {
return $code;
}
}
function is_user_logged_in() {
if (!clean($_SESSION['sa_data'])) {
return false;
} else {
return true;
}
}
function show_servers() {
global $g_ServerName;
echo"\n <select name=\"server_num\" style=\"width:310px; margin-left: 5px;\">\n";
echo " <option value=\"0\">Изберете сървър за управление</option>";
for( $i = 0; $i < count($g_ServerName); $i++) {
$ni=$i+1;
echo "\n <option value=\"$ni\">".$g_ServerName[$i+1]."</option>";
}
echo"\n </select>";
}
function add_new_sms_field($num) {
return " <tr>
<td>SMS Код #$num:</td> <td><input type=\"text\" name=\"smscode[]\"></td>
</tr>\n";
}
function show_sms_fields() {
global $g_sms_amount;
$how_much_sms = clean($g_sms_amount);
if($how_much_sms < 100) {
for( $i = 0; $i < $how_much_sms; $i++) {
echo add_new_sms_field($i+1);
}
} else {
echo add_new_sms_field(1);
}
}
function msg($type, $msg) {
switch ($type) {
case "error": echo "\n<b>ГРЕШКА:</b> $msg"; break;
case "notice": echo "\n<b>Съобщение:</b> $msg"; break;
}
}
function show_x3() {
global $g_x3, $g_x3_Description, $g_x3_Flags, $g_flags, $g_status, $g_server;
for ($i=0; $i <= count($g_x3)-1; $i++) {
$g_x3[$i] = clean($g_x3[$i]); $g_x3_Description[$i] = clean($g_x3_Description[$i]); $g_x3_Flags[$i] = clean($g_x3_Flags[$i]);
if(strstr($g_flags, $g_x3_Flags[$i]) || $g_status == "1" && $i==0) {
$disable = " disabled";
} else {
$disable = "";
}
if($i == 0) { $star = " <font style=\"color:red\">*</font>"; } else { $star = ""; }
$title = $g_x3[$i].$star;
$description = $g_x3_Description[$i];
$flag = $g_x3_Flags[$i];
show_all_x3($title, $description, $flag, $disable);
echo"\n";
}
}
function mobio_checkcode($g_servID, $code, $debug=0) {
$res_lines = file("http://www.mobio.bg/code/checkcode.php?servID=$g_servID&code=$code&csadmin=1");
$ret = 0;
if($res_lines) {
if(strstr("PAYBG=OK", $res_lines[0])) {
$ret = 1;
}else{
if($debug)
echo $line."\n";
}
}else{
if($debug)
echo "Unable to connect to mobio.bg server.\n";
$ret = 0;
}
return $ret;
}
function mobio_checkcode_f($g_servID, $code, $debug=0) {
$ret = 0;
$mobio_socket = fsockopen("www.mobio.bg", 80);
if(!$mobio_socket) {
if($debug)
echo "Unable to connect to mobio.bg server\n";
$ret = 0;
}else{
$request .= "GET http://www.mobio.bg/code/checkcode.php?servID=$g_servID&code=$code&csadmin=1 HTTP/1.0\r\n\r\n";
fwrite($mobio_socket, $request);
$result = fread($mobio_socket, 255);
if(strstr($result, "PAYBG=OK")) {
$ret = 1;
}else{
$ret = 0;
if($debug)
echo strstr($result, "PAYBG");
}
fclose($mobio_socket);
}
return $ret;
}
function valid_sms_codes() {
global $g_working_mode, $g_demo_codes, $g_wisdom_prefix, $g_servID;
switch ($g_working_mode) {
case "wisdom":
for( $i = 0; $i < count($_POST['smscode']); $i++){
if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
$smscode=clean($_POST['smscode'][$i]);
$tmp = file_get_contents('http://wisdom.bg/smscheckcode.php?prefix='.$g_wisdom_prefix.'&code='.$smscode.'&user_ip='.$_SERVER['REMOTE_ADDR']);
$tmp = unserialize($tmp);
if (preg_match('/^Invalid prefix/i', $tmp['error'])) {
echo "Не сте въвели валиден префикс !"; sf(); die;
}
if ($tmp['result'] == TRUE) {
file_get_contents('http://wisdom.bg/smscheckcode.php?prefix='.$g_wisdom_prefix.'&code='.$smscode.'&mark_as_used=1&user_ip='.$_SERVER['REMOTE_ADDR']);
$smscodes[]=$smscode;
if($i+1 == count($_POST['smscode'])) { return 1; }
} else {
echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
}
}
break;
case "mobio_fopen":
for( $i = 0; $i < count($_POST['smscode']); $i++){
if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
$smscode=clean($_POST['smscode'][$i]);
if(mobio_checkcode_f($g_servID, $smscode, 0) == 1) {
$smscodes[]=$smscode;
if($i+1 == count($_POST['smscode'])) { return 1; }
} else {
echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
}
}
break;
case "mobio_fsockopen":
for( $i = 0; $i < count($_POST['smscode']); $i++){
if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
$smscode=clean($_POST['smscode'][$i]);
if(mobio_checkcode($g_servID, $smscode, 1) == 1) {
$smscodes[]=$smscode;
if($i+1 == count($_POST['smscode'])) { return 1; }
} else {
echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
}
}
break;
case "demo":
for( $i = 0; $i < count($_POST['smscode']); $i++){
if($_POST['smscode'][$i] == NULL){ echo"Не сте написали всички sms кодове"; sf(); die; }
$smscode=clean($_POST['smscode'][$i]);
if($smscode == $g_demo_codes[$i]) {
$smscodes[]=$smscode;
if($i+1 == count($_POST['smscode'])) { return 1; }
} else {
echo"Въвели сте не валиден/ни SMS код/ове !"; sf(); die;
}
}
break;
}
}
function refresh($sec = 1, $url = "index.php") {
echo '<meta http-equiv="refresh" content="'.$sec.';url='.$url.'">';
}
function convert_date($expire_date) {
$expire_date = clean($expire_date);
$bg=array("ден","дни","седмица","седмици","месец","месеца","година","години");
$en=array("day","days","week","weeks","month","months","year","years");
$expire_date=str_replace($bg,$en, $expire_date);
$expire_date=strtotime("+ $expire_date");
return $expire_date;
}
function calculate_admin_expire($g_user_expire_date) {
$now = $g_user_expire_date;
$then = strtotime ("now");
$difference = $now - $then ;
$num = $difference/86400;
$days = intval($num);
$num2 = ($num - $days)*24;
$hours = intval($num2);
$num3 = ($num2 - $hours)*60;
$mins = intval($num3);
$num4 = ($num3 - $mins)*60;
$secs = intval($num4);
return "$days дни, $hours часа, $mins минути и $secs секунди";
}
function show_date($date) {
return date("d.m.Y - H:i:s", $date);
}
function admin_list_mark_functions() {
global $g_user_level, $g_tbname;
if($g_user_level == "1") {
if(isset($_POST['deactivate'])) {
for( $i = 0; $i < count($_POST['mark']); $i++){
if($_POST['mark'][$i] != NULL){
$admin_id=$_POST['mark'][$i];
$delete=mysql_query("UPDATE `$g_tbname` set `expire_date`='0', `status` = '0' WHERE `id`='$admin_id'") or die ("Couldnt't connect to database");
}
}
refresh(1, "?p=adminlist");
} elseif(isset($_POST['delete'])) {
for( $i = 0; $i < count($_POST['mark']); $i++){
if($_POST['mark'][$i] != NULL){
$admin_id=$_POST['mark'][$i];
$delete=mysql_query("DELETE FROM `$g_tbname` WHERE `id`='$admin_id'") or die ("Couldnt't connect to database");
}
}
refresh(1, "?p=adminlist");
}
}
}
function is_this_first_registration() {
global $g_tbname;
dbc();
$checking = mysql_query("SELECT `id` FROM `$g_tbname`") or die(g_error);
if(mysql_num_rows($checking)>0) {
return 0;
} else {
return 1;
}
}
if (!clean($_SESSION['sa_data'])) {
$_SESSION['sa_data'] = 0;
} else {
$g_userid = clean($_SESSION['sa_data'][0]);
$g_nickname = clean($_SESSION['sa_data'][1]);
$g_flags = clean($_SESSION['sa_data'][2]);
$g_server = clean($_SESSION['sa_data'][3]);
$g_user_expire_date = clean($_SESSION['sa_data'][4]);
$g_status = clean($_SESSION['sa_data'][5]);
$g_user_level = clean($_SESSION['sa_data'][6]);
}
sh();
if($g_system_is_on == 1) {
$page = clean($_GET['p']);
switch($page) {
case "config":
echo ($g_user_level == 1 && $smsadmins_view_config_remotely == "1") ? highlight_file("include/config.php") : msg("error","Не можете да видите конфигурацията поради настройките на системата !");
break;
case "adminlist":
include("include/pages/adminlist.php");
break;
case "logout":
session_destroy();
msg("notice", "Вие успешно излязохте от вашия акаунт !");
refresh();
break;
default:
if(is_user_logged_in()) {
dbc();
if($g_user_level == 0) {
if(isValid("num", $g_userid)) {
$fetch_data = mysql_query("SELECT * FROM `$g_tbname` WHERE `id` = '$g_userid'") or die(g_error);
if(mysql_num_rows($fetch_data) > 0) {
/*
while ($row = mysql_fetch_array($fetch_data)) {
extract($row);
echo "Zdravei, ".$player;
}
*/
if(isset($_POST['update_rights']))
{
$new_flag = $_POST['flag'];
if($new_flag != null){
//if ($new_flag != "@" && $g_status == "0") {
if ($g_compulsory_flag == 1 && !strstr($new_flag, "@") && $g_status == "0") {
msg("error", "Трябва първо да изберете \"".$g_x3[0]."\" за да можете да ъпдейтнете вашите права по-нататък !");
} else {
if (valid_sms_codes() == 1) {
$convert_expire = convert_date($g_expire_date);
if($g_status == "0") {
$sql_convert_expire = ", `expire_date` = '$convert_expire'";
} else {
$sql_convert_expire = "";
}
//if($new_flag == "@") {
if(strstr($new_flag, "@")) {
//$new_flag = "";
$new_flag = explode("@", $new_flag);
$new_flag = $new_flag[1];
}
@include("include/pages/afterreg.php");
$deadline = ($g_status == "0") ? " $afterreg_text2" : "";
$update_rights = mysql_query("UPDATE `$g_tbname` SET `flags` = '$g_flags$new_flag', `status` = '1' $sql_convert_expire WHERE `id` = '$g_userid'") or die(g_error);
$_SESSION['sa_data'][5] = "1";
$_SESSION['sa_data'][2] = "$g_flags$new_flag";
if($update_rights) {
echo $afterreg_text.$deadline;
echo "<br><hr>
<i>Тази система е разработена и поддържана от hateYou @ amxmodxbg.org</i>";
}
} else {
msg("error", "Въвели сте невалидни SMS кодове !<br>Системата е писана от hateYou @ amxmodxbg.org");
}
}
} else {
msg("error", "Не сте избрали никаква опция !");
}
} else {
include("include/pages/index.php");
}
} else {
msg("error", "Въвели сте грешни данни за login !");
refresh();
}
} else {
msg("error", "Не валидна сесия ! <br>Моля излезте от акаунта и влезте отново !");
}
} else {
echo "Здравейте <b>$g_nickname</b> ! <br>Това е вашият административен потребител. <br>С него единствено можете да управлявате вашите потребители !";
}
} else {
if(isset($_POST['login'])) {
$username = clean($_POST['username']);
$password = clean($_POST['password']);
$server = $_POST['server_num'];
$generated_captcha = $_POST['captcha'];
$security_code = clean($_POST['security_code']);
if ($security_code == $generated_captcha) {
dbc();
$check = mysql_query("SELECT `id`, `player`, `flags`, `server`, `expire_date`, `status`, `user_level` FROM `$g_tbname` WHERE `player` = '$username' AND `password` = '$password' AND `server` = '$server'") or die(g_error);
if(mysql_num_rows($check) > 0) {
$row = mysql_fetch_row($check);
if($row[4] < time()) { $new_sql_query = ", `status` = '0'"; } else { $new_sql_query = ""; }
$_SESSION['sa_data'] = $row;
if($row[4] < time()) { $_SESSION['sa_data'][5] = "0"; }
}
msg("notice", ".. пренасочване ..");
refresh();
} else {
msg("error", "Въведения код за визуално потвърждение грешен !");
refresh(2);
}
} else if(isset($_POST['register'])) {
$username = clean($_POST['username']);
$password = clean($_POST['password']);
$server = $_POST['server_num'];
$generated_captcha = $_POST['captcha'];
$security_code = clean($_POST['security_code']);
$time = time();
if(is_this_first_registration()) {
$_server_if_check_value = "1";
$_userlevel = "1";
} else {
$_server_if_check_value = "0";
$_userlevel = "0";
}
if ($security_code == $generated_captcha && $server != "$_server_if_check_value") {
if(!in_array($username, $g_reserved_nicks)) {
if(strlen($username) > 3) {
dbc();
$now = time();
if(mysql_num_rows(mysql_query("SELECT `id` FROM `$g_tbname` WHERE `server` = '$server' AND `expire_date` > '$now'")) <= $g_max_admins_per_server) {
$check_data = mysql_query("SELECT `player` FROM `$g_tbname` WHERE `player` = '$username' AND `server` = '$server'") or die(g_error);
if(mysql_num_rows($check_data) == 0) {
$insert_data = mysql_query("INSERT INTO `$g_tbname` (`player`, `password`, `flags`, `server`, `time_on_reg`, `expire_date`, `status`, `user_level`) VALUES('$username', '$password', '', '$server', '$time', '0', '0','$_userlevel');") or die(mysql_error());
switch ($g_notify) {
case "1": @mail($g_administrator_email, $g_email_subject, $g_email_message); break;
case "2": @mail($g_administrator_gsm, $g_email_subject, $g_email_message); break;
default:
}
msg("notice", "Благодарим Ви за регистрацията ! <br>
Можете сега да си влезете в акаунта");
refresh(2);
} else {
msg("error", "Този никнейм, вече е бил регистриран за в този сървър !");
refresh(2);
}
} else {
msg("error", "За в момента не можем да приемеме повече регистрации за сървъра, който сте избрали !");
refresh(2);
}
} else {
msg("error", "Вашият никнейм трябва да е по-дълъг от 3 символа !");
}
} else {
msg("error", "Потребителското име е запазено от администратора ! <br> Моля изберете друго.");
refresh(2);
}
} else {
msg("error", "Въведения код за визуално потвърждение е грешен или не сте избрали сървър, за където да си регистрирате потребителското име !");
refresh(2);
}
} else {
include("include/pages/register.php");
}
}
}
} else {
msg("notice", "За в момента не приемаме никакви регистрации.
<br>Моля опитайте по-късно.");
}
sf();
if(time() >= $warning_period && (time() <= $script_expire_on) || (time() >= $script_expire_on)) { echo $warning_for_expire; }
} else {
if(time() >= $script_expire_on) {
echo $warn_head.$warning_for_expire.$warn_footer;
} else {
echo"$warn_head \n<b>Грешка:</b> Hacking attempt <br><br><i>SMSAdmins v1.0 by: hateYou @ amxmodxbg.org</i> \n $warn_footer";
}
}
// echo "<center>Сайта използва SMSAdmins v1.0 от hateYou @ <a href=\"http://amxmodxbg.org\" title=\"AMX Mod X BG - Официален сайт за България\">amxmodxbg.org</a></center>";
echo"\n\n\n\n<!--
/*
****************************************************************
*
* SMSAdmins System v1.0
*
* Автор: hateYou @ amxmodxbg.org
* Информация: http://amxmodxbg.org/forum/viewtopic.php?t=14906
*
****************************************************************
*/
-->\n\n\n\n";
?>
PHP:
$script_expire_on = strtotime("01.03.2010");
$warning_period = strtotime("25.02.2010");
+ файла Core.php не ви е нужен вече,той съдържаше RC4 алгоритъма
И още:
Моля уважавайте автора и неговата работа като не махате Credit's от скрипта.
Credit's:hateYou,RC4,Elven` | HF
Last edited: