Skip to content
📌知识点小结
  • URL(统一资源定位符)就是网页/资源在网络上的“完整地址”。
  • 典型结构:协议://主机(域名/IP):端口/路径?查询参数#片段。
  • 查询字符串以 ? 开始,用 key=value&key2=value2 传参数;# 后是页内锚点、不会发给服务器。
  • 路径对应服务器上的资源/路由;很多 Web 漏洞的参数就藏在 URL 和查询串里。
  • 要能看懂并拆解 URL,这是分析请求、构造测试的基本功。
自测一下

0.18 URL 结构拆解:地址栏那一长串在说什么

第〇篇「零基础预科」免费。这一篇把 URL 逐段拆开,让你彻底看懂地址栏。

一、URL 是什么

URL(Uniform Resource Locator,统一资源定位符) 是互联网上某个资源的完整地址,告诉浏览器:用什么协议、连哪台机器、找哪个资源、附带什么参数。

二、逐段拆解

以这个 URL 为例:

https://gysec.top:443/wiki/deser-lazymap?from=home&tab=paid#section-2
└─┬─┘  └───┬───┘ └┬┘ └────────┬─────────┘ └──────┬───────┘ └───┬───┘
 协议      主机    端口       路径              查询串          片段
部分例子含义
协议 schemehttps://用什么协议(http/https)
主机 hostgysec.top域名或 IP
端口 port:443可省略(https 默认 443,http 默认 80)
路径 path/wiki/deser-lazymap服务器上的资源/路由
查询 query?from=home&tab=paid传给服务器的参数
片段 fragment#section-2页内定位,不发给服务器

三、查询字符串详解

?id=1&name=abc&debug=true 为例:

  • ? 开始;
  • 多个参数用 & 连接;
  • 每个参数是 键=值
  • 特殊字符会被百分号编码(如空格成 %20、中文成 %E4...)。

你的网站链接里出现过 ?utm_source=gysec&utm_medium=about...,那就是一组用来统计流量来源的查询参数;?preview=member 则用来在本地模拟会员态。

四、路径与片段

  • 路径:决定服务器把请求交给哪个页面/接口,本系列用的是"slug"(如 /wiki/deser-lazymap),编号不进 URL,改编号不会断链;
  • 片段 #:只在浏览器内用于滚动到某个标题/锚点,不会随请求发给服务器
  • 结尾的 / 表示目录(如 /wiki/),有时有无斜杠会被当作不同地址。

五、安全视角

URL 是 Web 攻击输入的主要载体之一:

  • 查询参数被拼进 SQL → SQL 注入
  • 参数被拼进系统命令 → 命令注入
  • 参数被拼进文件路径 → 路径穿越
  • 参数里塞 URL → SSRF
  • 所以测试时第一件事,往往就是找出所有参数、观察它们被怎么使用

六、本篇小结

  • URL = 协议 + 主机 + 端口 + 路径 + 查询串 + 片段。
  • 查询串 ?k=v&k2=v2 传参,片段 # 仅浏览器内、不发服务器。
  • 路径决定路由,slug 与编号解耦;特殊字符需百分号编码。
  • 各类注入/穿越/SSRF 的输入常就在 URL 参数里。

下一篇 0.19 把整个过程串起来:从按下回车到页面出现,中间发生了什么。