none
Дыра в безопасности у Win32 api-функции "PathFileExistsA". RRS feed

  • Вопрос

  • У меня есть папка: //sever/share folder/folder
    Я закрываю доступ к "folder".
    Юзер щёлкает два раза левой кнопкой мыши по "folder", появляется сообщение, что доступ закрыт.
    Но функция "PathFileExistsA" видит содержимое папки "folder".
    Если файл существует, то возвращается ошибка "5", если файла нет, возвращается ошибка "2".
    То есть программист, анализируя номер ошибки, может сделать вывод: есть в папке файл или нет.
    А по идее, если доступ к папке закрыт, то никто не имеет права смотреть содержимое папки: ни юзер, ни программа.

Ответы

  • Операционная система Window 7.

    Обратите внимание, что если я щёлкаю два раза левой кнопкой мыши по папке, к которой закрыт доступ, то появляется сообщение, что нет доступа.

    Значит и функция "PathFileExistsA" тоже должна сообщать, что нет доступа.

    Я так не думаю. С какой стати сообщение которое выводится конкретным приложением для конечного пользователя должно влиять на API?

    Давайте так: вы внимательно прочитайте все что я написал выше и приведете все детали. До этого момента продолжать беседу особого смысла не вижу.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Помечено в качестве ответа Vector BCOModerator 25 мая 2019 г. 21:02
    Модератор
  • Ясно. Я в принципе не планировал обсуждать, просто хотел сообщить, что есть проблема, как мне кажется.

    А в майкрософте уж пусть сами думают, что с этим делать.

    https://support.microsoft.com/en-us/help/4467230/assisted-software-support-options-assure-premium?ocid=ASSOAP_Purchasesupport

    если вы уверены что это уязвимость то за 50$ специально для вас ее закроют или расскажут что так и должно быть.

    Второй вариант был бы возможен и безплатно при условии если бы вы ответили на вопросы Ильи.

    К слову сказать личные контакты с МС есть у некоторых участников и опять таки при внятном и воспроизводимом кейсе инфа имела шанс попасть в корпорацию. Но забивать голову абстрактной проблемой без видимого сценария применения и необходимым временем на расколупывание вопроса никто не станет.


    The opinion expressed by me is not an official position of Microsoft

    • Помечено в качестве ответа Vector BCOModerator 25 мая 2019 г. 21:02
    Модератор

