RDot

RDot (https://rdot.org/forum/index.php)
-   Аудит Web-приложений/Web Application Security Audit (https://rdot.org/forum/forumdisplay.php?f=27)
-   -   Аудит. (https://rdot.org/forum/showthread.php?t=2676)

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 отладочная информация показывается. в ней нашли?)
Спасибо за напоминание по админке!

Цитата:

Сообщение от BlackFan (Сообщение 31348)
Хранимая 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

Цитата:

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

Примерно так и было реализовано с самого начала, кстати. Но когда реализовывали, так хитро выкрутили код и логику обработки ошибок, что умудрились сохранять с именем, присланным пользователем. =8[ ]

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

Цитата:

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

Насколько критично закодировать спец-символы? И почему? (а-то его еще и раскодировать потом кругом) Или все же правильный content-type (application/json) во всех браузерах сработает по-человечьи? (кстати, может лучше вообще plain text указывать в content-type ?)

Цитата:

Сообщение от BlackFan (Сообщение 31369)
Взял отсюда http://dev2acodemy.sellfiles.ru/x

А, да - это отладочная информация. Так-то 404 и т.п. выдает. (как сейчас на devacodemy)

bulat 03.04.2013 21:57

Цитата:

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

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


Часовой пояс GMT +3, время: 22:32.

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