Как безвредный сканер обошел аутентификацию WebForms и перехватил сеанс пользователя?

Прошлой ночью клиент позвонил, отчаянно, потому что Google кэшировал версии информации о частных сотрудниках. Информация недоступна, пока вы не авторизуетесь.

Они сделали поиск Google для своего домена, например:

site:example.com

и заметил, что Гугл сканировал и кэшировал некоторые внутренние страницы.

Глядя на кэшированные версии страниц самостоятельно:

Это гуглс кешемhttps://example.com/(F(NSvQJ0SS3gYRJB4UUcDa1z7JWp7Qy7Kb76XGu8riAA1idys-nfR1mid8Qw7sZH0DYcL64GGiB6FK_TLBy3yr0KnARauyjjDL3Wdf1QcS-ivVwWrq-htW_qIeViQlz6CHtm0faD8qVOmAzdArbgngDfMMSg_N4u45UysZxTnL3d6mCX7pe2Ezj0F21g4w9VP57ZlXQ_6Rf-HhK8kMBxEdtlrEm2gBwBhOCcf_f71GdkI1))/ViewTransaction.aspx?transactionNumber=12345, Это снимок страницы, как он появился 15 сентября 2013 г. 00:07:22 GMT

Я был смущен длинным URL. Скорее, чем:

https://example.com/ViewTransaction.aspx?transactionNumber=12345

была вставлена длинная строка:

https://example.com/[...snip...]/ViewTransaction.aspx?transactionNumber=12345

Мне потребовалось несколько минут, чтобы вспомнить: это может бытьсимптом ASP.net "сеансы без печенья ", Если ваш браузер не поддерживаетSet-Cookieсайт будет вставлять куки в URL.

Кроме нашего сайта нетне использовать это.

И даже если наш сайтсделал автоматическое обнаружение сеансов без файлов cookie, и Google удалось убедить веб-сервер передать ему сеанс в URL, как он перешел к другому пользователю »сессия?

Да,Google не злой бот похитил сессию

Сайт сканируется ботами в течение многих лет. И прошедшее 29 мая ничем не отличалось.

Google обычно начинает сканирование, проверяяrobots.txt файл (мы неесть). Но никто не имеет права что-либо готовить на сайте (в том числеrobots.txt) без предварительной проверки подлинности, поэтому она не работает:

Time      Uri                      Port  User Name         Status
========  =======================  ====  ================  ======
1:33:04   GET /robots.txt          80                      302    ;not authenticated, see /Account/Login.aspx
1:33:04   GET /Account/Login.aspx  80                      302    ;use https plesae
1:33:04   GET /Account/Login.aspx  443                     200    ;go ahead, try to login

Все это время Google искал файл robots.txt. Такого никогда не было. Затем он возвращается, чтобы попытаться сканировать корень:

Time      Uri                      Port  User Name         Status
========  =======================  ====  ================  ======
1:33:04   GET /                    80                      302    ;not authenticated, see /Account/Login.aspx
1:33:04   GET /Account/Login.aspx  80                      302    ;use https plesae
1:33:04   GET /Account/Login.aspx  443                     200    ;go ahead, try to login

И еще одна проверка robots.txt на защищенном сайте:

Time      Uri                      Port  User Name         Status
========  =======================  ====  ================  ======
1:33:04   GET /robots.txt          443                     302    ;not authenticated, see /Account/Login.aspx
1:33:04   GET /Account/Login.aspx  443                     200    ;go ahead, try to login

А затем таблица стилей на странице входа в систему:

Time      Uri                      Port  User Name         Status
========  =======================  ====  ================  ======
1:33:04   GET /Styles/Site.css     443                     200    

И этоКак работает каждый обход GoogleBot, msnbot и BingBot. Роботы, логин, безопасный, логин. Никогда никуда не денется, потому что не может пройтиАутентификация веб-форм, И все хорошо с миром.

До одного дня; из ниоткуда

До тех пор, пока однажды не появится GoogleBot с файлом cookie сеансав руке!

Time      Uri                        Port  User Name            Status
========  =========================  ====  ===================  ======
1:49:21   GET /                      443   [email protected]  200    ;they showed up logged in!
1:57:35   GET /ControlPanel.aspx     443   [email protected]  200    ;now they're crawling that user's stuff!
1:57:35   GET /Defautl.aspx          443   [email protected]  200    ;back to the homepage
2:07:21   GET /ViewTransaction.aspx  443   [email protected]  200    ;and here comes the private information

Пользователь,[email protected] не был зарегистрирован более суток. (Я надеялся, что IIS предоставил один и тот же идентификатор сеанса двум одновременным посетителям, разделенным перезаписью приложения). И наш сайт (web.config) не настроен для включения сеансовых файлов cookie. И сервер (machine.config) не настроен для включения сеансовых файлов cookie.

