0x1 前言
在云栈社区经常能看到师傅们分享类似的实战复盘,这篇也属于内部授权项目的一次完整记录。先声明一下:本次分享的渗透测试全程持有授权,文中所有漏洞均已修复,相关截图也做了脱敏打码处理,不涉及任何未授权、有害的渗透测试、漏洞挖掘或攻防行为。

项目周期为一个星期,总共提交了 18 份有效漏洞报告。前几天先做内部渗透测试,后面切换成内部模拟攻防演练,最后一天安排了钓鱼演练。文章主要想和师傅们聊聊,拿到指定资产后如何系统性地做信息收集,以及收集到资产后怎么快速有效地打点。这些都是我自己实战中的经验总结,不足之处欢迎补充。
后面会分享几个典型案例。因为很多漏洞报告特征太明显,就不拿出来了,挑了有代表性的几个讲,希望大家都能有收获。

0x2 攻防演练的简介和注意事项
一、什么是攻防演练
攻防演练是一种模拟真实攻击与防御的活动,核心目标是评估并提升组织的安全防护能力。演练中,红队扮演攻击方发起各类攻击,蓝队则负责检测、阻断和响应。
二、攻防演练的步骤
- 规划和准备:确定演练的目标、范围和规则,制定攻击方案与防御策略,准备相应的工具和环境。
- 攻击模拟:红队利用各种攻击技术和工具模拟真实入侵,如网络渗透、社会工程、恶意软件传播等,以此检验目标的安全防护与响应能力。
- 防御检测:蓝队借助安全监控工具和技术(IDS、IPS、日志分析等)监测并发现红队行为,及时报告。
- 攻防对抗:红蓝双方直接交锋,红队尝试绕过防御,蓝队尽力阻断攻击、修复漏洞、提升防护。
- 分析和总结:演练结束后复盘攻防过程,评估安全弱点与改进空间,制定后续安全计划。
攻防演练既能帮助组织发现并修复漏洞、提升防护水平,也能锻炼安全团队的实战技能,是保护信息资产和业务安全的重要手段。
三、攻防演练常见丢分项和得分项
常见的丢分项
- 漏洞未修复:目标系统存在已知漏洞但未及时修补,被红队利用。
- 弱密码和默认凭证:系统使用弱口令或默认凭证,导致红队轻松获取访问权限。
- 安全配置不当:开放了不必要的服务或权限设置不合理,被红队利用。
- 未发现攻击行为:蓝队未能及时发现或有效监测红队攻击。
- 未能及时响应和阻止攻击:蓝队响应迟缓,未能采取有效防御措施。
常见的得分项
- 漏洞修复和安全补丁:及时修复已知漏洞并安装最新安全补丁。
- 强密码和凭证管理:使用强密码并妥善管理凭证。
- 安全配置和权限控制:安全配置正确、权限控制合理。
- 发现和报告攻击行为:蓝队能及时发现并上报红队攻击。
- 有效的防御和响应措施:蓝队采取有效措施及时阻断攻击。
得分项和丢分项的具体评判标准会因不同攻防演练规则和目标而有所差异。

0x3 指定资产收集与打点思路
一、信息收集/资产收集
拿到的站点首页是一个公司官网。面对这种域名,直接开始信息收集就行。

这里先推荐爱企查和风鸟这两个公司资产收集平台。爱企查很多功能收费,但资产数据全;风鸟免费,两者配合使用效果更好。

风鸟还可以搜索相关的 APP 资产。

先拿公司名称到工信部 ICP/IP 地址/域名信息备案管理系统,查询备案号以及备案的域名、网站、小程序和 APP 等。

拿到备案号后,再用搜索引擎搜索备案号,进而导出相关域名。


建议使用无影这类支持多搜索引擎聚合的工具,一次性调用多个搜索引擎并快速导出域名资产。

这样就能导出相关域名,而且收集的资产会比较全面。

最后还可以用 ENscan 爬取网络上该公司相关的资产信息并导出。

跑出来的资产数据可以整理归类,再与前面收集到的站点域名汇总。

二、子域名/IP 网段收集
子域名收集我常用的组合是 ARL 资产灯塔 + OneForAll + 空间引擎。把主域名相关资产丢进 ARL 去跑。

