- 博客(468)
- 收藏
- 关注

原创 Shiro-550 动调分析与密钥正确性判断
Shiro-550 的根本原因:Shiro 1.2.4 及之前的版本中,AES加密的密钥默认硬编码在代码里,Shiro 1.2.4 以上版本官方移除了代码中的默认密钥,要求开发者自己设置,如果开发者没有设置,则默认动态生成,降低了固定密钥泄漏的风险。
2025-04-19 19:31:34
931
4

原创 使用 GZCTF 结合 GitHub 仓库搭建独立容器与动态 Flag 的 CTF 靶场+基于 Docker 的 Web 出题与部署+容器权限控制
关于 CTF 靶场的搭建(使用 CTFd 或者 H1ve)以及 AWD 攻防平台的搭建,勇师傅在前面博客已经详细写过,可以参考我的《网站搭建》专栏,前段时间玩那个 BaseCTF,发现它的界面看着挺不错的,了解到也是一个开源项目-GZCTF,网上未见有这方面的详细介绍,看了下网上都只是简单说了下怎么搭出 GZCTF 这个靶场的界面,然而对于后续题目的部署并未进行详细的介绍与说明,因此这里分享下自己的部署经验以及可能遇到的问题、注意点与解决方案。
2024-09-01 23:20:02
5894
2

原创 基于Cardinal的AWD攻防平台搭建与使用以及基于docker的题目环境部署
正常 ./ 执行我们需要一直在这个终端挂着,否则Cardinal 就会断掉,靶场页面也就无法访问。因为我们的 mysql 数据库下还没有 test 这个用户,我们需要手动创建并赋予权限 ,test 这个用户相当于是我们平台的一个后台管理账户,因此这里直接给 root 权限。这样,即使我们关闭终端,Cardinal 也会一直处于运行状态。。
2024-06-27 13:21:53
3123
1

原创 记录第一次使用U盘重装系统(win10专业版)的流程与总结
写在前面刚进大学那会儿不懂电脑,什么东西都往 C 盘装,以至于很多环境、文件这些都很乱尽管我已经把能移的都移动到 D盘了,能清理的东西也清理了,C 盘还是时不时会爆红刚好最近 CTF 比赛打得差不多了,因此勇师傅决定重装系统,现在回过头来看其实流程还是很简单,下面主要介绍个人重装过程中遇到的一些问题的解决办法和注意事项。正文开始。
2024-05-29 14:11:15
7270

原创 Fastjson 1.2.24 反序列化导致任意命令执行漏洞复现(CVE-2017-18349)
Fastjson 是一个 Java 库,用于在 Java 对象和 JSON 数据之间进行转换,它提供了一种简单而高效的方式来序列化 Java 对象为 JSON 格式的字符串,以及将 JSON 字符串反序列化为 Java 对象。Fastjson 支持各种类型的 Java 对象,包括预先存在但没有源代码的对象。
2024-03-09 19:46:13
4064

原创 log4j2 远程代码执行漏洞复现(CVE-2021-44228)
log4j 是 Apache 的一个开源日志库,是一个基于 Java 的日志记录框架,Log4j2 是 log4j 的后继者,其中引入了大量丰富的特性,可以控制日志信息输送的目的地为控制台、文件、GUI 组建等,被应用于业务系统开发,用于记录程序输入输出日志信息,log4j2 中存在JNDI注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞,成功利用该漏洞可在目标服务器上执行任意代码。
2024-03-08 15:43:00
18725
3

原创 DVWA 靶场之 Command Injection(命令执行)原理介绍、分隔符测试、后门写入与源码分析、修复建议
代替 localhost :在操作系统的配置文件中,通常将 localhost(本地主机名)与 127.0.0.1 绑定在一起,这样在应用程序中使用 localhost 时,实际上是在使用本地回环地址,用于访问本机上运行的网络服务和应用程序。在操作系统中,“ &、|、&&、|| ” 都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令。:对服务器和应用程序进行安全配置,关闭不必要的服务和功能,限制可执行命令的范围。
2024-02-26 11:50:13
7241
1

原创 利用ngrok实现内网穿透(全网最详细教程)
准备工具:1、用于在本地搭建网站2、用于将自己的本地端口暴露到公网上,从而实现内网穿透,注意:我前面提到过的闪退就是在这一步发生的,我的解决方法是重装ngrok并以管理员身份运行。至此,我们已经实现了内网穿透,通过将我们的本地端口暴露在特定域名地址的公网上,进而从公网访问到了内网的东西。
2023-11-26 13:36:51
31375
4

原创 CTF靶场搭建及Web赛题制作与终端docker环境部署
这种情况意思是docker需要我们指定下载镜像的版本号。哈喽大家好!我是Myon,趁着我的云服务器还没过期,这次给大家出一期很详细的CTF比赛的靶场搭建以及关于Web赛题的制作与docker环境的部署教程,由于本人能力有限,也只能给大家讲一些基础简单的东西,欢迎大家在评论区互相交流学习,希望通过这篇博客大家能学到一些新东西,也期待大家的关注和支持!
2023-11-22 19:26:29
10701
11

原创 PHP特性之CTF中常见的PHP绕过
一、关于md5()和sha1()的常见绕过1、使用数组绕过2、 使用特殊字符串绕过二、strcmp绕过三、switch绕过四、intval绕过
2023-07-18 14:32:22
7954
1

原创 如何解决桌面图标变白(原因及方法)
桌面图标变白 系统缓存出错 Windows命令 Windows快捷键 任务管理器 Windows资源管理器
2023-04-09 14:52:46
35225
24

原创 主动扫描-Nmap-端口、系统、服务扫描
一、使用Nmap进行端口扫描① SYN扫描② Connect扫描③ UDP扫描④ 端口扫描范围的确定二、使用Nmap扫描目标系统三、使用Nmap扫描目标服务3、Nmap的完善四、将Nmap的扫描结果保存为XML文件五、对Web服务进行扫描2、Web服务器的软件组成③ 服务器应用程序④ 操作系统3、以DVWA为目标的web服务扫描① dirb内容扫描 ② dirsearch内容扫描③ whatweb网络指纹识别
2023-03-25 21:08:01
16558
1

