Старый 29.03.2013, 22:30   #1
bulat
 
Регистрация: 29.03.2013
Сообщений: 7
Репутация: 0
По умолчанию Аудит.

Просьба провести аудит сайта:
http://devacodemy.sellfiles.ru/

Наша собственная разработка. Енто электронная обучалка программированию, а имя домена так - для отладки.

P.S. Там не PHP.

P.P.S. Если на том что-то не пашет, можете попробовать на http://dev2acodemy.sellfiles.ru/ я его сейчас тоже под аудит выделил (и значек/ссылку на главной повесил)

Последний раз редактировалось bulat; 29.03.2013 в 22:52..
bulat вне форума  
Старый 30.03.2013, 09:17   #2
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

С доступом без авторизации к админке и управлением курсами совсем беда.
http://dev2acodemy.sellfiles.ru/admin/wannateach/
http://dev2acodemy.sellfiles.ru/admin/loglist
BlackFan вне форума  
Старый 30.03.2013, 09:46   #3
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

FDP, XSS через отображение ошибок
http://dev2acodemy.sellfiles.ru/services/profile/complete?userid=40<script>alert(1)</script>

Хранимые XSS через аватары
http://dev2acodemy.sellfiles.ru/image/profile/pechal.html
BlackFan вне форума  
Старый 30.03.2013, 09:59   #4
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

Хранимая xss через UA
http://dev2acodemy.sellfiles.ru/admin/services/log/list

Да и через logdata
http://dev2acodemy.sellfiles.ru/admin/services/log/1199

Ну и во всех остальных местах однотипно...
Например, через путь к файлу аватара
http://dev2acodemy.sellfiles.ru/services/user/40/

Последний раз редактировалось BlackFan; 30.03.2013 в 10:14..
BlackFan вне форума  
Старый 30.03.2013, 19:24   #5
bulat
 
Регистрация: 29.03.2013
Сообщений: 7
Репутация: 0
Thumbs up

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

Насчет XSS в UserAgent в логах - не углядел, спасибо. Поправлю. (на выходе, кстати, оно помоему эскейпится/режется правильно? Не удалось пробить в /admin/loglist ? Там UA из логов показывается. )

XSS в logdata это такая багофича - нам надо логировать пользовательский ввод полностью - как есть. Он потом при выводе логов эскейпится. Есть предложения как это сделать безопаснее? Например, насколько оправданно хранить обе версии для разных нужд: для показа - заэскейпленное, а для анализа и обработки - оригинал?

FullPathDisclosure при обработке ошибок - да, лень матушка. Бум поправлять.

А вот по XSS в обработке ошибок - не хранимый XSS получается, так? Или получилось его хранимым зафигачить?

По XSS в имени файла картинки и по ее содержимому - спасибо, работаем.

Через ID-шники пользователей, курсов, уроков, COOKIE и т.п. нигде не удалось пробить?

По админке - этот кусок мы просто отключим - он на этом сайте как таковой не требуется. Сейчас он там только для отладки, ну, и чтобы вы могли проверить и сам админский кусок на дыры. Тока ссылку на него забыл дать. Кстати, а обнаружили его подбором, или все-таки где-то светится ссылка? (на dev2codemy отладочная информация показывается. в ней нашли?)
Спасибо за напоминание по админке!

Цитата:
Сообщение от BlackFan Посмотреть сообщение
Хранимая xss через UA
...

Да и через logdata
...

Ну и во всех остальных местах однотипно...
Например, через путь к файлу аватара
http://dev2acodemy.sellfiles.ru/services/user/40/
Чего-то туплю и не могу сообразить каково типа и в каких еще местах? Дай еще пару примеров, pls.

P.S. Будет ли правильным в этой теме дальше обсудить затыкание этих дыр? (как для меня, так и для потомков ) Я, по мере возможностей, могу выложить, то как эти дыры проникли в систему. И то, как мы их заткнули. Дальше, бы с удовольствием обсудил правильность затыкания. (и заткнул повторно )

Последний раз редактировалось bulat; 30.03.2013 в 19:29..
bulat вне форума  
Старый 31.03.2013, 00:54   #6
bulat
 
Регистрация: 29.03.2013
Сообщений: 7
Репутация: 0
По умолчанию

На http://devacodemy.sellfiles.ru/ обновили версию системы.