Так:

как Google получил файл cookie без сессии?как Google завладеладействительный безсессионный cookie?как Google завладеладействительный безсессионный cookie, принадлежавший другому пользователю?

Совсем недавно, 1 октября (4 дня назад), GoogleBot былеще обнаружение, cookie в руке, вход в систему под этим пользователем, сканирование, кэширование и публикация, некоторые из их личных данных.

КакGoogle обход вредоносного веб-сканераWebForms аутентификация?

IIS7, Windows Server 2008 R2, один сервер.

Теории

Сервер не настроен на выдачу сеансов без файлов cookie. Но игнорируя этот факт, как Google может обойти аутентификацию?

GoogleBot посещает веб-сайт и пытается выбрать случайные имена пользователей и пароли(маловероятно, что в журналах нет попыток войти)GoogleBot решил вставить в строку URL случайный сеанс без файлов cookie, и он совпадал с сеансом существующего пользователя.(скорее всего, не)Пользователю удалось выяснить, как заставить веб-сайт IIS возвращать URL без файлов cookie(скорее всего, не), а затем вставил этот URL на другой веб-сайт(скорее всего, не)где Google нашел URL без файлов cookie и просканировал егоПользователь работает через мобильный прокси(которому они'повторно нет), Прокси-сервер неt не поддерживает файлы cookie, поэтому IIS создает сеанс без файлов cookie. Это (например,Opera Mobile) сервер кеширования был взломан(скорее всего, не) и все кешированные ссылки размещены на хакерском форуме. GoogleBot просканировал хакерский форум и начал переходить по всем ссылкам; в том числе наш[email protected] URL сеанса без файлов cookie.У пользователя есть вирус, который успокаивает любые веб-серверы IIS и возвращает URL без файлов cookie. Этот вирус затем возвращается в штаб-квартиру. URL-адреса публикуются на общедоступном ресурсе, который сканирует GoogleBot. Затем на нашем сервере появляется GoogleBot с URL-адресом без файлов cookie.

Ничто из этого не является правдоподобным.

Как можетGoogle не вредоносный веб-сканер обходит аутентификацию WebForms и захватывает пользователяСуществующая сессия?

Что ты спрашиваешь?

Я недаже не знаюкак веб-сайт ASP.net, который не настроен на выдачу сеансов без cookie, может выдавать сеанс без cookie. Возможно ли обратное преобразованиеидентификатор сеанса на основе файлов cookie видентификатор сеанса без файлов cookie? Я мог бы процитировать соответствующие разделweb.config а такжеmachine.configи показать нет присутствия


Как веб-сервер решает, что браузер нене поддерживает куки? Я пытался заблокировать файлы cookie в Chrome, и мне никогда не давали идентификатор сеанса без файлов cookie. Могу ли я смоделировать браузер, который не поддержка файлов cookie, чтобы убедиться, что мой сервер не выдает сеансы без файлов cookie?

Решает ли сервер сеансы без файлов cookieUser-Agent строка? Если так, я мог бы установить Internet Explorer с поддельным UA.

Идентификация сеанса в ASP.net зависит исключительно от файла cookie? Может ли кто-нибудь с любого IP с URL-адресом cookie получить доступ к этому сеансу? Разве ASP.net по умолчанию тоже не учитывает?

Если ASP.netделает связать IP-адрес с сеансом, неЭто означает, что сессия не можетt произошли от сотрудника на их домашнем компьютере? Потому что тогда, когда сканер GoogleBot попытался использовать его с Google IP, он потерпел бы неудачу?

Были ли где-нибудь (кроме того, на который я ссылался) экземпляры ASP.net, когда он выдавал сессии без файлов cookie?не настроен на? Есть ли проблема с Microsoft Connect?

Известно ли, что аутентификация Web-Forms имеет проблемы и не должна использоваться для безопасности?

Чтение бонусовПарень из StackOverflow, которыйвеб-сервер иногда выдает URL без файлов cookie, когдане настроен на

редактировать: Удалено имяGoogle бот, который обошел привилегию, так как люди отстают в затылках; запутаннымGoogle имя гусеничного для чего-то другого. я используюGoogle имя сканера в качестве напоминания о том, что это не злонамеренный веб-сканер смог его отсканироватьпуть в другого пользователяс WebForm 'сессия. Это должно противопоставить его вредоносному сканеру, который пытался проникнуть в другого пользователя.сессия. Ничего подобного педанту, чтобы вызвать обострение.

Ответы на вопрос(2)

Ваш ответ на вопрос