Добавление SMB в Windows, насколько это безопасно?
Я наткнулся на небольшой взлом, который утверждает, что он включает smb: // на окнах.
Жалоба была на то, что такие вещи, как <a href="\\computername\path\file.ext">text</a>
не работал
Несмотря на то, что вы можете использовать file: ///// в своих URL, пользователь хотел использовать smb: //, чтобы он был кроссплатформенным.
Взлом происходит следующим образом:
1) Создайте этот Reg-файл, сохраните и выполните его:
REGEDIT4
[HKEY_CLASSES_ROOT\smb]
@="URL:smb Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\smb\shell]
[HKEY_CLASSES_ROOT\smb\shell\open]
[HKEY_CLASSES_ROOT\smb\shell\open\command]
@="\"C:\\smb.bat\" \"%1\""
И затем создайте файл smb.bat в вашей C-папке, содержащий это:
@echo off
cd C:\
set url=%~dpnx1
explorer \%url:~7%
exit
Мой вопрос: насколько это безопасно и какие-либо другие мысли по этому поводу? Помимо файла: /////, что я имею в виду.
3 ответа
Для меня это выглядит чертовски опасно, поскольку позволяет любому веб-сайту размещать URL-адреса "\\RESOURCENAME", которые будут работать независимо от контекста, и smb.bat
будет вызван, если вы нажмете такую ссылку. Я не совсем понимаю синтаксис пакета (особенно часть), но мне кажется, что можно передать любой аргумент explorer.exe
,
Вероятно, нет непосредственной опасности, потому что очень маловероятно, что злоумышленник предположит, что вы настроили это. Тем не менее, безопасно это не так.
Я бы предпочел, чтобы сервер обнаруживал для Windows-клиентов схему вывода \servername\path для тех и smb:// для всего остального.
Не говоря уже о том, что SMB - не единственный протокол, который использует этот синтаксис, как и любая другая файловая система, такая как WebDAV. Хотя это несколько умная идея, и я бы хотел, чтобы smb:// тоже работал.