Думаем, что заткнули следующее (проверьте, pls, теперь):
FPD и нехранимый XSS в
http://devacodemy.sellfiles.ru/admin/services/log и т.д.
http://devacodemy.sellfiles.ru/services/log и т.д.
http://devacodemy.sellfiles.ru/services/course и т.д.

На входе хранимый XSS через UA и др. поля (кроме logdata - тот затыкается только на выходе) в
http://devacodemy.sellfiles.ru/admin/services/log и т.д.
http://devacodemy.sellfiles.ru/services/log и т.д.

В других сервисах этого еще не трогали - сделаем по аналогии.

Убрал http://devacodemy.sellfiles.ru/admin/wannateach/
(/admin/log оставил - слово админ там просто так )


Кстати, а различные лишние подробности о системе у нас не просачиваются через заголовки HTTP-ответов и т.п.?

Последний раз редактировалось bulat; 31.03.2013 в 00:56..
bulat вне форума  
Старый 31.03.2013, 21:56   #7
bulat
 
Регистрация: 29.03.2013
Сообщений: 7
Репутация: 0
По умолчанию

Дозаткнули FPD и XSS через сообщения об ошибках.

Заделали на входе XSS в аватарах. (на выходе еще заделываем)

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


Еще какие-нибудь уязвимости?
bulat вне форума  
Старый 02.04.2013, 07:21   #8
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

При загрузке аватара сейчас вообще падает с "Unhandled Exception".
Не видел как там закрыли, но лучше было бы пересохранение картинки и установка имени типа avatar-<userid>.jpg (без какого-либо использования имени файла, переданного клиентом)

Во всяких
http://devacodemy.sellfiles.ru/admin/services/log/38
надо поставить правильный content-type и все спецсимволы в строках закодировать на \x3c, \x3e, \x22 и тп.

Цитата:
Кстати, а обнаружили его подбором, или все-таки где-то светится ссылка? (на dev2codemy отладочная информация показывается. в ней нашли?)
Взял отсюда http://dev2acodemy.sellfiles.ru/x

Остальные фиксы/баги не смотрел практически..
BlackFan вне форума  
Старый 02.04.2013, 19:19   #9
bulat
 
Регистрация: 29.03.2013
Сообщений: 7
Репутация: 0
Smile

Цитата:
Сообщение от BlackFan Посмотреть сообщение
При загрузке аватара сейчас вообще падает с "Unhandled Exception".
Не видел как там закрыли, но лучше было бы пересохранение картинки и установка имени типа avatar-<userid>.jpg (без какого-либо использования имени файла, переданного клиентом)
Примерно так и было реализовано с самого начала, кстати. Но когда реализовывали, так хитро выкрутили код и логику обработки ошибок, что умудрились сохранять с именем, присланным пользователем. =8[ ]

Потом переписали все прямолинейно, должно работать. (конечно, когда обратно на серваке папочки восстановим, а-то опять во время разработки что-то отключили)

Цитата:
Сообщение от BlackFan Посмотреть сообщение
Во всяких
http://devacodemy.sellfiles.ru/admin/services/log/38
надо поставить правильный content-type и все спецсимволы в строках закодировать на \x3c, \x3e, \x22 и тп.
Насколько критично закодировать спец-символы? И почему? (а-то его еще и раскодировать потом кругом) Или все же правильный content-type (application/json) во всех браузерах сработает по-человечьи? (кстати, может лучше вообще plain text указывать в content-type ?)

Цитата:
Сообщение от BlackFan Посмотреть сообщение
Взял отсюда http://dev2acodemy.sellfiles.ru/x
А, да - это отладочная информация. Так-то 404 и т.п. выдает. (как сейчас на devacodemy)
bulat вне форума  
Старый 03.04.2013, 22:57   #10
bulat
 
Регистрация: 29.03.2013
Сообщений: 7
Репутация: 0
По умолчанию

Цитата:
Сообщение от BlackFan Посмотреть сообщение
Во всяких
http://devacodemy.sellfiles.ru/admin/services/log/38
надо поставить правильный content-type и все спецсимволы в строках закодировать на \x3c, \x3e, \x22 и тп.
С \x3c отказался работать jQuery. Поставили \u003c и т.п.. Сделали замену для четырех символов: <, >, &, /
bulat вне форума  
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot