PDA

Просмотр полной версии : Аудит.


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

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

P.S. Там не PHP.

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

BlackFan
30.03.2013, 08:17
С доступом без авторизации к админке и управлением курсами совсем беда.
http://dev2acodemy.sellfiles.ru/admin/wannateach/
http://dev2acodemy.sellfiles.ru/admin/loglist

BlackFan
30.03.2013, 08:46
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, 08:59
Хранимая 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/

bulat
30.03.2013, 18:24
Большое спасибо!

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

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

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

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

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

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

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

Хранимая xss через UA
...

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

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

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

bulat
30.03.2013, 23:54
На 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, 20:56
Дозаткнули FPD и XSS через сообщения об ошибках.

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

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


Еще какие-нибудь уязвимости?

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

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

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

Остальные фиксы/баги не смотрел практически..

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

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

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

Взял отсюда http://dev2acodemy.sellfiles.ru/x
А, да - это отладочная информация. Так-то 404 и т.п. выдает. (как сейчас на devacodemy)

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

С \x3c отказался работать jQuery. Поставили \u003c и т.п.. Сделали замену для четырех символов: <, >, &, /

bulat
11.04.2013, 16:57
Аудит системы окончен.

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