Дыры на сайтах

  • Автор темы agamurat
  • Дата начала
VasyaKrol
Участник
Сообщения
22
Реакции
0
  • #321
wh1skas написал(а):
Фильтруйте все входящие данные на сайт! В первую очередь проверяем POST и GET-запросы.
Если есть REQUEST, то надо проверять для чего он, и в случае тоже фильтровать.
По фильтрации понятно. Статейку с хабра я посмотрел, сейчас разбираюсь. А вот с файлом login чего делать. Я не представляю где там можно ошибиться. Вот могу привести код файла (уже измененного по Вашему принципу):

<h2>Авторизация</h2>

<?PHP
if(isset($_SESSION["admin"])){ Header("Location: /?menu=preved_medved"); return; }

if(isset($_POST["admlogin"])){

$db->Query("SELECT * FROM db_config WHERE id = 1 LIMIT 1");
$data_log = $db->FetchArray();

if(strtolower($_POST["admlogin"]) == strtolower("admin") AND strtolower($_POST["admpass"]) == strtolower("admin") ){

$_SESSION["admin"] = true;
Header("Location: /?menu=preved_medved");
return;
}else echo "<center><font color = 'red'><b>Неверно введен логин и/или пароль</b></font></center><BR />";

}

?>
<form action="" method="post">
<table width="300" border="0" align="center">
<tr>
<td><b>Логин:</b></td>
<td align="center"><input type="text" name="admlogin" value="" /></td>
</tr>
<tr>
<td><b>Пароль:</b></td>
<td align="center"><input type="password" name="admpass" value="" /></td>
</tr>
<tr>
<td style="padding-top:5px;" align="center" colspan="2"><input type="submit" value="Войти" /></td>
</tr>
</table>
</form>

Значения логина и пасса естественно вставлял другие, все равно происходит описанное в посте выше.
Если не трудно гляньте плиз. Может есть в коде какая заглушка от такого метода. Я с пхп только еще начинаю знакомство, многих принципов работы кода еще не знаю. Вобщем прошу помочь...
 
wh1skas
wildcake
Участник
Сообщения
1.017
Реакции
432
ICQ
564739604 564739604
  • #322
VasyaKrol написал(а):
По фильтрации понятно. Статейку с хабра я посмотрел, сейчас разбираюсь. А вот с файлом login чего делать. Я не представляю где там можно ошибиться. Вот могу привести код файла (уже измененного по Вашему принципу):

<h2>Авторизация</h2>

<?PHP
if(isset($_SESSION["admin"])){ Header("Location: /?menu=preved_medved"); return; }

if(isset($_POST["admlogin"])){

$db->Query("SELECT * FROM db_config WHERE id = 1 LIMIT 1");
$data_log = $db->FetchArray();

if(strtolower($_POST["admlogin"]) == strtolower("admin") AND strtolower($_POST["admpass"]) == strtolower("admin") ){

$_SESSION["admin"] = true;
Header("Location: /?menu=preved_medved");
return;
}else echo "<center><font color = 'red'><b>Неверно введен логин и/или пароль</b></font></center><BR />";

}

?>
<form action="" method="post">
<table width="300" border="0" align="center">
<tr>
<td><b>Логин:</b></td>
<td align="center"><input type="text" name="admlogin" value="" /></td>
</tr>
<tr>
<td><b>Пароль:</b></td>
<td align="center"><input type="password" name="admpass" value="" /></td>
</tr>
<tr>
<td style="padding-top:5px;" align="center" colspan="2"><input type="submit" value="Войти" /></td>
</tr>
</table>
</form>

Значения логина и пасса естественно вставлял другие, все равно происходит описанное в посте выше.
Если не трудно гляньте плиз. Может есть в коде какая заглушка от такого метода. Я с пхп только еще начинаю знакомство, многих принципов работы кода еще не знаю. Вобщем прошу помочь...
ты про это?

PHP:
75: 
$title = $func->TextClean($_POST["title"]);

80: 
$db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('$title','$text','".time()."')");

SQL Injection!

80: 
$db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('".mysql_real_escape_string($title)."','$text','".time()."')");

FIXED
 
VasyaKrol
Участник
Сообщения
22
Реакции
0
  • #323
wh1skas написал(а):
ты про это?

PHP:
75:
$title = $func->TextClean($_POST["title"]);

80:
$db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('$title','$text','".time()."')");

SQL Injection!

80:
$db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('".mysql_real_escape_string($title)."','$text','".time()."')");

FIXED
Нет, я имел ввиду про способ спрятать лог и пасс от админки в файл логин. Но с этим я уже разобрался.
Я кое где там в других файлах адрес админки не поменял. Сейчас переделал и все заработало.

А вот с этим примером кстати что не так.
Я в статье той вычитал, что ет вроде есть смешной способ экранирования. Но суть то в том, что у меня вообще после этого метода в базу пустое значение передается. Не в курсе почему..?
 
wh1skas
wildcake
Участник
Сообщения
1.017
Реакции
432
ICQ
564739604 564739604
  • #324
попробуй так:
PHP:
$title = $func->TextClean($_POST["title"]);
mysql_real_escape_string($title);

$db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('$title','$text','".time()."')");
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
  • #325
wh1skas написал(а):
Фильтруйте все входящие данные на сайт! В первую очередь проверяем POST и GET-запросы.
Если есть REQUEST, то надо проверять для чего он, и в случае тоже фильтровать.
Как и чем ты фильтруешь?

wh1skas написал(а):
попробуй так:
PHP:
$title = $func->TextClean($_POST["title"]);
mysql_real_escape_string($title);

$db->Query("INSERT INTO db_news (title, news, date_add) VALUES ('$title','$text','".time()."')");
mysql_real_escape_string не выход, далеко не выход. :)
 
wh1skas
wildcake
Участник
Сообщения
1.017
Реакции
432
ICQ
564739604 564739604
  • #326
Ну не раскрывать же все свои карты? )) Это отвечает за форматирование )) И его как минимум нужно ставить, но совместно с ... ))) Не скажу с чем )) И после этого еще проэкранировать надо. Мой хлеб )
 
wh1skas
wildcake
Участник
Сообщения
1.017
Реакции
432
ICQ
564739604 564739604
  • #327
И кстати да. Фильтровать желательно все данные, а не только входные данные от пользователей. Так как PHP в отличии от различных сред программирования не требует определения типа переменной до ее использования ) Это важно.
 
powerful
Участник
Сообщения
7
Реакции
0
  • #328
kvozimir написал(а):
не правильно сделал

файлы которые в админке в принципе защищать не нужно,потому что это админка и в нее не попадут,а если и взломают то взломают через другие дыры,ну а так то там кажется дело в фильтрации
всё равно доступ к папке надо закрыть и на все вложения а то у меня был взлом такого рода.
 
remmodulek
Участник
Сообщения
20
Реакции
1
  • #329
Если стока дыр и уязвимостей ,тогда как существуют эти фермы в инете?Их бы тогда все разом ломанули.В этой теме я уже прочитал,что есть умельцы,которые накрутку делать умеют серебра и ещё мелкие сумы угонять с кошельков для незаметности!Вот такой он дырявый скрипт оказывается за 20 баксов в базе даных все пароли в открытом виде-всё для хакера.
 
AriCosmo
Участник
Сообщения
515
Реакции
115
Skype
  • #330
