DCMS | DCMS-Social v.1.9.12
<?
//include_once 'sys/inc/mp3.php';
//include_once 'sys/inc/zip.php';
include_once 'sys/inc/start.php';
include_once COMPRESS;
include_once SESS;
include_once 'sys/inc/home.php';
include_once SETTINGS;
include_once DB_CONNECT;
include_once IPUA;
include_once FNC;
include_once SHIF;
$show_all=true; // показ для всех
include_once USER;
only_unreg();
$set['title']='Регистрация';
include_once THEAD;
title();
if ($set['guest_select']=='1')msg("Доступ к сайту разрешен только авторизованым пользователям");
if ((!isset($_SESSION['refer']) || $_SESSION['refer']==NULL)
&& isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!=NULL &&
!preg_match('#mail\.php#',$_SERVER['HTTP_REFERER']))
$_SESSION['refer']=str_replace('&','&',preg_replace('#^http://[^/]*/#','/', $_SERVER['HTTP_REFERER']));if ($set['reg_select']=='close')
{
$err='Регистрация временно приостановлена';
err();
echo "<a href='/aut.php'>Авторизация</a><br />\n";
include_once TFOOT;
}
elseif($set['reg_select']=='open_mail' && isset($_GET['id']) && isset($_GET['activation']) && $_GET['activation']!=NULL)
{
if (dbresult(dbquery("SELECT COUNT(*) FROM `user` WHERE `id` = '".intval($_GET['id'])."' AND `activation` = '".my_esc($_GET['activation'])."'"),0)==1)
{
dbquery("UPDATE `user` SET `activation` = null WHERE `id` = '".intval($_GET['id'])."' LIMIT 1");
$user = dbassoc(dbquery("SELECT * FROM `user` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"));
dbquery("INSERT INTO `reg_mail` (`id_user`,`mail`) VALUES ('$user[id]','$user[ank_mail]')");
msg('Ваш аккаунт успешно активирован');
$_SESSION['id_user']=$user['id'];
include_once TFOOT;
}
}
if (isset($_SESSION['step']) && $_SESSION['step']==1 && dbresult(dbquery("SELECT COUNT(*) FROM `user` WHERE `nick` = '".$_SESSION['reg_nick']."'"),0)==0 && isset($_POST['pass1']) && $_POST['pass1']!=NULL && $_POST['pass2'] && $_POST['pass2']!=NULL)
{
if ($set['reg_select']=='open_mail')
{
if (!isset($_POST['ank_mail']) || $_POST['ank_mail']==NULL)$err[]='Неоходимо ввести Email';
elseif (!preg_match('#^[A-z0-9-\._]+@[A-z0-9]{2,}\.[A-z]{2,4}$#ui',$_POST['ank_mail']))$err[]='Неверный формат Email';
elseif(dbresult(dbquery("SELECT COUNT(*) FROM `reg_mail` WHERE `mail` = '".my_esc($_POST['ank_mail'])."'"),0)!=0)
{
$err[]="Пользователь с этим E-mail уже зарегистрирован";
}
}if (strlen2($_POST['pass1'])<6)$err[]='По соображениям безопасности пароль не может быть короче 6-ти символов';
if (strlen2($_POST['pass1'])>32)$err[]='Длина пароля превышает 32 символа';
if ($_POST['pass1']!=$_POST['pass2'])$err[]='Пароли не совпадают';
if (!isset($_SESSION['captcha']) || !isset($_POST['chislo']) || $_SESSION['captcha']!=$_POST['chislo']){$err[]='Неверное проверочное число';}
if (!isset($err))
{
if ($set['reg_select']=='open_mail')
{
$activation=md5(passgen());
dbquery("INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `activation`, `ank_mail`) values('".$_SESSION['reg_nick']."', '".shif($_POST['pass1'])."', '$time', '$time', '".intval($_POST['pol'])."', '$activation', '".my_esc($_POST['ank_mail'])."')",$db);
$id_reg=mysql_insert_id();
$subject = "Активация аккаунта";
$regmail = "Здравствуйте $_SESSION[reg_nick]<br />
Для активации Вашего аккаунта перейдите по ссылке:<br />
<a href='http://$_SERVER[HTTP_HOST]/reg.php?id=$id_reg&activation=$activation'>http://$_SERVER[HTTP_HOST]/reg.php?id=".mysql_insert_id()."&activation=$activation</a><br />
Если аккаунт не будет активирован в течении 24 часов, он будет удален<br />
С уважением, администрация сайта<br />
";
$adds="From: \"password@$_SERVER[HTTP_HOST]\" <password@$_SERVER[HTTP_HOST]>\n";
//$adds = "From: <$set[reg_mail]>\n";
//$adds .= "X-sender: <$set[reg_mail]>\n";
$adds .= "Content-Type: text/html; charset=utf-8\n";
mail($_POST['ank_mail'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds);
}
else
dbquery("INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`) values('".$_SESSION['reg_nick']."', '".shif($_POST['pass1'])."', '$time', '$time', '".intval($_POST['pol'])."')",$db);
$user = dbassoc(dbquery("SELECT * FROM `user` WHERE `nick` = '".my_esc($_SESSION['reg_nick'])."' AND `pass` = '".shif($_POST['pass1'])."' LIMIT 1"));
/*
========================================
Создание настроек юзера
========================================
*/
dbquery("INSERT INTO `user_set` (`id_user`) VALUES ('$user[id]')");
dbquery("INSERT INTO `discussions_set` (`id_user`) VALUES ('$user[id]')");
dbquery("INSERT INTO `tape_set` (`id_user`) VALUES ('$user[id]')");
dbquery("INSERT INTO `notification_set` (`id_user`) VALUES ('$user[id]')");
if (isset($_SESSION['http_referer']))
dbquery("INSERT INTO `user_ref` (`time`, `id_user`, `type_input`, `url`) VALUES ('$time', '$user[id]', 'reg', '".my_esc($_SESSION['http_referer'])."')");
$_SESSION['id_user']=$user['id'];
setcookie('id_user', $user['id'], time()+60*60*24*365);
setcookie('pass', cookie_encrypt($_POST['pass1'],$user['id']), time()+60*60*24*365);
if ($set['reg_select']=='open_mail')
{
msg('Вам необходимо активировать Ваш аккаунт по ссылке, высланной на Email');
}
else
{
dbquery("update `user` set `wall` = '0' where `id` = '$user[id]' limit 1");
header('Location: /umenu.php?login=' . htmlspecialchars($_POST['reg_nick']) . '&pass=' . h
//include_once 'sys/inc/mp3.php';
//include_once 'sys/inc/zip.php';
include_once 'sys/inc/start.php';
include_once COMPRESS;
include_once SESS;
include_once 'sys/inc/home.php';
include_once SETTINGS;
include_once DB_CONNECT;
include_once IPUA;
include_once FNC;
include_once SHIF;
$show_all=true; // показ для всех
include_once USER;
only_unreg();
$set['title']='Регистрация';
include_once THEAD;
title();
if ($set['guest_select']=='1')msg("Доступ к сайту разрешен только авторизованым пользователям");
if ((!isset($_SESSION['refer']) || $_SESSION['refer']==NULL)
&& isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!=NULL &&
!preg_match('#mail\.php#',$_SERVER['HTTP_REFERER']))
$_SESSION['refer']=str_replace('&','&',preg_replace('#^http://[^/]*/#','/', $_SERVER['HTTP_REFERER']));if ($set['reg_select']=='close')
{
$err='Регистрация временно приостановлена';
err();
echo "<a href='/aut.php'>Авторизация</a><br />\n";
include_once TFOOT;
}
elseif($set['reg_select']=='open_mail' && isset($_GET['id']) && isset($_GET['activation']) && $_GET['activation']!=NULL)
{
if (dbresult(dbquery("SELECT COUNT(*) FROM `user` WHERE `id` = '".intval($_GET['id'])."' AND `activation` = '".my_esc($_GET['activation'])."'"),0)==1)
{
dbquery("UPDATE `user` SET `activation` = null WHERE `id` = '".intval($_GET['id'])."' LIMIT 1");
$user = dbassoc(dbquery("SELECT * FROM `user` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"));
dbquery("INSERT INTO `reg_mail` (`id_user`,`mail`) VALUES ('$user[id]','$user[ank_mail]')");
msg('Ваш аккаунт успешно активирован');
$_SESSION['id_user']=$user['id'];
include_once TFOOT;
}
}
if (isset($_SESSION['step']) && $_SESSION['step']==1 && dbresult(dbquery("SELECT COUNT(*) FROM `user` WHERE `nick` = '".$_SESSION['reg_nick']."'"),0)==0 && isset($_POST['pass1']) && $_POST['pass1']!=NULL && $_POST['pass2'] && $_POST['pass2']!=NULL)
{
if ($set['reg_select']=='open_mail')
{
if (!isset($_POST['ank_mail']) || $_POST['ank_mail']==NULL)$err[]='Неоходимо ввести Email';
elseif (!preg_match('#^[A-z0-9-\._]+@[A-z0-9]{2,}\.[A-z]{2,4}$#ui',$_POST['ank_mail']))$err[]='Неверный формат Email';
elseif(dbresult(dbquery("SELECT COUNT(*) FROM `reg_mail` WHERE `mail` = '".my_esc($_POST['ank_mail'])."'"),0)!=0)
{
$err[]="Пользователь с этим E-mail уже зарегистрирован";
}
}if (strlen2($_POST['pass1'])<6)$err[]='По соображениям безопасности пароль не может быть короче 6-ти символов';
if (strlen2($_POST['pass1'])>32)$err[]='Длина пароля превышает 32 символа';
if ($_POST['pass1']!=$_POST['pass2'])$err[]='Пароли не совпадают';
if (!isset($_SESSION['captcha']) || !isset($_POST['chislo']) || $_SESSION['captcha']!=$_POST['chislo']){$err[]='Неверное проверочное число';}
if (!isset($err))
{
if ($set['reg_select']=='open_mail')
{
$activation=md5(passgen());
dbquery("INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `activation`, `ank_mail`) values('".$_SESSION['reg_nick']."', '".shif($_POST['pass1'])."', '$time', '$time', '".intval($_POST['pol'])."', '$activation', '".my_esc($_POST['ank_mail'])."')",$db);
$id_reg=mysql_insert_id();
$subject = "Активация аккаунта";
$regmail = "Здравствуйте $_SESSION[reg_nick]<br />
Для активации Вашего аккаунта перейдите по ссылке:<br />
<a href='http://$_SERVER[HTTP_HOST]/reg.php?id=$id_reg&activation=$activation'>http://$_SERVER[HTTP_HOST]/reg.php?id=".mysql_insert_id()."&activation=$activation</a><br />
Если аккаунт не будет активирован в течении 24 часов, он будет удален<br />
С уважением, администрация сайта<br />
";
$adds="From: \"password@$_SERVER[HTTP_HOST]\" <password@$_SERVER[HTTP_HOST]>\n";
//$adds = "From: <$set[reg_mail]>\n";
//$adds .= "X-sender: <$set[reg_mail]>\n";
$adds .= "Content-Type: text/html; charset=utf-8\n";
mail($_POST['ank_mail'],'=?utf-8?B?'.base64_encode($subject).'?=',$regmail,$adds);
}
else
dbquery("INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`) values('".$_SESSION['reg_nick']."', '".shif($_POST['pass1'])."', '$time', '$time', '".intval($_POST['pol'])."')",$db);
$user = dbassoc(dbquery("SELECT * FROM `user` WHERE `nick` = '".my_esc($_SESSION['reg_nick'])."' AND `pass` = '".shif($_POST['pass1'])."' LIMIT 1"));
/*
========================================
Создание настроек юзера
========================================
*/
dbquery("INSERT INTO `user_set` (`id_user`) VALUES ('$user[id]')");
dbquery("INSERT INTO `discussions_set` (`id_user`) VALUES ('$user[id]')");
dbquery("INSERT INTO `tape_set` (`id_user`) VALUES ('$user[id]')");
dbquery("INSERT INTO `notification_set` (`id_user`) VALUES ('$user[id]')");
if (isset($_SESSION['http_referer']))
dbquery("INSERT INTO `user_ref` (`time`, `id_user`, `type_input`, `url`) VALUES ('$time', '$user[id]', 'reg', '".my_esc($_SESSION['http_referer'])."')");
$_SESSION['id_user']=$user['id'];
setcookie('id_user', $user['id'], time()+60*60*24*365);
setcookie('pass', cookie_encrypt($_POST['pass1'],$user['id']), time()+60*60*24*365);
if ($set['reg_select']=='open_mail')
{
msg('Вам необходимо активировать Ваш аккаунт по ссылке, высланной на Email');
}
else
{
dbquery("update `user` set `wall` = '0' where `id` = '$user[id]' limit 1");
header('Location: /umenu.php?login=' . htmlspecialchars($_POST['reg_nick']) . '&pass=' . h
подскажите где тут код уязвимый

подскажите где тут код уязвимый

файл где скинул там надо посмотреть, где скинул код сверху непонятки получились много чего поменялось.


файл где скинул там надо посмотреть, где скинул код сверху непонятки получились много чего поменялось.

Код каша,оптимизации ноль.
Вот это накой 2 раза?
dbquery("INSERT INTO `tape_set` (`id_user`) VALUES ('$user[id]')");
dbquery("INSERT INTO `notification_set` (`id_user`) VALUES ('$user[id]')");
-----------------
Ну и желательно как то стукторизировать, хотя бы сначала профильтровать, а потом гонять проверки
Вот это накой 2 раза?
dbquery("INSERT INTO `tape_set` (`id_user`) VALUES ('$user[id]')");
dbquery("INSERT INTO `notification_set` (`id_user`) VALUES ('$user[id]')");
-----------------
Ну и желательно как то стукторизировать, хотя бы сначала профильтровать, а потом гонять проверки
V 1.9.13 лучше ツ
Онлайн сканер sql injectio
Стр.: 1, 2