Проверка скрипта на дыры и уязвимости

1 234
IL
На сайте с 20.04.2007
Offline
435
#31
denis920:
В двух словах, человек это сделал неосознанно в силу спешки или малого опыта и ему можно отдать на доработку либо все это специально сделано и лучше поискать другого исполнителя?

Ждём главного телепата.. :) Ну или можете у самого исполнителя спросить.. Я больше к "не специально" склоняюсь..

Доработка, кстати, может и не пригодиться.. (как с Неуловимым Джо)

А так - формально, прокатывает регистрация с логином вроде

' OR 1 = 1 OR 1 = '1

А он чуть позже передаётся без экранирования.. (как уже отметил выше RedOK)

Возможно, там дальше и "нет ничего"..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
RO
На сайте с 13.07.2009
Offline
88
#32

да, я уже заметил is_numeric :( да и перед тем как послать нефильтрованный login в методы там сначала идёт проверка на валидность этого login в Auth::test_token где как раз и фильтруется login

IL
На сайте с 20.04.2007
Offline
435
#33
RedOK:
проверка на валидность этого login в Auth::test_token где как раз и фильтруется login

А валидность берётся из базы, в которую попасть можно через регистрацию.. 🤪

RO
На сайте с 13.07.2009
Offline
88
#34
ivan-lev:
Ждём главного телепата.. :) Ну или можете у самого исполнителя спросить.. Я больше к "не специально" склоняюсь..

Доработка, кстати, может и не пригодиться.. (как с Неуловимым Джо)
А так - формально, прокатывает регистрация с логином вроде
' OR 1 = 1 OR 1 = '1

А он чуть позже передаётся без экранирования.. (как уже отметил выше RedOK)
Возможно, там дальше и "нет ничего"..

нет, нифига or 1 не прокатывает :( , мой магический шар подсказывает что в Auth::new_user фильтруется и логин и мыло, а пароль вообще в md5 с солью шифруется

$db->query('INSERT INTO {admins} (`login`, `password`, `email`) VALUES ("'.mysql_escape_string($login).'", "'.$hash_password.'", "'.mysql_escape_string($email).'")')

, так что кавычки не катят.

---------- Добавлено 31.03.2013 в 00:10 ----------

в общем, автор, мой не совсем адекватный мозг на данный момент, говорит что дырку вам стоит искать в другом месте, ибо тут ничего серьёзного не нашел.

при следующей встрече с этим программистом, если она состоится (да хоть и виртуально) посоветуйте не использовать mysql_escape_string ибо это уже даже не смешно, и вообще пусть переходит на PDO или что-то в этом роде. так как «mysql_query» через пару лет накроется медным тазом на большинстве хостингов. хотя если он пишет залипухи, которые рассчитаны на пару месяцев работы, то нечего беспокоится 🍿

denis920
На сайте с 26.02.2009
Offline
183
#35

Ничего не понятно 🤪

---------- Добавлено 31.03.2013 в 01:12 ----------

denis920:
в общем, автор, мой не совсем адекватный мозг на данный момент, говорит что дырку вам стоит искать в другом месте, ибо тут ничего серьёзного не нашел.

Большое спасибо

IL
На сайте с 20.04.2007
Offline
435
#36
RedOK:
, так что кавычки не катят.

:) катят.. они в базу попадают..

А потом, при авторизации $_POST['login'] (экранированный, как положено) берётся для поиска юзера (в базе, с кавычкой.. юзер, естественно находится, если он там есть...), после чего этот $_POST['login'] проходит валидацию в Auth::test_token и уже дальше в "чистом виде" (т.е. без экранирования) попадает в функции..

А дальше.. дальше - хз.. может там ничего и нет..

denis920
На сайте с 26.02.2009
Offline
183
#37

Взломать, как я понимаю можно все, что угодно, все зависит от уровня профессионализма.

Люблю делать сайты на чистом html, там хоть уверен, что кроме как украсть пароли от ftp больше никак взломать не смогут.

RO
На сайте с 13.07.2009
Offline
88
#38
ivan-lev:
:) катят.. они в базу попадают..
А потом, при авторизации $_POST['login'] (экранированный, как положено) берётся для поиска юзера (в базе, с кавычкой.. юзер, естественно находится, если он там есть...), после чего этот $_POST['login'] проходит валидацию в Auth::test_token и уже дальше в "чистом виде" (т.е. без экранирования) попадает в функции..
А дальше.. дальше - хз.. может там ничего и нет..

хотя да. кавычка то записывается в базу, хоть и экранируется вначале.. хэх, нужно дальше смотреть 🍿

---------- Добавлено 31.03.2013 в 00:47 ----------

хех, а с кавычкой тоже проблемы начались, например для активации пользователя админом он его должен «активировать» а он это не может сделать, так как js падает с ошибкой на функции users_approve которая в качетсве парметра принимает логин с кавычкой :D в общем, это конечно баги, если смотреть с одной стороны даже критичные, но я сомневаюсь что именно это способствовало появлению вредоносных файлов на сервере.

хотя, судя по базе данных я вообще не вижу где тут активация отмечается..

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий