【CTF-MISC-数据处理与分析】使用powershell搜索大量文件包含的文字
2026/7/24 22:29:30 网站建设 项目流程

题目

2025春秋杯网络安全联赛冬季赛\MISC\数据处理与分析\大海捞针

https://match.ichunqiu.com/index?k=UWQFNQw_C2pXMlVwUjZQYlx-UzFaOQozBGIHPlRmDDVRbgQzXG4KbgMxAWc

某核心服务器的备份数据被非法导出,其中包含上千个不同格式的杂乱文件。据可靠情报,Flag就隐藏在这些文件中的某处。由于文件数量巨大,手动查找无异于大海捞针。请利用你的自动化处理能力,在海量噪音中找回这段丢失的Flag。

附件下载:https://pan.baidu.com/share/init?surl=SgUN5bfIiZrENBd409av_A
提取码:GAME

解题思路

使用如下命令,搜索

Get-ChildItem-Recurse-File|Select-String-Pattern'flag\{[^}]+\}'-CaseSensitive

搜索结果

\\raidrive-administrator\webdav服务器\其他\考证\A网络安全类比赛\2025春秋杯网络安全联赛冬季赛\MISC\数据处理与分析\大海捞 针\大海捞针-40bbf257393560cf199300d4488e853e\leak_data(2)\dir_06\internal_resource.png:5:# SECRET_DATA: flag{9b3d6f1a-0c48-4e52-8a97-e2b5c7f4d103}

验证

直接打开发现是一张图片

用记事本打开,发现了末尾的flag

答案

flag{9b3d6f1a-0c48-4e52-8a97-e2b5c7f4d103}

附录:搜索命令解释

命令详细解析

该命令用于在递归遍历所有文件的同时,搜索符合特定格式的 flag 字符串,具体分解如下:

1. 第一部分:Get-ChildItem -Recurse -File
  • Get-ChildItem:PowerShell 中用于列出目录内容的核心命令(类似 Linux 的ls)。
  • -Recurse:递归遍历当前目录及其所有子目录,确保搜索覆盖所有嵌套文件夹。
  • -File:仅筛选出文件对象,排除目录本身。这样可以避免对目录名进行搜索,只关注文件内容。
2. 管道操作:|
  • 管道符号将前一个命令的输出(所有递归找到的文件对象)传递给后一个命令,作为其输入。
3. 第二部分:Select-String -Pattern 'flag\{[^}]+\}' -CaseSensitive
  • Select-String:PowerShell 中用于在文本中搜索字符串的命令(类似 Linux 的grep)。
  • -Pattern 'flag\{[^}]+\}':指定搜索的正则表达式模式,含义如下:
    • flag\{:匹配文本 “flag{”(\{是对大括号的转义,因为大括号在正则中是特殊字符)。
    • [^}]+:匹配一个或多个非右大括号的字符([^}]表示“不是右大括号”,+表示“一个或多个”)。
    • \}:匹配右大括号}(同样需要转义)。
    • 整体效果:匹配flag{...}格式的字符串,其中...是任意非右大括号的内容,直到遇到}结束。
  • -CaseSensitive:大小写敏感模式,仅匹配小写的 “flag”,避免误匹配 “FLAG” 等变体。

工作流程

  1. 递归扫描Get-ChildItem -Recurse -File递归遍历所有子目录,收集所有文件路径。
  2. 内容搜索Select-String对每个文件的内容执行正则匹配,查找符合flag{...}格式的字符串。
  3. 结果输出:当找到匹配时,输出包含匹配内容的文件路径、行号和具体匹配文本。

为什么能在二进制文件中找到 Flag?

PNG 是二进制文件,但 PowerShell 的Get-ContentSelect-String隐式调用)会尝试按文本模式读取文件。对于二进制数据,无法解析的部分会被忽略,而能解析为文本的部分(如文件末尾的注释或嵌入文本)会被正常处理。因此,即使 Flag 嵌入在 PNG 二进制文件中,只要以文本形式存储,仍能被该命令捕获。

示例效果

该命令在执行时,会输出类似以下结果:

\\path\to\file.png:5:# SECRET_DATA: flag{9b3d6f1a-0c48-4e52-8a97-e2b5c7f4d103}

其中包含:

  • 文件路径\\path\to\file.png
  • 行号5(匹配内容所在行)
  • 匹配文本# SECRET_DATA: flag{9b3d6f1a-0c48-4e52-8a97-e2b5c7f4d103}

核心优势

  • 全目录覆盖-Recurse确保无遗漏搜索所有子目录。
  • 精确匹配:正则表达式flag\{[^}]+\}精确锁定 Flag 格式,避免误报。
  • 高效过滤-File排除目录,减少无效搜索,提升速度。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询