十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【CTF】一键查找Linux中的flag脚本 find_flag.sh

【CTF】一键查找Linux中的flag脚本 find_flag.sh 一、一键查找flag脚本 find_flag.sh功能递归扫描指定目录/单个文件精准匹配flag{任意字符}格式高亮输出、显示文件路径行数兼容普通文件、压缩包不解析、过滤二进制垃圾文件。#!/bin/bash # 颜色定义 RED\033[0;31m GREEN\033[0;32m NC\033[0m # 帮助说明 usage(){ echo -e ${GREEN}使用方式${NC} echo ./find_flag.sh 文件名 # 查找单个文件 echo ./find_flag.sh 目录路径 # 递归查找整个目录 echo ./find_flag.sh # 默认递归查找当前目录 echo -e 匹配规则精准查找 flag{xxxx} 格式字符串\n } # 判断入参 if [ $# -eq 0 ];then target. elif [ $1 -h ] || [ $1 --help ];then usage exit 0 else target$1 fi echo -e ${GREEN}开始扫描路径${target} ${NC} echo # grep参数解释 # -r 递归遍历 -n 显示行号 -I 忽略二进制文件 -o 只输出匹配内容 # -E 正则扩展正则flag\{[^{}]*\} grep -rnIoE flag\{[^{}]*\} $target --colorauto 2/dev/null echo echo -e ${GREEN}扫描结束 ${NC}二、使用步骤创建脚本vim find_flag.sh粘贴上面全部代码保存退出。赋予执行权限chmod x find_flag.sh三种用法# 1. 扫描当前全部目录 ./find_flag.sh # 2. 扫描指定单个文件 ./find_flag.sh /tmp/test.txt # 3. 递归扫描指定文件夹 ./find_flag.sh /home/user/ctf # 4. 查看帮助 ./find_flag.sh -h三、精简单行命令无需脚本临时快速查找grep -rnIoE flag\{[^{}]*\} . --colorauto 2/dev/null四、补充拓展脚本进阶保存结果到日志#!/bin/bash RED\033[0;31m GREEN\033[0;32m NC\033[0m logfileflag_search.log $logfile target${1:-.} echo -e ${GREEN}开始扫描结果同时输出屏幕与 $logfile${NC} grep -rnIoE flag\{[^{}]*\} $target 2/dev/null | tee $logfile echo -e ${GREEN}查找完成日志已保存至 $logfile${NC}关键正则说明flag\{[^{}]*\}flag\{固定开头flag{[^{}]*匹配{}内部所有非大括号字符防止跨括号误匹配\}闭合右大括号特性说明自动忽略二进制文件、设备文件、报错信息高亮标红匹配到的flag输出格式文件路径:行数:flag{xxx}适配CTF常见flag格式通用性极强。
返回列表