ARL 扫描完成后,用自带的导出功能选择需要的数据导出即可。

再把主域名放入 OneForAll 跑一遍,收集对应的子域名。

最后叠加空间引擎搜索到的子域名,统一去重。

IP 网段的整理,推荐把上述工具收集到的 IP 资产放到无影工具里做资产归集,直接得到网段。

比如下面这个 IP 段,可以这样用 FOFA 搜索来发现更多存活域名资产:
ip="69.197.157.0/24" && is_domain=true
ip="69.197.157.1/20"

三、资产打点
这里推荐无影的 Web 指纹识别功能,可以直接对导入的域名和 IP 做探活与指纹检测。

快速打点的一个有效方式是用 ARL 扫描敏感文件泄露。师傅们可以先去网上搜索如何修改配置文件,把默认的敏感文件字典替换成自己收藏的大字典,效果会好很多。具体参考这篇文章:https://blog.csdn.net/mashiro_hibiki/article/details/138245669 ,核心就是修改 /app/dicts/ 目录下的 file_top_2000.txt 文件。下面是我的字典文件,对应调整 ARL 配置即可。

如果还没装 ARL,推荐看下地图大师的 B 站课程,安装过程很简单,配置操作参考上面那篇 CSDN 博客就行。
【地图大师src漏洞挖掘番外篇】ARL资产灯塔自救指南】 https://www.bilibili.com/video/BV14W421R77j/?share_source=copy_web&vd_source=268f8d699ac32cf11e9bdc248399c5bd

等 ARL 跑完后,就可以在文件泄露模块查看结果了。

另外,我在无影探测完资产后有个习惯:如果某个域名访问报错或信息极少,会用 Google 语法再搜一遍,有时能找到该站点的存活路径,从而继续打这个站点的资产。比如访问 http://xxxxx.xxx.com 显示下面这种报错,很多人到这里就放弃了。

这时可以用 Google 的 site:域名 语法尝试,有时候能找到站点的其他访问路径。


下面是我收藏的一些 Google 语法,分享给师傅们:
注入漏洞:
site:edu.cn inurl:id|aspx|jsp|php|asp
文件上传:
site:edu.cn inurl:file|load|editor|Files
前台登录:
site:edu.cn intext:管理|后台|登陆|用户名|密码|验证码|系统|帐号|手册|admin|login|sys|managetem|password|username
site:edu.cn inurl:login|admin|manage|manager|admin_login|login_admin|system|boss|master
敏感信息搜索:
site:edu.cn ( "默认密码" OR "学号" OR "工号" )
后台接口和敏感信息探测:
site:edu.cn (inurl:login OR inurl:admin OR inurl:index OR inurl:登录) OR (inurl:config | inurl:env | inurl:setting | inurl:backup | inurl:admin | inurl:php)
查找暴露的特殊文件:
site:edu.cn filetype:txt OR filetype:xls OR filetype:xlsx OR filetype:doc OR filetype:docx OR filetype:pdf
常见的敏感文件扩展:
site:edu.cn ext:log | ext:txt | ext:conf | ext:cnf | ext:ini | ext:env | ext:sh | ext:bak | ext:backup | ext:swp | ext:old | ext:~ | ext:git | ext:svn | ext:htpasswd | ext:htaccess
XSS 漏洞倾向参数:
inurl:q= | inurl:s= | inurl:search= | inurl:query= | inurl:keyword= | inurl:lang= inurl:& site:edu.cn
重定向漏洞倾向参数:
inurl:url= | inurl:return= | inurl:next= | inurl:redirect= | inurl:redir= | inurl:ret= | inurl:r2= | inurl:page= inurl:& inurl:http site:edu.cn
SQL 注入倾向参数:
inurl:id= | inurl:pid= | inurl:category= | inurl:cat= | inurl:action= | inurl:sid= | inurl:dir= inurl:& site:edu.cn
SSRF 漏洞倾向参数:
inurl:http | inurl:url= | inurl:path= | inurl:dest= | inurl:html= | inurl:data= | inurl:domain= | inurl:page= inurl:& site:edu.cn
本地文件包含(LFI)倾向参数:
inurl:include | inurl:dir | inurl:detail= | inurl:file= | inurl:folder= | inurl:inc= | inurl:locate= | inurl:doc= | inurl:conf= inurl:& site:edu.cn
远程命令执行(RCE)倾向参数:
inurl:cmd | inurl:exec= | inurl:query= | inurl:code= | inurl:do= | inurl:run= | inurl:read= | inurl:ping= inurl:& site:edu.cn
敏感参数:
inurl:email= | inurl:phone= | inurl:password= | inurl:secret= inurl:& site:edu.cn
API 文档:
inurl:apidocs | inurl:api-docs | inurl:swagger | inurl:api-explorer site:edu.cn
代码泄露:
site:pastebin.com edu.cn
云存储:
site:s3.amazonaws.com edu.cn
JFrog Artifactory:
site:jfrog.io edu.cn
Firebase:
site:firebaseio.com edu.cn
文件上传端点:
site:edu.cn "choose file"
漏洞赏金和漏洞披露程序:
"submit vulnerability report" | "powered by bugcrowd" | "powered by hackerone" site:*/security.txt "bounty"
暴露的 Apache 服务器状态:
site:*/server-status apache
WordPress:
inurl:/wp-admin/admin-ajax.php
如果站点死活打不进去,可以研究下 JS 相关的打法。针对自动化 JS 渗透测试,推荐转子这款工具,收集 JS 信息非常详细,还能自动分类漏洞详情。缺点是只能在 Windows 上运行,其他系统的师傅可以开虚拟机用。
直接执行 exe 文件,填入 URL 地址即可,我习惯在后面加 --scan=3:
--cer : 过证书 / https://www.xxx.com--cer
--time=x : 超时设置 / https://www.xxx.com--time=5
--url : 自定义URL拼接 / https://www.xxx.com--url
--proxy=127.0.0.1:8080 : 过证书 / https://www.xxx.com--proxy=127.0.0.1:8080
--sleep=x : 请求的睡眠时间 / https://www.xxx.com--sleep=0.5
--scan=1-5 : 扫描深度(默认为1,最高为5) / https://www.xxx.com--scan=3
输出内容相当丰富。之前有个企业 SRC 的 AK/SK 泄露就是靠它发现的,直接云接管了一百多 G 的资产,还能利用 CF 做提权。

后面就可以按照 URL 对应的 JS 文件去找泄露和未授权了。

0x4 从 XSS 客服弹窗获取 Cookie 到 RCE
一、未授权接管 admin 管理员权限
书接上回,官网的客服聊天功能点,第一眼就让人猜测可能存 XSS。

直接找客服聊天,输入库存的 XSS 标签 payload。

发现可以成功弹窗。接下来尝试弹客服 cookie 的 payload,看能不能拿到 cookie 做未授权登录客服管理员账户。

成功拿到客服 cookie 后,到登录口尝试替换 cookie 做未授权登录。

替换 cookie 后,发现能直接登录进去。


进去后发现账户是 admin 管理员权限。

二、后台 SSRF 漏洞
进入后台后,发现图标管理模块有新增功能。先试了 XSS 不行,接着尝试 SSRF。插入一个 DNSLog 域名验证。

DNSLog 出现回显,确认存在 SSRF 漏洞。

三、后台 RCE 漏洞
峰回路转,在这个站点又找到一个后台登录口,账号密码是弱口令 admin:Admin123。

登录后台后,发现有个 cmd 传参,直觉告诉我这里可能有命令执行。

把 cmd 参数内容做 base64 解码,发现是个文件路径,说明是利用 cmd 传参执行命令读取文件。

直接尝试读取 /etc/passwd,先 base64 编码再通过 cmd 传参。

成功读取 /etc/passwd。

确认是 Linux 系统,执行命令获取内核版本信息:
../../../../../../../..//proc/version

以上就是这次授权的整体测试过程。信息收集阶段的工作做得越扎实,后面打点就越有方向感。XSS 拿客服 cookie、SSRF 验证回显、再到最后 RCE 读取文件,每一步都建立在前面资产梳理的基础上。希望这些思路能给师傅们一些参考。