remmodulek написал(а):
Если стока дыр и уязвимостей ,тогда как существуют эти фермы в инете?Их бы тогда все разом ломанули.В этой теме я уже прочитал,что есть умельцы,которые накрутку делать умеют серебра и ещё мелкие сумы угонять с кошельков для незаметности!Вот такой он дырявый скрипт оказывается за 20 баксов в базе даных все пароли в открытом виде-всё для хакера.
Вы ошибаетесь.) Это просто в паблике в основном лежат скрипты, в которых специально делают дыры и шёлы, чтобы в последствии сливать деньги., правда в моей практике, было много случаев, когда и покапают дорогие скрипты с дырами.)
Вернёмся к пабликам: Когда вы их скачиваете, вам же никто не даёт гарантии, что вас не взломают? Я к примеру давно решил проблему с (#1) накруткой серебра(В основном накручивают на играх, не просчитанных с теорией вероятности - напёрстки, орёл или решка, кости и тому подобные,. различными методами вроде больших чисел и т.д. Так же могут набивать на кнб, если у вас стоит бонус при регистрации... то там мульты и дело случая) Пароли я тоже (#2)шифрую при помощи собственного алгоритма, а также заставляю пользователей придумать пароль не менее 7 символов, для их же безопасности. В любом случае, если кулц_хакер попадёт в бд, он нифига не получит т.к. проверка пароблей происходит методом шифровки введённого пароля и сравнения с тем шифром, что находится в бд. Фактически дешифровать хэш созданный при помощи моего алгоритма не возможно,. это конечно круче соли с мд5, но тут минус в размере хранимого хэша, очень он уж большой получается. Всегда советую более менее посвящённым владельцам скриптов переписывать названия (#3)стандартных классов php и вообще менять названия папок файлов, если школо_взломщик(самые лютые и популярные взломщики ферм:D) увидит нестандартность скрипта, то скорее всего он подумает, что-то вроде: "Блин, скрипт не стандартная FF, не вытащить на пиво((".
думаю я ясно дал понять картину происходящего:devil:
 
AriCosmo
Участник
Сообщения
515
Реакции
115
Skype
  • #332
himik
Участник
Сообщения
230
Реакции
32
  • #333
Remdev
Участник
Сообщения
77
Реакции
19
  • #334
AriCosmo написал(а):
Вы ошибаетесь.) Это просто в паблике в основном лежат скрипты, в которых специально делают дыры и шёлы, чтобы в последствии сливать деньги., правда в моей практике, было много случаев, когда и покапают дорогие скрипты с дырами.)
Вернёмся к пабликам: Когда вы их скачиваете, вам же никто не даёт гарантии, что вас не взломают? Я к примеру давно решил проблему с (#1) накруткой серебра(В основном накручивают на играх, не просчитанных с теорией вероятности - напёрстки, орёл или решка, кости и тому подобные,. различными методами вроде больших чисел и т.д. Так же могут набивать на кнб, если у вас стоит бонус при регистрации... то там мульты и дело случая) Пароли я тоже (#2)шифрую при помощи собственного алгоритма, а также заставляю пользователей придумать пароль не менее 7 символов, для их же безопасности. В любом случае, если кулц_хакер попадёт в бд, он нифига не получит т.к. проверка пароблей происходит методом шифровки введённого пароля и сравнения с тем шифром, что находится в бд. Фактически дешифровать хэш созданный при помощи моего алгоритма не возможно,. это конечно круче соли с мд5, но тут минус в размере хранимого хэша, очень он уж большой получается. Всегда советую более менее посвящённым владельцам скриптов переписывать названия (#3)стандартных классов php и вообще менять названия папок файлов, если школо_взломщик(самые лютые и популярные взломщики ферм:D) увидит нестандартность скрипта, то скорее всего он подумает, что-то вроде: "Блин, скрипт не стандартная FF, не вытащить на пиво((".
думаю я ясно дал понять картину происходящего:devil:
А ссылку на проект можно получить?
 
Lis1988
Местный
Сообщения
32
Реакции
5
  • #335
Ребята, я немного далековат от таких кодировку и т.п. Кто сможет за $ закатать дыры в скрипте и модулях
 
wh1skas
wildcake
Участник
Сообщения
1.017
Реакции
432
ICQ
564739604 564739604
  • #336
Lis1988 написал(а):
Ребята, я немного далековат от таких кодировку и т.п. Кто сможет за $ закатать дыры в скрипте и модулях
В лс мне пиши.
 
AriCosmo
Участник
Сообщения
515
Реакции
115
Skype
  • #337
Lis1988 написал(а):
Ребята, я немного далековат от таких кодировку и т.п. Кто сможет за $ закатать дыры в скрипте и модулях
Пиши мне в личку
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
  • #338
AriCosmo написал(а):
...Фактически дешифровать хэш созданный при помощи моего алгоритма не возможно,. это конечно круче соли с мд5, но тут минус в размере хранимого хэша, очень он уж большой получается. ...
Ты шифруешь хеш несколько раз? :) Или у тебя соль 500 символов? :D;)

P.S. Кстати есть такой алгоритм в PHP
 
rus56
Участник
Сообщения
126
Реакции
16
  • #339
AriCosmo написал(а):
Пароли я тоже (#2)шифрую при помощи собственного алгоритма
Доброго времени суток всем. Вопрос - AriCosmo будь добр показать скрипт шифрующий пароль!
 
voodooas
Участник
Сообщения
21
Реакции
7
  • #340
rus56 - в md5 шифруете - например md5($pass.$login.$mail) либо md5("blablabla".$pass)
при проверке на входе делаете то же самое.
if(md5("blablabla".$POST['pass'])==$data['pass']) проходим дальше.
Так получается довольно таки уникальный хеш набора символов.
Все в набросках.
 
Сверху