Все ответы

  • Где у вас есть данная папка? Как вы "закрыли" доступ? Где именно вы выполняйте данный код? 

    Так же опишите вариант использования данной предполагаемой уязвимости - полный сценарий который приводит к негативным последствиям и каким именно. 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    Модератор
  • У меня есть два компьютера, которые подсоединены к роутеру, и образуется локальная сеть из двух компьютеров.
    Я создал на одном компьютере папку (далее "сетевая папка"), открыл к ней доступ. В этой папке я создал другую папку ("папка"), но доступ к ней не открыл. В этой папке пусто: нет ничего.
    Затем я перешёл на второй компьютер, вижу сетевую папку, вижу в ней папку. Щёлкаю по папке два раза левой мышью, появляется сообщение, что нет доступа.
    Теперь я на втором компьютере запускаю функцию "PathFileExistsA":
    PathFileExists "\\server\сетевая папка\папка\файл.txt"
    Какой номер ошибки должна вернуть функция по вашему мнению?
  • У меня есть два компьютера, которые подсоединены к роутеру, и образуется локальная сеть из двух компьютеров.
    Я создал на одном компьютере папку (далее "сетевая папка"), открыл к ней доступ. В этой папке я создал другую папку ("папка"), но доступ к ней не открыл. В этой папке пусто: нет ничего.
    Затем я перешёл на второй компьютер, вижу сетевую папку, вижу в ней папку. Щёлкаю по папке два раза левой мышью, появляется сообщение, что нет доступа.
    Теперь я на втором компьютере запускаю функцию "PathFileExistsA":
    PathFileExists "\\server\сетевая папка\папка\файл.txt"
    Какой номер ошибки должна вернуть функция по вашему мнению?

    Два компьютера с неизвестными ОС и неизвестными файловыми системами которые работают через неизвестный сетевой протокол? Не очень детальное описание...

    Что значит "открыл к ней доступ"? Что значит "доступ к ней не открыл"? Чтоб было понятно что я спрашиваю, поясню что "доступ" совсем не "двоичный" в виде открыт/закрыт, а имеет разные разрешения/запреты на разные операции. Так же и имеется по меньшей мере два уровня проверки: на уровне сетевого подключения и на уровне файловой системы.

    Думаю что код ошибки скорее всего зависит от конкретных ACLs для конкретного пользователя и их наследования.

    Вы не привели сценария использования "уязвимости" который я попросил. Если вы не смогли придумать сценарий использования и описать негативные последствия, то видимо это не уязвимость, а всего лишь особенность API. Опять же, не ясно что должно было произойти так как вы "утаивайте" информацию.

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


    This posting is provided "AS IS" with no warranties, and confers no rights.

    Модератор
  • Операционная система Window 7.

    Обратите внимание, что если я щёлкаю два раза левой кнопкой мыши по папке, к которой закрыт доступ, то появляется сообщение, что нет доступа.

    Значит и функция "PathFileExistsA" тоже должна сообщать, что нет доступа.

  • Операционная система Window 7.

    Обратите внимание, что если я щёлкаю два раза левой кнопкой мыши по папке, к которой закрыт доступ, то появляется сообщение, что нет доступа.

    Значит и функция "PathFileExistsA" тоже должна сообщать, что нет доступа.

    Я так не думаю. С какой стати сообщение которое выводится конкретным приложением для конечного пользователя должно влиять на API?

    Давайте так: вы внимательно прочитайте все что я написал выше и приведете все детали. До этого момента продолжать беседу особого смысла не вижу.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Помечено в качестве ответа Vector BCOModerator 25 мая 2019 г. 21:02
    Модератор
  • Операционная система Window 7.

    Обратите внимание, что если я щёлкаю два раза левой кнопкой мыши по папке, к которой закрыт доступ, то появляется сообщение, что нет доступа.

    Значит и функция "PathFileExistsA" тоже должна сообщать, что нет доступа.

    Здравствуйте.

    Посмотрите https://docs.microsoft.com/en-us/windows/desktop/api/shlwapi/nf-shlwapi-pathfileexistsa , раздел "Возвращаемое значение" (Return value) - что именно возвращает функция и в каких случаях. Может я чего то непонимаю, но моё личное мнение - никакой "дыры в безопасности" тут нет и быть не может.:)


    Alexandr_Smirnoff

  • Отправьте это в Майкрософт, пусть там почитают, они должны понять, о чём я написал.

    Или вы никакого отношения к майкрософту не имеете? Если да, то можете дать ссылку или адрес, куда я могу написать?

  • Отправьте это в Майкрософт, пусть там почитают, они должны понять, о чём я написал.

    Или вы никакого отношения к майкрософту не имеете? Если да, то можете дать ссылку или адрес, куда я могу написать?


    Тут такие же люди как Вы. Это свободный форум. А тикеты у майкрософта если не ошибаюсь, платные.

  • Ясно. Я в принципе не планировал обсуждать, просто хотел сообщить, что есть проблема, как мне кажется.

    А в майкрософте уж пусть сами думают, что с этим делать.

  • Ясно. Я в принципе не планировал обсуждать, просто хотел сообщить, что есть проблема, как мне кажется.

    А в майкрософте уж пусть сами думают, что с этим делать.

    https://support.microsoft.com/en-us/help/4467230/assisted-software-support-options-assure-premium?ocid=ASSOAP_Purchasesupport

    если вы уверены что это уязвимость то за 50$ специально для вас ее закроют или расскажут что так и должно быть.

    Второй вариант был бы возможен и безплатно при условии если бы вы ответили на вопросы Ильи.

    К слову сказать личные контакты с МС есть у некоторых участников и опять таки при внятном и воспроизводимом кейсе инфа имела шанс попасть в корпорацию. Но забивать голову абстрактной проблемой без видимого сценария применения и необходимым временем на расколупывание вопроса никто не станет.


    The opinion expressed by me is not an official position of Microsoft

    • Помечено в качестве ответа Vector BCOModerator 25 мая 2019 г. 21:02
    Модератор