认识 URL 各个部分及其作用
2022-11-22 13:19:26317浏览
我们上网的时候通常需要输入网址,渗透中也可能需要构造网址,这就要求我们对网络地址有一定的了解。

一、什么是 URL

1. 最直观的理解——网址

URL 的全称是“统一资源定位符”,其设计目的是用来定位网络上的各种资源:图片、视频、音频……

你可以把它理解为:对应的资源在网络上的地址,也即网址。

2. 一个网页里可能访问多个资源

现在我们所能访问到的绝大多数网页都由很多各种资源组成,最常见且可见的是图片,而在我们肉眼看不到的地方, 网页还会自动加载 CSS 文件来美化网页样式、加载 JavaScript 来丰富网站的功能、加载 WASM 来进行高性能的计算……

每一个资源通常都对应着其自己的 URL 。

二、URL 的组成

以易锦网校的网址为例,她长这样:

https://ke.yijincc.com/series/XL100095xxxxxx?uname=7957865

1. 协议

URL 中第一对双斜杠前面的内容叫做协议,浏览器地址栏访问的一般是 http 协议和 https 两种协议。

  • http——超级文本传输协议,网站的默认协议
  • https——安全超级文本传输协议 ,加密传输的 http 协议

2. 域名或 IP

双斜杠后面的 ke.yijincc.com ,叫做域名,域名通常由个人或公司买下并持有。

一旦公司买下了 yijincc.com 这个域名,公司可以自由部署 ke.yijincc.com 、www.yijincc.com 等不同的域名,这些域名叫做子域名。

但是有些时候我们也可以使用 IP 来访问网站,例如我们搭建在本地的靶场。

不管是域名还是 IP ,都是用来帮助我们连接到服务器的,所以这一部分简而言之,是服务器所在的网络地址。

3. 路径

域名后面的含有斜杠的内容 /series/XL100095xxxxxx 叫做路径。

一个网站上往往有很多页面,一般会给每个网页分配一个路径,有时候这些路径也代表着不同的接口、或者说服务。

这一部分是帮助我们寻找到资源的,所以简而言之是网络资源在服务器上的位置。

4. 参数

URL 中问号后面的内容叫做参数,表示由用户提供给服务器的额外的信息。

参数由参数名和值组成,格式为:

参数名=参数值

例如 uname=7957865 这一对参数,表示的就是给服务器一个名为 uname 的参数,它的值是 7957865 。

服务端处理参数的时候可能会出现漏洞,往往是整个网站沦陷的开始。

三、URL 的其他部分

我们上面展示的是最常见的 URL 形式,其实 URL 中还有其他部分,因为除了协议和域名之外,URL 中所有的其他部分如果没有用到,都是可以省略的。

1. 端口

端口放在域名或 IP 后面,使用英文冒号(:)隔开,是一个数值。

  • http 对应 80 端口;
  • https 对应 443 端口。

👆由于浏览器会根据协议选择端口,所以通常会隐藏端口,除非服务端把 http 服务运行在其他端口。

2. 哈希

哈希通常放在 URL 最后,使用 # 号隔开,但哈希是不会被传递给服务端的,所以通常没有什么价值。

3. 非常罕见的部分——账号和密码

其实 URL 里也是可以带入账号和密码的,带有账号密码的 URL 长得像这样:

https://lihua:abcd1234@ke.yijincc.com/

👆这表示使用名为 lihua 的用户名+密码 abcd1234 尝试登录。

不过由于绝大部分网站出于加密需求,不采用这种方式登录,所以不要视图从这里对网站进行暴破。

但是,有些漏洞利用会不允许 URL 通过,而开发人员可能不会特意过滤这种格式的 URL ,这种时候可以尝试使用这种格式来绕开过滤。

友情链接: