Просмотр полной версии : Система управления сайтом "Фасайт"
Blagotvor
19.11.2008, 16:29
Пишу новую CMS. Оф. сайт http://fasite.ru
Прошу ваших содействий в нахождении допущенных мной просчетов в защите моего продукта. Архив с исходным кодом:
http://fasite.ru/temp/test.zip
Инсталлятор пока еще не делал, инструкция по установке внутри архива. В настоящее время отлажены и работают:
Регистрация первого администратора с возможностью одновременной регистрации первого пользователя с теми же параметрами;
Авторизация администратора;
Авторизация пользователя;
Настройки системы в админке;
Управление модулями в админке;
Система шаблонизации.
Если возникнут трудности с установкой, пишите :)
Вообще-то демо-контент бы не помешал.
рубрики, новости, поля поиска, комментариев
смотреть пока почти нечего, имхо
http://fasite.ru/images/misc/
зачем там такие права?
Blagotvor
19.11.2008, 19:51
Вообще-то демо-контент бы не помешал.
рубрики, новости, поля поиска, комментариев
смотреть пока почти нечего, имхо
именно на оф. сайте, да пока неначто... тему разрешили, теперь сегодня или завтра выложу архив с текущим исходным кодом, сможете ковырять его в свое удовольствие ;)
http://fasite.ru/images/misc/
зачем там такие права?
lisa99, вот видите, уже косячок нашли))) спасибо! забыл я туда пустой файлик index.html засунуть)))
лучше .htaccess'om доступ к папкам прикрой ;)
http://fasite.ru/user/login - XSS в aname.
З.Ы.
Передача нехешированного пароля - плохо.
Blagotvor
19.11.2008, 20:14
лучше .htaccess'om доступ к папкам прикройимеет ли смысл для категорий с картинками? =)
http://fasite.ru/user/login - XSS в aname.
З.Ы.
Передача нехешированного пароля - плохо.XSS прикрыто! :)
можно подробнее про методы передачи хешированного пароля? с чем это едят?
Передача нехешированного пароля - плохо.
имело в виду, что пароль надо шифровать хотя бы в md5
Blagotvor
19.11.2008, 20:29
имело в виду, что пароль надо шифровать хотя бы в md5так при сохранении в базу именно это и происходит =)
ЗЫ
добавил ссылку на исходник в первом сообщении темы
так при сохранении в базу именно это и происходит =)
имелось в виду, что при передаче пароля в плеин-тексте от пользователя к серверу его могут отснифать
Blagotvor
19.11.2008, 20:58
имелось в виду, что при передаче пароля в плеин-тексте от пользователя к серверу его могут отснифатьпонятно! ну и как с этим бороться? как захешировать его до передачи серверу? JAVA? в жабаскрипте я не силен (
Calcutta
19.11.2008, 21:26
{%MNAVI%} зачем это?
http://fasite.ru/ajax/global_func.js
http://fasite.ru/ajax/tool_box.js
просмотр скриптов. хотя хз что это может дать.
Blagotvor
19.11.2008, 21:36
{%MNAVI%} зачем это?
метка вывода блока для системы шаблонизации. самого блока пока нет, вот и светится)
http://fasite.ru/ajax/global_func.js
http://fasite.ru/ajax/tool_box.js
просмотр скриптов. хотя хз что это может дать.
ничего не может дать) жабаскрипты в любом случае закачиваются клиенту и всегда доступны для просмотра.
http://pajhome.org.uk/crypt/md5/md5src.html
что-то не то =\
продублируй, плз куда-нибудь архив.
Уж очень интересно...
понятно! ну и как с этим бороться? как захешировать его до передачи серверу? JAVA? в жабаскрипте я не силен (
Скачай тот-же vBulletin и забери оттуда md5.js посмотри в файлах которые его подгружают, как использовать. Там всё элементарно.
Blagotvor
20.11.2008, 00:24
Qwazar, спасибо!
Digimortal
20.11.2008, 01:01
']имелось в виду, что при передаче пароля в плеин-тексте от пользователя к серверу его могут отснифать
А что изменится от того, что перехвачен будет не plain-text пасс, а его хеш? Точно так же залогиниться можно будет. )
Add: А с другой стороны, если хранить, допустим, в базе пассы в виде md5-хеша, то можно генерировать при каждой попытке логина случайую соль и втавлять в хидден-поле страницы авторизации, а на стороне клиента генерировать хеш вида md5(md5(pass).salt)). Потом проверять на сервере...
Blagotvor
20.11.2008, 01:42
Digimortal, разница в том, что в случае перехвата шифрованного пароля, данные для авторизации придется отсылать уже не через не через сайт, а при помощи какого либо инструмента методом POST. а с "солью" это дело можно усложнить прибегнув к помощи переменных сессии, как при проверке секретного кода к примеру... :)
Отличные мысли генерите, спасибо! :)
Digimortal
20.11.2008, 12:07
>> разница в том, что в случае перехвата шифрованного пароля, данные для авторизации придется отсылать уже не через не через сайт, а при помощи какого либо инструмента методом POST.
Т.е. можно считать, что разницы, в целом, никакой. +)
Да, и учти, что более-менее безопасным будет предложенное мною решение, только если сессия юзера будет привязана к его ip.
Blagotvor
20.11.2008, 14:09
сижу делаю регистрацию новых пользователей... вот думаю, имеет ли смысл приделывать список запрещенных e-mail адресов?
сижу делаю регистрацию новых пользователей... вот думаю, имеет ли смысл приделывать список запрещенных e-mail адресов? А нафига?
сижу делаю регистрацию новых пользователей... вот думаю, имеет ли смысл приделывать список запрещенных e-mail адресов?
В принципе оправданная идея, учитывая, что существуют сервисы типа asdasd.ru, mailinator.com, которые предназначены для моментального получения активационных ссылок при регистрации (все письма складываются в общую кучу, а пользователи сервиса открывают лишь интересующие их письма)
Blagotvor
20.11.2008, 18:03
А нафига?
ну к примеру, запретить пользователю указывать ящик admin@yandex.ru
или запретить все ящики с домена mail.ru
вот сижу и думаю, нафига? паранойа %)
Blagotvor
20.11.2008, 18:11
']В принципе оправданная идея, учитывая, что существуют сервисы типа asdasd.ru, mailinator.com, которые предназначены для моментального получения активационных ссылок при регистрации (все письма складываются в общую кучу, а пользователи сервиса открывают лишь интересующие их письма)
ну и что, это их дело... к примеру:
я в курсе, что на сайте обязательная рассылка, а мне ну просто необходимо зарегистрироваться для получения нужных файлов! ввожу свой ящик с mailinator.com, а он забананен... регистрирую ящик на "яше", ввожу его, регистрируюсь и забиваю на этот ящик :)
список запрещенных ников я сделал, вещь полезная! а вот запрещенные e-mail, да нахрен не нужно :D
я в курсе, что на сайте обязательная рассылка, а мне ну просто необходимо зарегистрироваться для получения нужных файлов! ввожу свой ящик с mailinator.com, а он забананен... регистрирую ящик на "яше", ввожу его, регистрируюсь и забиваю на этот ящик
мда... в таком случае можно вообще убрать поле email при регистрации, зачем пользователям осложнять жизнь?
Blagotvor
20.11.2008, 18:32
']мда... в таком случае можно вообще убрать поле email при регистрации, зачем пользователям осложнять жизнь?
без крайностей - ящик нужен! а список запрещенных ящиков не нужен, не имеет смысла...
а по поводу упрощения жизни пользователям, я делаю дополнительную функцию быстрой регистрации "в один клик"! логин и пароль генерится автоматом и сразу происходит автологин. все остальные данные, в том числе и е-мейл, юзверь сможет указать потом :)
[x26]VOLAND
30.11.2008, 09:12
function isbot($agent){
return false;
}Улыбнуло)
D9D9_VAD9
30.11.2008, 12:41
Blagotvor, потом все свои сайты переведешь на эту cms или на слаеде останешься? :)
Blagotvor
01.12.2008, 22:30
VOLAND']function isbot($agent){
return false;
}Улыбнуло)
просто зарезервировано местечко :)
Blagotvor, потом все свои сайты переведешь на эту cms или на слаеде останешься? :)
конечно переведу, но не все))
ЗЫ
архивчик с исходником (http://fasite.ru/temp/test.zip) обновлен!
Добавлены фукнции администрирования блоков в панели администратора.
Отлажена система вывода содержимого блоков на страницах сайта.
Добавлены функции регистрации новых пользователей.
Neoveneficus
01.12.2008, 23:09
какая-то фигня по адресу админки...
http://fasite.ru/admin
UPD:Ну лан, пусть не админка, но все равно варнинги и раскрытие путей.
Blagotvor
01.12.2008, 23:12
какая-то фигня по адресу админки...
http://fasite.ru/admin
а кто сказал, что это адрес админки? )))) но мусор почистить надо, согласен
Blagotvor
02.12.2008, 22:51
архивчик с исходниками обновлен:
оптимизированы функции протокола;
отлажена функция проверки имени пользователя при регистрации;
усилены меры безопасности записи сессий посетителей.
если в исходниках есть какие либо тупые решения или дыры, хочу знать их заранее :)
Blagotvor
03.12.2008, 18:59
еще раз оптимизировал архитектуру протокла;
прикрутил капчу!
теперь кто сможет зарегаться ботом 9.95 раза, тому ничего не будет! :D
обновил архивчик с исходниками еще разок (http://fasite.ru/temp/test.zip)
другие модули планируются?
кроме регистрации и новостей?
(я имею ввиду - в паблике)
Blagotvor
05.12.2008, 17:33
в базовый комплект будут входить несколько необходимых модулей, примерно таких как Новости, Страницы, Опросы, Файлы и Портал
ЗЫ
модуль user(авторизация и регистрации) является системным
модуль portal будет нечто большее, чем обычный форум
AkyHa_MaTaTa
06.12.2008, 00:27
Генерация страницы: 0,054 сек. и 6 запросов в базу за 0,002 сек.
Имхо, не нужная вешь, нафиг узеру нуна знать за сколько и чего, это же не брутер какой то, пережытки прошлого,
лутчше на этом месте - добавить баннер, или рекламу, и в админке сделать соответсвуюший модуль для его добавления и изменения.
Имхо не плоха было бы использовать опережаюший ввод, туже форму я заполняю, нету валидации данных без отсылки на сервер.
Blagotvor
06.12.2008, 02:26
Имхо, не нужная вешь, нафиг узеру нуна знать за сколько и чего, это же не брутер какой то, пережытки прошлого,
лутчше на этом месте - добавить баннер, или рекламу, и в админке сделать соответсвуюший модуль для его добавления и изменения.
эта строка мне нужна, пока пишу этот двиг во всяком случае... к примеру, эта строка полезна в отслеживании лагов провайдеров - если сайт тормозит, но время генерации в норме, значит лагает не хостинг ))) и вообще, эта строка отключается опционально в настройках системы!
по поводу "модулей для бананеров", вы бы лучше скачали архивчик и поковыряли код прежде, чем советовать что и куда воткнуть. для банеров и прочих мелочей предусмотрены четыре вида блоков, которые можно разместить в любом месте сайта! это позволяет сделать удобная система шаблонизации. а модули предназначены для вывода основного содержимого.
Имхо не плоха было бы использовать опережаюший ввод, туже форму я заполняю, нету валидации данных без отсылки на сервер.
мелочь не первой необходимости! можно будет потом сделать... я еще не добрался до организации AJAX-ной системы)
AkyHa_MaTaTa
06.12.2008, 03:14
к примеру, эта строка полезна в отслеживании лагов провайдеров - если сайт тормозит, но время генерации в норме, значит лагает не хостинг )))
ММ, улыбнуло
по поводу "модулей для бананеров", вы бы лучше скачали архивчик и поковыряли код прежде
Чесно скажу не ковырялся, по тому как таких проектов я видел 100, если не 1000, и я этим тоже страдал, 1,5-2 года назад, ну че это пройдет, просто дал совет вот и все.
Blagotvor
06.12.2008, 16:03
и я этим тоже страдал, 1,5-2 года назад
разница именно в том, что я не страдаю... я делаю! :)
ЗЫ
организовал систему ajax и прикрутил предварительную проверку вводимых данных.
раскрытие пути
http://fasite.ru/user/http:
Blagotvor
08.12.2008, 16:34
раскрытие пути
http://fasite.ru/user/http:
не понял где и как... по указанному запросу все в норме, ничего не происходит
ЗЫ
и никто не сказал, что при регистрации капча не пашет :)
BlackSun
08.12.2008, 16:47
Раскрытие путей
POST запрос http://fasite.ru/user/login?uname[]=asd&pwd1[]=asd
PS: и почему сайт голый? проверять то нечего ..
Blagotvor
08.12.2008, 17:11
Раскрытие путей
POST запрос http://fasite.ru/user/login?uname[]=asd&pwd1[]=asd
может быть у вас какое-то приложение раскрывает какие-то пути? я набираю в адресной строке указанный вами запрос и ничего не происходит)) и не может происходить - либо запрос правильный, либо ошибка 404!
объясню почему: /user/login это не физический путь, это виртуальный путь для протокола управления.
PS: и почему сайт голый? проверять то нечего ..
в первом сообщении топика есть ссылка на исходники движка! этот проект опен сурс, качайте архивчик, ковыряйте)
...и кстати, чуть позже я его опять обновлю.
ЗЫ
исправил проверку строки подтверждения при регистрации!
BlackSun
08.12.2008, 17:14
я набираю в адресной строке указанный вами запрос и ничего не происходит))
POST запрос
...
Blagotvor
08.12.2008, 17:16
/user/login это не физический путь
у меня нет приложений для такого рода проверок, было бы любопытно взглянуть на их результаты... какие именно пути раскрываются и чем это может грозить? проект опен сурс - весь код "перед вами" ))
BlackSun
08.12.2008, 17:17
Warning: urldecode() expects parameter 1 to be string, array given in [deleted] on line 172
Warning: md5() expects parameter 1 to be string, array given in [deleted] on line 30
Warning: urldecode() expects parameter 1 to be string, array given in [deleted] on line 172
не понял где и как... по указанному запросу все в норме, ничего не происходит
ЗЫ
и никто не сказал, что при регистрации капча не пашет :)
скопировал не так
http://fasite.ru/user/http://
раскрытие путей и сообщений =)
Blagotvor
08.12.2008, 18:34
BlackSun, спасибо, поправил! теперь на будущее буду иметь ввиду эти несовпадения типов переменных )
скопировал не так
http://fasite.ru/user/http://
раскрытие путей и сообщений =)
опа, вот это еще загвоздочка! будем исправлять :D
update
исправлено
ps
чуть позже обновлю архивчик с исходниками (http://fasite.ru/temp/test.zip)
Blagotvor
09.12.2008, 17:05
архив с кодом (http://fasite.ru/temp/test.zip) обновлен!
организована система ajax
оптимизированы функции протокола
отлажены функции переключения языковых параметров
подчищены баги и недочеты
ищем дырыбаги дальше :D
ЗЫ
и не надо мне тыкать в кнопку [edit]! редактирование последнего поста не апает топик! :)
BlackSun
10.12.2008, 16:44
Лудше бы ты заполнил сайт хоть не много, у мну к примеру на локале с мод реврайтом проблемы ..
Blagotvor
10.12.2008, 18:13
Лудше бы ты заполнил сайт хоть не много, у мну к примеру на локале с мод реврайтом проблемы ..
а заполнение пока ничего не даст... даже в таком состоянии уже нашли кучку багов! ведь пользовательские данные пока принимаются только при регистрации и авторизации...
на текущий момент делаю распределение прав пользователей, после этого уже повеселее дела пойдут. буду тестировать работу групп доступа, тогда уже понадобится несколько страниц в модуле новостей и функции добавления пользовательского контента.
ЗЫ
в последней версии денвера проблем с мод реврайтом не ощущаю :)
BlackSun
10.12.2008, 18:32
на текущий момент делаю распределение прав пользователей, после этого уже повеселее дела пойдут. буду тестировать работу групп доступа, тогда уже понадобится несколько страниц в модуле новостей и функции добавления пользовательского контента.
Я тогда подожду)
в последней версии денвера проблем с мод реврайтом не ощущаю
Все бы ничего, только у мну линукс)
Blagotvor
10.12.2008, 18:49
Все бы ничего, только у мну линукс)
ну я так и подумал :)
ЗЫ
немного подкорректировал работу системы ajax и прикрутил пупап подсказки. прикольно получилось - http://fasite.ru/user/registration
Blagotvor
19.12.2008, 18:14
добавил защиту от флуда (в т.ч. дребезг клавы);
организовал распределение прав для групп доступа...
на текущий момент делаю систему категорий, а уж потом можно будет организовывать добавление пользовательского контента. тогда уж и архив с исходным кодом можно будет обновить :)
Blagotvor
29.12.2008, 23:19
все же обновил архивчик с исходниками (http://fasite.ru/temp/test.zip)!
исправлен баг при распознавании несуществующей страницы;
исправлена проблема регистрации пользователей;
исправлена функция проверки статуса администратора;
отлажена внутренняя система перенаправлений;
добавлена панель управления администраторами;
добавлена быстрая регистрация пользователей "в один клик";
добавлена страница управления профилем, но пока частично :)
Просканировал.Что-то нашел
DNS zone transfer
Vulnerability description
The remote DNS server allows zone transfers. DNS zone transfer, also sometimes known by its (most common) opcode mnemonic AXFR, is a type of DNS transaction. It is one of the many mechanisms available for administrators to employ for replicating the databases containing the DNS data across a set of DNS servers.
DNS zone transfers have several potential security issues. The data contained in an entire DNS zone may be sensitive in nature. Individually, DNS records are not sensitive, but if a malicious entity obtains a copy of the entire DNS zone for a domain, they may have a complete listing of all hosts in that domain. That makes the job of a computer hacker much easier. A computer hacker needs no special tools or access to obtain a complete DNS zone if the name server is promiscuous and allows anyone to do a zone transfer.
This vulnerability affects Server.
The impact of this vulnerability
Possible sensitive information disclosure.
Attack details
The DNS server is running on TCP port 53.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot