You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何借助awk/sed/cat实现tplmap批量处理文本文件中的多个URL

Tplmap 批量URL检测实现方案

提前将所有待检测的URL按行存入纯文本文件(例如命名为urls.txt),每行对应一个完整检测目标,格式和单条检测时传入的URL完全一致(需要标记注入点的位置直接保留FUZZ标记即可),不需要修改tplmap本身代码,通过shell文本处理命令即可实现批量检测。

基础实现:Shell 循环读取(最易上手)

通过cat读取文件内容,配合循环逐行传入目标URL给tplmap执行,命令如下:

#!/bin/bash
# 定义结果日志文件
log_file="tplmap_batch_scan.log"
> "$log_file" # 清空旧日志

while read -r target; do
  # 跳过空行
  if [[ -z "$target" ]]; then
    continue
  fi
  echo "[*] 开始检测目标: $target" | tee -a "$log_file"
  python tplmap.py -u "$target" 2>&1 | tee -a "$log_file"
  echo "====================================" | tee -a "$log_file"
# 读取文件内容作为循环输入
done < urls.txt

过滤无效行:配合 sed 预处理URL列表

如果URL列表里存在注释行(#开头的备注)、首尾多余空格、空行等无效内容,可以先用sed做清洗,再传入循环处理,只需要把上面脚本最后一行的输入部分替换为sed处理后的结果即可:

done < <(sed -e '/^#/d' -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e '/^$/d' urls.txt)

sed处理逻辑说明:

  • /^#/d:删除所有#开头的注释行
  • s/^[[:space:]]*//:删除每行开头的空白字符(空格、制表符)
  • s/[[:space:]]*$//:删除每行末尾的空白字符
  • /^$/d:删除处理后产生的空行

复杂规则处理:配合 awk 实现自定义校验

如果需要在检测前对URL做格式校验、去重等更复杂的处理,可以直接用awk调度执行检测:

awk '
# 跳过注释行、空行
!/^#/ && length($0) > 0 {
  # 清除URL首尾空白
  gsub(/^[[:space:]]+|[[:space:]]+$/, "", $0)
  # URL去重,避免重复检测
  if (!seen[$0]++) {
    print "[*] 正在检测: " $0
    cmd = "python tplmap.py -u \047" $0 "\047 >> tplmap_awk_scan.log 2>&1"
    system(cmd)
    close(cmd)
  }
}
' urls.txt

实用提示

  • 如果需要给所有检测请求统一附加Cookie、请求头、代理等参数,直接在tplmap.py后追加对应参数即可,比如添加Cookie的写法为python tplmap.py -u "$target" -c "user_session=abc123"
  • 如需并发检测提升效率,可以在tplmap执行命令末尾加&将任务放入后台,同时注意控制并发数(建议不超过5),避免触发目标站点的WAF拦截,或消耗过多本地资源
  • 检测前确认tplmap.py的路径正确,如果不在当前目录,需要写全脚本路径

内容的提问来源于stack exchange,提问作者Muhammad Yaseen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 12:03:22