Помощь по скриптам | Уязвимости.
Тема закрыта by
amfetaminf
Причина: Нет надобности
Причина: Нет надобности
Доброго времени суток . Можете подсказать, сильно ли уязвим этот скрипт !? Если да , то где здесь уязвимости . Извините за гк. Я новичек в php . Вот сам скрипт: http://gigabyte.lark.ru/ 6664-3063reg.zip
[q]<?php
define('PROTECT', 1);
####################################################################################################################################
################################################################ ����������� #######################################################
####################################################################################################################################
/**
* @author amfetaminf
* @copyright 2016
*/
function html($str) {
return strip_tags(trim(strtr(htmlspecialchars(stripcslashes($str),ENT_QUOTES,'UTF-8'), array('$'=>'$','%'=>'%','_'=>'_'))));
}
function num($int) {
$int = intval($int);
$int = abs($int);
return $int;
}
function anti_hacker($txt){
$txt=str_replace("|","I",$txt);
$txt=str_replace("../",",,/",$txt);
$txt=str_replace("||","I",$txt);
$txt=htmlspecialchars($txt);
$txt=str_replace("\"",""",$txt);
$txt=str_replace("/\\\$/","$",$txt);
$txt=str_replace("$","$",$txt);
$txt=str_replace("\\","\",$txt);
$txt=str_replace("`","",$txt);
$txt=str_replace("^","",$txt);
$txt=str_replace("%","%",$txt);
$txt=stripslashes(trim($txt));
return $txt;
}
//--------------------------// Testing def
foreach ($_GET as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = anti_hacker($value);
}
$_GET[$key] = $value;
}
foreach ($_POST as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = anti_hacker($value);
}
$_POST[$key] = $value;
}
foreach ($_COOKIE as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = anti_hacker($value);
}
$_COOKIE[$key] = $value;
}
foreach ($_SESSION as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = anti_hacker($value);
}
$_SESSION[$key] = $value;
}
require_once ('fnc_root/start.php');
if ($user['reg'] > 0) {
header("Location: ".HOME."/game/index.php");
}
switch ($select){
default:
head('������');
echo DIV_BLOCK . '<div class="example3" style="text-align:center"><img src="/img/enter.jpg" class="example_beauty" style="width:100%;border-radius:1px"></div><br/><br/>';
echo '<div class="ptext">� ��� ��� �... ���... �������... �� ����� �������� ����� �������������� ����������� ������ ���-�� ����� �� ��� � ����� �������� �� �������.
����� ����� �� ������������ ���, ����� ���� ������� ����� ����� � ���������� �������� ������ ������... �� ��� �� ����� ������
����� ��� ������������ ������ ����������� ��������� ����� ���������� �������� � ����� ��������� ��������.
����������� ����� ��� ������ ���������� �����, ���������� � ����� ��������� ���� ����������... �� ������� ���� ��� ��� ������...';
echo '<br/><br/><center><a href="?ok" class="button"> ����������</a></div></center>' . CLOSE_DIV;
if (isset($_GET['ok'])) {
$ok = html($_GET['ok']);
header("Location: /reg/2");
}
break;
case '2':
head('������');
echo '<div class="npc_title"><img src="/img/unknown.jpeg" margin-right:5px;">
<span style="float: right;">
���: �����������<br/>
������: ��������<br/>
����������: �������<br/>
����: �������<br/></span></div>';
echo DIV_BLOCK . '����! ������ ����������� ����. ���� ������ �� ��������!<br/>
������������� ����!' . CLOSE_DIV;
/* Form */
if ($_POST) {
#$_POST = html($_POST);
$login = html($_POST['login']);
$password = html($_POST['password']);
$gender = num($_POST['gender']);
$password2 = html($_POST['password2']);
$email = html($_POST['email']);
if (empty($login) || empty($password) || empty($email)) {
$err .= '��������� ��� ����<br />';
}
/*if(!preg_match("/^[A-Za-z0-9]+[-_]*[A-Za-z0-9]+$/", $login)) {
$err .= '������� ��� � ������ �������<br />';
}*/
if(!preg_match("#^([A-z�-�0-9\-\_\ ])+$#ui", $login)) {
$err .= '������� ��� � ������ �������';
}
if (is_numeric($login)) {
$err .= '��� �� ����� �������� ������ �� �����';
}
if (strlen($login) > 15 || strlen($login) < 3) {
$err .= '�� ������ ����� ����';
}
if (DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".USERS." WHERE `login` = ?", array($login)) == TRUE) {
$err .= '������ ��� ��� ��������������� �� �����<br />';
}
if (DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".USERS." WHERE `email` = ?", array($email)) == TRUE) {
$err .= '������������ � ������ @email ��� ��������������� �� �����<br />';
}
if (!preg_match("|^([a-z0-9_.-]{1,20})@([a-z0-9.-]{1,20}).([a-z]{2,4})|is", strtolower($email))) {
$err .= '������� @email � ������ �������<br/>';
}
if (strlen($password) < 6 || strlen($password) > 20) {
$err .= '������ ������ ���� � ��������� [6 - 15] ��������.<br />';
}
if ($password != $password2) {
$err .= '������ �� ���������.<br />';
}
$_SESSION['login'] = $login;
$_SESSION['pa
define('PROTECT', 1);
####################################################################################################################################
################################################################ ����������� #######################################################
####################################################################################################################################
/**
* @author amfetaminf
* @copyright 2016
*/
function html($str) {
return strip_tags(trim(strtr(htmlspecialchars(stripcslashes($str),ENT_QUOTES,'UTF-8'), array('$'=>'$','%'=>'%','_'=>'_'))));
}
function num($int) {
$int = intval($int);
$int = abs($int);
return $int;
}
function anti_hacker($txt){
$txt=str_replace("|","I",$txt);
$txt=str_replace("../",",,/",$txt);
$txt=str_replace("||","I",$txt);
$txt=htmlspecialchars($txt);
$txt=str_replace("\"",""",$txt);
$txt=str_replace("/\\\$/","$",$txt);
$txt=str_replace("$","$",$txt);
$txt=str_replace("\\","\",$txt);
$txt=str_replace("`","",$txt);
$txt=str_replace("^","",$txt);
$txt=str_replace("%","%",$txt);
$txt=stripslashes(trim($txt));
return $txt;
}
//--------------------------// Testing def
foreach ($_GET as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = anti_hacker($value);
}
$_GET[$key] = $value;
}
foreach ($_POST as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = anti_hacker($value);
}
$_POST[$key] = $value;
}
foreach ($_COOKIE as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = anti_hacker($value);
}
$_COOKIE[$key] = $value;
}
foreach ($_SESSION as $key => $value) {
if(is_numeric($value)) {
$value = (int) abs($value);
} else {
$value = anti_hacker($value);
}
$_SESSION[$key] = $value;
}
require_once ('fnc_root/start.php');
if ($user['reg'] > 0) {
header("Location: ".HOME."/game/index.php");
}
switch ($select){
default:
head('������');
echo DIV_BLOCK . '<div class="example3" style="text-align:center"><img src="/img/enter.jpg" class="example_beauty" style="width:100%;border-radius:1px"></div><br/><br/>';
echo '<div class="ptext">� ��� ��� �... ���... �������... �� ����� �������� ����� �������������� ����������� ������ ���-�� ����� �� ��� � ����� �������� �� �������.
����� ����� �� ������������ ���, ����� ���� ������� ����� ����� � ���������� �������� ������ ������... �� ��� �� ����� ������
����� ��� ������������ ������ ����������� ��������� ����� ���������� �������� � ����� ��������� ��������.
����������� ����� ��� ������ ���������� �����, ���������� � ����� ��������� ���� ����������... �� ������� ���� ��� ��� ������...';
echo '<br/><br/><center><a href="?ok" class="button"> ����������</a></div></center>' . CLOSE_DIV;
if (isset($_GET['ok'])) {
$ok = html($_GET['ok']);
header("Location: /reg/2");
}
break;
case '2':
head('������');
echo '<div class="npc_title"><img src="/img/unknown.jpeg" margin-right:5px;">
<span style="float: right;">
���: �����������<br/>
������: ��������<br/>
����������: �������<br/>
����: �������<br/></span></div>';
echo DIV_BLOCK . '����! ������ ����������� ����. ���� ������ �� ��������!<br/>
������������� ����!' . CLOSE_DIV;
/* Form */
if ($_POST) {
#$_POST = html($_POST);
$login = html($_POST['login']);
$password = html($_POST['password']);
$gender = num($_POST['gender']);
$password2 = html($_POST['password2']);
$email = html($_POST['email']);
if (empty($login) || empty($password) || empty($email)) {
$err .= '��������� ��� ����<br />';
}
/*if(!preg_match("/^[A-Za-z0-9]+[-_]*[A-Za-z0-9]+$/", $login)) {
$err .= '������� ��� � ������ �������<br />';
}*/
if(!preg_match("#^([A-z�-�0-9\-\_\ ])+$#ui", $login)) {
$err .= '������� ��� � ������ �������';
}
if (is_numeric($login)) {
$err .= '��� �� ����� �������� ������ �� �����';
}
if (strlen($login) > 15 || strlen($login) < 3) {
$err .= '�� ������ ����� ����';
}
if (DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".USERS." WHERE `login` = ?", array($login)) == TRUE) {
$err .= '������ ��� ��� ��������������� �� �����<br />';
}
if (DB::$dbs->querySingle("SELECT COUNT(`id`) FROM ".USERS." WHERE `email` = ?", array($email)) == TRUE) {
$err .= '������������ � ������ @email ��� ��������������� �� �����<br />';
}
if (!preg_match("|^([a-z0-9_.-]{1,20})@([a-z0-9.-]{1,20}).([a-z]{2,4})|is", strtolower($email))) {
$err .= '������� @email � ������ �������<br/>';
}
if (strlen($password) < 6 || strlen($password) > 20) {
$err .= '������ ������ ���� � ��������� [6 - 15] ��������.<br />';
}
if ($password != $password2) {
$err .= '������ �� ���������.<br />';
}
$_SESSION['login'] = $login;
$_SESSION['pa
amfetaminf , вроде нет уязвимостей.
Maks islam , хм... спасибо за ответ