Добавляет ли атрибут страницы trace = true в aspx все эти серверные переменные и раскрывает ли локальный IP-адрес в HTML? - PullRequest
1 голос
/ 16 июня 2020

Я ломал голову над тем, что могло бы раскрыть IP-адрес сервера размещенного решения. В соответствии с отчетом пентестера я обнаружил следующее.

Примечания на скриншоте:

  • Я размыл URL-адрес веб-сайта

  • Выделено: default.aspx

  • IP-адрес сервера показан в прямоугольнике на скриншоте.

Pen tester report

Содержимое default.apsx (выделенное имя файла на скриншоте)

<%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="True" Inherits="umbraco.UmbracoDefault" trace="true" validateRequest="false" %>

Мой вопрос:

Согласно MSDN для этого проблема, я подозреваю, что атрибут trace="true" выдает IP.

Может ли это выдавать IP?

Кроме того, повлияет ли это на ведение журнала, которое присутствует в коде, если я переключу его на false ?

Примечание: Как разработчику мне не разрешен доступ для отладки этой проблемы в производственной среде, так что это один из тех случаев, когда мне приходится работать над инстинктами и подозрениями.

Обновление:

Я вижу одну строку кода в другом файле, хотя я исследовал, что он не должен возвращать жестко закодированные IP-адреса. Но дайте мне знать, если вы думаете, что удаление этого может быть решением. Это часть Page_Load функции

Response.AddHeader("REFRESH", "0; URL=https://" + Request.ServerVariables["SERVER_NAME"] + Request.ServerVariables["PATH_INFO"] + (strQueryString == "" ? "" : "?" + strQueryString));

1 Ответ

1 голос
/ 02 июля 2020

Мне удалось найти 2 решения этой проблемы. Я хотел бы опубликовать его здесь на случай, если он кому-то поможет в будущем.

Решение на стороне кода

Оказывается, виновником здесь был trace=true. Основываясь на документации здесь , благодаря @ user2864740 я попытался изменить его обратно на false, и он остановил трассировку.

На стороне сервера решение

Кроме того, мы также можем полностью отключить сообщения трассировки в производственной среде, используя сущность в IIS - Фильтрация запросов

Отключить HTTP TRACK и TRACE

Чтобы отключить команду HTTP TRACK, следуйте инструкциям ниже. Эта уязвимость может быть помечена из-за разрешения команды HTTP TRACE, поэтому рекомендуется отключить обе.

  • Go для диспетчера IIS
  • Щелкните имя веб-сайта
  • Дважды щелкните «Фильтрация запросов» (если вы не видите значок фильтрации запросов, установите его)
  • Go на вкладку «HTTP-команды»
  • Нажмите «Deny Verb» »В меню« Действия ». Введите «СЛЕД». Нажмите «ОК»
  • Нажмите «Запретить команду» в меню «Действия». Введите «ТРЕК». Нажмите «ОК»

ref1

Testing

If you want to test if this setting works, you can try to send a TRACE request to IIS via telnet. If it fails with 404 code, it means this request is blocked. Steps to test the setting:

  • In your client machine, open Command Prompt
  • Type telnet 80
  • Type the text below. Continue to enter characters even though the window won’t show what you are typing
    1. TRACE / HTTP/1.1
    2. Host: websitedomain.com
    3. HostA: Hello
  • Hit Enter twice

If it shows HTTP/1.1 404 Not Found, it means the setting is working. TRACE is disabled:

ref4

If it shows HTTP/1.1 200 OK, it means the setting is not working. TRACE is allowed:

ref5

Единственным недостатком этого метода является то, что вы вообще не увидите никаких сообщений трассировки. Так что, если это кажется проблемой, вам следует go с решением на стороне кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...