原创 Kali Linux 的常用命令
Kali Linux 的常用命令 1、与文件目录相关的命令 2、文件查看命令 3、网络相关命令 4、进程控制命令 其他常用命令 hosts文件 脚本编写
2023-03-12 20:07:31
10778
2
原创 [SWPUCTF 2024 秋季新生赛]不是哥们ret2text还阴啊?
通过分析栈结构发现缓冲区溢出漏洞,其中v1[56]数组可被覆盖。利用逐字节读取特性,先覆盖60字节数据至i变量地址,将其设为0x47。随后继续写入8字节至返回地址处(rbp+8),劫持为后门函数地址0x4011F1。最终成功获取flag:NSSCTF{7256ca63-a417-4a2d-9eb9-49ff78eb65d0}。
2025-05-26 19:32:55
121
原创 Partial Overwrite绕过PIE保护-[HNCTF 2022 WEEK2]ret2text
程序存在栈溢出漏洞,但因PIE保护导致地址随机化。利用PIE后12位固定特性,通过Partial Overwrite技术爆破后门函数地址(后四位0x11E5概率1/16)。编写exp循环发送payload(填充+后门地址),成功绕过PIE保护获取shell,得到flag:nssctf{W0w_You_byp@ss3d_PIE_You_are_gr3at!}。
2025-05-26 13:53:04
349
原创 栈迁移与onegadget利用[GHCTF 2025]ret2libc2
虽然 format 被初始化为 "hello world!"但是它就在 buf 下面,后面的 read 我们可以读入 0x60因此我们就可以覆盖 format,利用 printf 来泄露 libc 里的真实地址这里 rax 存的就是 buf,我们溢出后劫持程序到 0x401227,即指令:mov rdi, rax 后面再次执行 printf 函数,打印出真实地址,我们就可以计算 libc 基址了然后程序会继续执行 read 函数,我们又可以溢出,劫持到 system 从而 get
2025-05-25 00:19:26
871
原创 [GHCTF 2025]ret2libc1(NSSCTF)
本文介绍了一个利用栈溢出和逻辑漏洞完成的ret2libc攻击案例。首先通过see_it函数的逻辑漏洞(未校验负数输入)获取足够资金进入shop函数,再利用其栈溢出漏洞构造ROP链:先泄露puts函数真实地址,计算libc基址后获取system和/bin/sh地址,最终构造system("/bin/sh")调用获取shell权限。攻击过程涉及溢出偏移计算、GOT/PLT表利用、ROP链构造等技巧,最终成功获取flag。文章提供了完整的漏洞利用代码和分析过程。
2025-05-23 23:21:29
531
原创 [SWPUCTF 2024 秋季新生赛]ret2libc也阴嘛?(NSSCTF)
通过IDA反编译发现,main函数中的gets存在栈溢出漏洞,偏移量为56。虽然程序自带后门函数,但缺少/bin/sh字符串。利用gets函数,我们可以将/bin/sh写入可写段(如.bss段),然后通过ROP链调用system函数执行/bin/sh。具体步骤如下:首先,将可写地址存入rdi寄存器,调用gets函数接受输入并写入/bin/sh;接着,再次将/bin/sh的地址存入rdi,调用system函数。通过构造payload并发送,成功获取shell。
2025-05-23 18:42:21
239
原创 [NewStarCTF 2023 公开赛道]ret2libc(BUUCTF)
本文描述了一个典型的ret2libc漏洞利用过程。首先,通过IDA反编译发现main函数中的read函数存在溢出漏洞,但程序中没有直接提供/bin/sh字符串和system函数。通过puts函数泄露libc基址,进而计算system函数和/bin/sh字符串的地址。利用gadget构造payload,首先通过puts泄露地址,然后再次发送payload调用system函数执行/bin/sh,最终成功获取flag。整个过程展示了如何在没有直接提供libc文件的情况下,通过泄露地址和计算偏移来实现漏洞利用。
2025-05-22 11:26:50
347
原创 [NewStarCTF 公开赛赛道]ret2libc(BUUCTF)
本文描述了一个64位程序的栈溢出漏洞利用过程。程序开启了NX保护,且没有直接提供/bin/sh字符串和system函数。通过分析,作者采用了ret2libc攻击思路,利用puts函数泄露其真实地址,进而计算libc基址,获取system函数和/bin/sh字符串的地址。首先,通过构造第一个payload,利用pop_rdi和ret指令将puts函数的真实地址泄露出来,并返回到main函数。接着,构造第二个payload,将/bin/sh字符串地址传入rdi寄存器,调用system函数,最终成功获取shell
2025-05-20 13:19:08
711
原创 PWN基础-ROP技术-ret2syscall-64位程序栈溢出利用
后面传两个参数就可以了,分开写,一起写都可以的,这里就不做过多演示了。前置 ret2syscall 的基础我们就不做过多讲解了。execve 系统调用号是 59,也就是 0x3b。ida 看一下 main 函数,存在明显的栈溢出。看到有两个连一起的,当然我们也可以一个一个地传参。而 64 位系统调用最后是执行 syscall。32 位系统调用最后是执行 int x080。我们这里只用到前三个就可以了,以及 rax。这里看到的这个不对,因为后面没有 ret。正确的应该是 0x45BAC5。
2025-05-08 22:16:36
360
原创 CTF杂项入门(BUUCTF-Misc第一页)
题目涵盖:BUUCTF 第一页杂项。涉及工具:随波逐流、foremost、binwalk、honeyview、010editor、zipperello、archpr、wireshark、cyberchef、QR_Research、PNGCRC爆破、stegsolve、Audacity、河马、D盾、routerpassview、steghide,以及一些在线网站小工具。
2025-05-08 18:15:37
1218
原创 ROP链-BUUCTF-cmcc_simplerop(ret2syscall)
当然这个地址我们也可以通过符号表来找,因为这里的程序是静态链接的 ELF 文件,所有不能通过 plt 或者 got 表,因为压根就不存在。这样后面才能正常的 ret2syscall 传参,从而系统调用 execv。但是这里还有一个问题,程序没有类似于 pop [ecx] 这样的指令。利用思路类似,建议先看完我上面的这篇博客,我这里不再过多叙述。但是 read 函数执行后,它的三个参数还在栈顶上。
2025-05-08 16:25:15
368
原创 ROP链-BUUCTF-inndy_rop(ret2syscall)
因为 pop dword ptr [ecx] 一次只能写入 4 个字节,所以我们分两次写入 /bin/sh。静态链接就意味着没法去打 ret2libc 了,因为 ret2libc 需要用到动态链接库里面的系统函数。后面就是常规的 ret2syscall 了,即系统调用 execve。既然有对 [ecx] 操作的,那么我们就继续找弹出 ecx 的指令。注意到左侧函数表有很多的函数,说明这个程序是静态链接的。找一个具有写权限的段,一般都是在 bss 段。找了一下,没有字符串 /bin/sh。
2025-05-08 14:11:53
373
原创 PWN基础-ROP技术-ret2syscall突破NX保护
我们 ret2syscall 实际还是希望调用 execve,和 ret2shellcode 类似,只是多了堆栈不可执行。后面我们会继续发送内容(/bin/sh)给 read 函数,读取到 bss_addr。我们继续调用 execve,其 32 位系统调用号是 11,即 0xb。没有找到,因此我们后面需要手动将 /bin/sh 写到 bss 段。我们先系统调用 read,其 32 位系统调用号是 3,即 0x3。接下来我们找 /bin/sh 字符串的地址。32 位程序,小端序,开启了 NX 保护。
2025-05-07 20:10:29
356
原创 [第十五章][15.3.2 shellcode注入攻击]ret2shellcode+[NewStarCTF 公开赛赛道]ret2shellcode
[第十五章][15.3.2 shellcode注入攻击]ret2shellcode+[NewStarCTF 公开赛赛程序会直接输出 v4 的地址,我们将 shellcode 写到 v4,然后溢出返回到 v4 的地址即可。这里直接给了 buf 7 的权限,即可读可写可执行,那么 shellcode 肯定写到 buf 里。我们利用的溢出点在 v4,是第二次的 read,所以第一次随便输,第二次输入测偏移。拿到返回的报错地址:0x6161616161616168。偏移是 104,再提取一下 v4 的地址就可以了。
2025-04-30 18:24:14
599
原创 PWN基础-利用格式化字符串漏洞泄露canary结合栈溢出getshell
canary 所在地址为 0xffffcffc,内容为 0xe8ac1700。然后运行,期间会经过第一个 read 函数,随便输入:RRR。再看一下 canary 距离我们输入字符串的距离,偏移是 8。重新运行 canary 值会变:现在是 0x37133900。继续往下走,可以发现打印出的值就是 canary 的值。p 只显示了地址,x 还显示了地址处的内容。我们在栈上面找一下 0xe8ac1700。但是测试发现,输出结果多了一个换行符。这部分后面需要填充为垃圾数据。距离栈顶偏移值为 15。
2025-04-27 12:20:38
525
4
原创 浅谈第四届SWCTF勇师傅的两道题(gege+第三人称)
所以压缩包的密码就是你看到的那串字符串 base64 解密的结果,只是解密结果有乱码,看你怎么将这个密码传递给压缩包了。压缩包的加密算法是 AES,zipfile 库是不支持的,我们采用 pyzipper。附件是一个自解压文件(放了一点其他好东西,等一分钟就没事了)压缩包里也说了,图片就是隐写基操,改一下高度就可以了。页面没有功能点,F12 看源码,在响应头找到路径。直接解码肯定是乱码,因为我放的就是乱码。由于这里有密钥,直接改名字肯定不行。就是这样的啦,希望你们能学到新东西。随便填一个,拿到新路径。
2025-04-21 10:45:31
703
5
原创 ctfshow-web入门-特定函数绕过(web396-web405)
host 为有效 IP ,scheme需要包含 ~或者.或者php,path以/开头并且只包括字母数字。使用正则验证 host 是否为有效的 ip 地址,我们前面一直传的 127.0.0.1 肯定是有效的。其实它根本都有没过滤到我们,就用分号也是可以的。环境没有开启成功,后面能开了再看。
2025-03-28 19:30:43
555
1
原创 ctfshow-web入门-黑盒测试(web380-web385)
发现参数直接传给了 file_get_contents 函数,存在文件包含漏洞,后面自动拼接了 .php。是 md5 加密后的,sqlmap自动帮我们爆破到了其中两个,另一个可以通过 cmd5 碰撞到。我们这里并不是想拿 flag,而是想拿 admin 的密码,因此我们跑 users 表的字段。重新跑数据库,将数据库跑完,发现还有一个叫 ctfshow 的数据库。
2025-03-28 14:10:28
1217
原创 Windows 文件加密系统 EFS
适用对象:Windows 系统 + ntfs 格式磁盘。文件属性 -> 高级,加密内容以便保护数据。找到证书,刷新,在个人证书里会多出一个证书。win+R 键入 mmc 打开控制台。文件 -> 添加/删除管理单元...对于某个我们想要进行加密的文件。重启系统,加密文件已无法打开。如果密码错误也是无法导入的。此时文件又可以正常打开了。导出之后删掉原来的证书。
2025-03-10 22:09:42
321
原创 渗透测试-利用mitmdump联动BurpSuite处理JS加解密示例
mitmproxy 中的 miti 其实就是中间人攻击,在保障服务端与客户端正常通信前提下,通过指定自定义的 python 脚本,实现任意化定制自动发包测试。上面只是以一个简单的 base64 加密为例,实际上这种方法在 js 逆向加解密测试中非常重要,因为现在很多网站数据传输都存在加密,不可能手动一次次去解,就可以考虑 mitmdump 与 BurpSuite 的联动,相当于网站完全没有加密了。
2025-01-22 11:15:44
979
原创 ctfshow-re2 详解
将 Str 中的每个字符与 0x1F 异或,结果存储在 Str1 中,之后将 Str1 与字符串 "DH~mqqvqxB^||zll@Jq~jkwpmvez{" 进行比较,如果两个字符串相同则返回充值成功。那么这里处理的数据其实就是文件流 Stream 中的字节数据,即我们的文件 enflag.txt。定位关键函数 sub_401069 ,应该是对输入密钥 Str 进行了处理。继续跟进 sub_401A70 函数,就来到了加密逻辑的地方。判断为 RC4 算法,核心函数是 sub_4015E0。
2024-12-04 10:52:02
787
原创 ctfshow-web入门-SSRF(web351-web360)
通过 filter_var() 验证得到的 IP 地址是否为有效的公共 IP 地址,并且不是私有或保留地址。使用 gethostbyname() 将 URL 中的域名解析为对应的 IP 地址。使用 file_get_contents() 获取并输出该 URL 对应的内容。限制只能使用 http 或者 https 协议,并且禁止本地地址访问。匹配以 http://ctf. 开头,并且以 show 结尾。看到 curl_exec 函数,很典型的 SSRF。这次检测的是 127.0. 开头的。
2024-11-16 17:43:15
1472
原创 ctfshow-web入门-JWT(web345-web350)
F12 看到提示但是访问 admin 会重定向到 index.php提取 jwt 解码没有签名部分,只有 jwt 的前两部分 header 和 payloaduser 改成 admin,它这里没有声明加密算法,我们随便指定一个常见的 HS256。
2024-11-15 16:30:51
1252
1
原创 ctfshow-web入门-SSTI(web369-web372)下
当然,我们也可以按照上一题 {%print((lipsum|attr(gl)|string|list).pop(431))%} 的方法定位斜杠的位置,继续做拼接,按理来说是可行的,各位自行尝试,我只是觉得那样做复杂了。重新找一遍太折腾了,我们这里换 payload,不再构造数字了,直接用全角数字替换半角数字。看了其他wp发现这道题有更简单的方法,大家自行摸索,我这里还是做复杂了。因此我们前面构造的字符就会有区别,需要重新定位字符的位置。上一题演示的是外带,这里我们尝试反弹 shell。
2024-11-15 11:59:23
952
原创 ctfshow-web入门-SSTI(web361-web368)上
这个 payload 是一次性的,因为 pop 会删除里面的键,导致环境崩溃。对于这种没有过滤的,还有其他很多很多方法,这里就不列举了。前面的 payload 太长了,构造起来比较麻烦和乱。更保险的是使用 __getitem__ ,方法同上。(1)使用子类可以直接调用的函数来打。模糊测试看一下,过滤了 2 和 3。双大括号中过滤了 request。测试一下存在 SSTI 注入。并且 post 传参不允许。那就传给 cookie 吧。但是 {% %} 中可用。一起传给 cookie。
2024-11-13 17:21:26
906
原创 ctfshow-web入门-反序列化(web271-web278)
laravel 反序列化漏洞。public$admin=false; admin 默认是 false ,我们需要修改它为 true 才会进入 system。但是这里无法直接修改,我们可以采用 phar 文件来触发,当读取 phar 文件时,会自动反序列化 manifest 中的字符串,采用 phar 协议来读取即可。
2024-11-11 12:58:44
930
原创 ctfshow-web入门-反序列化(web265-web270)
_destruct() 在对象被销毁时会自动调用,我们只需要让 ctfshow 类正确被反序列化即可,但是直接传 ctfshow 会被检测,之后就会抛出异常,如果程序报错或者抛出异常就不会触发 __destruct() 了,因为 throw 那个函数回收了自动销毁的类,导致 __destruct() 检测不到有东西销毁,从而也就无法触发 __destruct()。拿到 flag:ctfshow{f5b30e4e-16e1-4fb2-ad07-c75c6c069453}admin/admin 可以登录。
2024-11-09 13:11:57
786
1
原创 ctfshow-web入门-反序列化(web260-web264)
session.serialize_handler 是用来设置 session 序列化引擎的,在 5.5.4 前默认是 php,5.5.4后默认是 php_serialize,在 PHP 反序列化存储的 $_SESSION 数据时如果使用的引擎和序列化时使用的引擎不一样,就会导致数据无法正确第反序列化,也就是 session 反序列化漏洞。要求传入的内容序列化后包含指定内容即可,在 PHP 序列化中,如果键名或值包含 ctfshow_i_love_36D,那么整个序列化结果也会包含这个字符串。
2024-11-08 13:04:46
1907
西南科技大学数电实验mutisim仿真与diamond源文件FPGA部分
2024-08-01
西南科技大学模电实验mutisim原理仿真与工程仿真源文件
2024-08-01
西科大模电、电磁波、计网期末复习题
2024-05-26
西科大数据结构实验课程代码
2024-05-26
西科大数据结构期末复习题
2024-05-26
模拟电子技术实验虚拟实验平台
2024-05-26
西南科技大学微机原理实验四(定时器程序设计)包含任务一与任务二的asm源文件附带LIB-TIM.OBJ文件
2023-12-16
数电实验考试综合设计mutisim及diamond仿真源文件(数值判别电路与十八进制计数器的设计)
2023-12-15
御剑1.5(含配置文件)
2023-12-15
Layer子域名挖掘机4.2纪念版
2023-12-15
goby-红队专用版-for-Windows
2023-12-15
16+进制计数器(基于两片74LS160D实现高进制计数器)数电实验考试内容之一
2023-12-13
西科大数电实验五(用计数器设计简单秒表)mutisim仿真源文件
2023-12-12
西科大数电实验四(基本触发器逻辑功能测试及FPGA的实现)diamond仿真源文件(波形图)包括D、JK、RS
2023-12-11
西科大数电实验四(基本触发器逻辑功能测试及FPGA的实现)mutisim仿真源文件
2023-12-11
随波逐流CTF解码工具
2023-10-08
IDA-Pro-7.7-全插件版
2023-07-09
ARCHPR 密码恢复破解工具
2023-07-09
Seay源代码审计系统(AWD必备)
2023-07-09
Githack(Git泄露利用必备工具)
2023-07-09
AWD比赛各类必备脚本
2023-07-09
HVV行动各大厂商面试总结
2023-07-09
蓝桥杯单片机(IAP15F2K61S2)资源数据包-2023
2023-07-09
Bandizip(专业版)
2023-07-09
D盾-webshell检测必备工具
2023-07-09
win10重装系统后wifi不见了是缺少网卡驱动吗
2024-05-27
edusrc挖掘干货
2024-03-25
腾讯云服务器的数据如何迁移到阿里云服务器上
2023-11-30
关于#服务器#的问题:想问一下物理服务器该怎么搭建和部署啊(相关搜索:云服务器)
2023-11-27
轻薄本推荐#ThinkPad#mac
2023-09-07
云服务器中了挖矿马怎么处理?
2023-09-07
增强型mosfet是vccs器件吗?必须依靠栅极外加电压才能产生反型层吗?
2023-06-11
如何基于一个IP搭建多个网站(博客和靶场)
2023-05-19
docker-comppse执行报错
2023-05-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人