视频加载失败

报告Cloudflare waf拦截的IP

1714 字
9 分钟
报告Cloudflare waf拦截的IP

报告Cloudflare waf拦截的IP#

最近看cloudflare的waf统计里面来扫描的IP越来越多了,我就想找一个渠道来举报这些Ip,为社区做做贡献。

AbuseIPDB是什么#

AbuseIPDB 是一个专门用于报告和查询恶意 IP 地址的在线数据库。它的主要目标是帮助用户识别和防范与特定 IP 地址相关的滥用行为,例如网络攻击、垃圾邮件、端口扫描和暴力破解等。

它还是由社区驱动的,大部分的数据来源都是源于用户。

如何在AbuseIPDB查看IP?#

AbuseIPDB进入AbuseIPDB的官网后

可以看到在这里就可以查看IP的欺诈度。

我查看一下1.1.1.1

可以看到1.1.1.1是有白名单的,因为这是cloudflare的DNS服务。

注册AbuseIPDB#

点击Sign up

然后会让我们选择API的调用计划 你要是没有大量的需求就不用付费。 所以我就选Free

就会跳转到这个页面,正常填写就好

就是有一个地方要注意,这里如果你不是站长就选个人,如果你是站长(就像我有一个域名和网站,待会要验证站长身份)就选站长,然后填写你的域名。(不是子域名😂)

注册好以后,要邮箱验证,看看邮箱收件箱点一下验证的链接。 站长验证也是很简单,就给你的域名加个TXT记录就好了(不要删除记录,后续可能还要检查)

AbuseIPDB贡献者徽章#

这个徽章我已经挂在我的博客关于

可以看到,还是很美观的,可以实时展示你举报的IP数量。(数量可能有些延迟)

举报IP#

举报IP是通过api的(我当时还不知道😂😂😂) 我就不一个一个curl了,我让ai生成了一个脚本,还算方便。

#!/bin/bash
# ====================================================================================
# AbuseIPDB Advanced Reporter Script v2.0
#
# Features:
# - Secure API Key storage in a .conf file.
# - Interactive menu for selecting report categories.
# - Smart, template-based comment generation with dynamic info gathering.
# ====================================================================================
# --- 配置 ---
CONFIG_FILE="abuseipdb.conf"
API_ENDPOINT="https://api.abuseipdb.com/api/v2/report"
# --- 颜色定义 ---
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# --- 全局变量 ---
IP_ADDRESS=""
CATEGORY_ID=""
COMMENT=""
TIMESTAMP=""
# --- 函数:设置/加载API密钥 ---
function setup_api_key() {
if [ ! -f "$CONFIG_FILE" ]; then
echo -e "${YELLOW}配置文件 '$CONFIG_FILE' 未找到。${NC}"
read -p "请输入您的 AbuseIPDB API Key: " new_key
if [ -z "$new_key" ]; then
echo -e "${RED}错误:API Key 不能为空。退出脚本。${NC}"; exit 1;
fi
echo "API_KEY=\"$new_key\"" > "$CONFIG_FILE"
echo -e "${GREEN}API Key 已成功保存到 '$CONFIG_FILE'。${NC}\n"
fi
source "$CONFIG_FILE"
if [ -z "$API_KEY" ]; then
echo -e "${RED}错误:在 '$CONFIG_FILE' 中找不到 API_KEY 或其值为空。${NC}"; exit 1;
fi
}
# --- 函数:处理暴力破解 [18] ---
function handle_brute_force() {
CATEGORY_ID="18"
echo -e "\n${YELLOW}请输入暴力破解攻击的详细信息...${NC}"
read -p " -> 攻击的服务 (e.g., SSH, FTP, SMTP, WordPress): " service_name
read -p " -> 尝试的用户名 (留空则忽略): " username
COMMENT="Automated report: Brute-force attack detected on service '$service_name' from IP $IP_ADDRESS at $TIMESTAMP."
if [ -n "$username" ]; then
COMMENT+=" Multiple failed login attempts were recorded for username '$username'."
fi
}
# --- 函数:处理SSH攻击 [22] ---
function handle_ssh() {
CATEGORY_ID="22"
echo -e "\n${YELLOW}请输入SSH攻击的详细信息...${NC}"
read -p " -> 尝试的用户名 (e.g., root, admin. 留空则忽略): " username
COMMENT="Automated report: SSH brute-force attack detected from IP $IP_ADDRESS at $TIMESTAMP."
if [ -n "$username" ]; then
COMMENT+=" Multiple failed login attempts were recorded for username '$username'."
else
COMMENT+=" Multiple failed login attempts were recorded with various usernames."
fi
}
# --- 函数:处理端口扫描 [14] ---
function handle_port_scan() {
CATEGORY_ID="14"
echo -e "\n${YELLOW}请输入端口扫描的详细信息...${NC}"
read -p " -> 扫描的端口号 (e.g., 22, 80, 443. 留空则忽略): " scanned_ports
COMMENT="Automated report: Port scan detected from IP $IP_ADDRESS at $TIMESTAMP."
if [ -n "$scanned_ports" ]; then
COMMENT+=" Scanned ports include: $scanned_ports."
fi
}
# --- 函数:处理Web攻击 [21] ---
function handle_web_attack() {
CATEGORY_ID="21"
echo -e "\n${YELLOW}请输入Web攻击的详细信息...${NC}"
read -p " -> 攻击的目标域名 (e.g., example.com): " target_host
read -p " -> 访问的恶意路径 (e.g., /wp-login.php): " request_path
COMMENT="Automated report: Web attack attempt detected on host '$target_host' from IP $IP_ADDRESS at $TIMESTAMP."
COMMENT+=" The attacker accessed the malicious path: '$request_path'."
}
# --- 函数:处理恶意Web机器人 [20] ---
function handle_bad_bot() {
CATEGORY_ID="20"
echo -e "\n${YELLOW}请输入恶意Web机器人的详细信息...${NC}"
read -p " -> 访问的目标域名 (e.g., example.com): " target_host
read -p " -> 访问的路径 (e.g., /): " request_path
read -p " -> 机器人的User-Agent (留空则忽略): " user_agent
COMMENT="Automated report: Bad Web Bot activity detected on host '$target_host' from IP $IP_ADDRESS at $TIMESTAMP."
COMMENT+=" The bot was blocked while accessing '$request_path'."
if [ -n "$user_agent" ]; then
COMMENT+=" User-Agent: '$user_agent'."
fi
}
# --- 函数:处理自定义输入 ---
function handle_custom() {
echo -e "\n${YELLOW}请输入自定义举报信息...${NC}"
read -p " -> 自定义类别ID (例如 18,21): " CATEGORY_ID
if [ -z "$CATEGORY_ID" ]; then echo -e "${RED}类别ID不能为空。${NC}"; return 1; fi
read -p " -> 自定义评论: " COMMENT
if [ -z "$COMMENT" ]; then echo -e "${RED}评论不能为空。${NC}"; return 1; fi
}
# --- 主程序 ---
function main() {
setup_api_key
while true; do
clear
echo -e "${BLUE}==========================================${NC}"
echo -e "${BLUE} AbuseIPDB 高级举报脚本 v2.0 ${NC}"
echo -e "${BLUE}==========================================${NC}"
read -p "请输入您要举报的IP地址: " IP_ADDRESS
if [ -z "$IP_ADDRESS" ]; then
echo -e "${RED}错误:IP地址不能为空。${NC}"; sleep 2; continue;
fi
echo -e "\n${YELLOW}请选择一个举报类别 (输入数字):${NC}"
echo " 1) [18] Brute-Force (暴力破解)"
echo " 2) [22] SSH (SSH登录攻击)"
echo " 3) [14] Port Scan (端口扫描)"
echo " 4) [21] Web Attack / Hacking (Web攻击)"
echo " 5) [20] Bad Web Bot (恶意网络机器人)"
echo " 9) [自定义] 手动输入所有信息"
echo " q) [退出]"
read -p "您的选择: " choice
# 重置变量并获取当前时间戳
CATEGORY_ID=""
COMMENT=""
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
# 根据选择调用相应的处理函数
case "$choice" in
1) handle_brute_force ;;
2) handle_ssh ;;
3) handle_port_scan ;;
4) handle_web_attack ;;
5) handle_bad_bot ;;
9) handle_custom ;;
q|Q) echo -e "${GREEN}感谢使用,再见!${NC}"; exit 0 ;;
*) echo -e "${RED}无效的选择,请重试。${NC}"; sleep 2; continue ;;
esac
# 检查处理函数是否成功设置了变量
if [ -z "$CATEGORY_ID" ] || [ -z "$COMMENT" ]; then
echo -e "${RED}信息不完整,返回主菜单。${NC}"; sleep 2; continue;
fi
echo -e "\n${BLUE}--- 请确认最终举报信息 ---${NC}"
echo -e " IP 地址: ${GREEN}$IP_ADDRESS${NC}"
echo -e " 类别 ID: ${GREEN}$CATEGORY_ID${NC}"
echo -e " 最终评论: ${GREEN}$COMMENT${NC}"
read -p "确认提交举报吗? (y/n): " confirm
if [[ "$confirm" =~ ^[Yy]$ ]]; then
echo -e "\n${YELLOW}正在提交举报...${NC}"
RESPONSE=$(curl -s --request POST \
--url "$API_ENDPOINT" \
--header "Accept: application/json" \
--header "Key: $API_KEY" \
--data-urlencode "ip=$IP_ADDRESS" \
--data-urlencode "categories=$CATEGORY_ID" \
--data-urlencode "comment=$COMMENT")
echo -e "${BLUE}--- 服务器响应 ---${NC}"
if command -v jq &> /dev/null; then
echo "$RESPONSE" | jq
else
echo "$RESPONSE"
fi
echo -e "${BLUE}--------------------${NC}"
else
echo -e "${RED}操作已取消。${NC}"
fi
read -p "按 [Enter] 键继续或按 [Ctrl+C] 退出..."
done
}
# --- 运行主程序 ---
main

感觉良好。我试用了一下,还是很好的举报类别可以在AbuseIPDB api调用文档查,这里只有几个常用的。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
报告Cloudflare waf拦截的IP
https://blog.mckero.com/posts/use-abuseipdb/
作者
MC_Kero
发布于
2025-11-25
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
使用cloudflare argo smart routing后的感受
cloudflarecloudflare在中国大陆的访问速度太慢了,我看到cloudflare的官网上有这个付费模块,就来尝尝鲜。
2
用cloudflare Images做图片自转换
cloudflare这篇文章记录了博客图片方案的三次迭代:从依赖第三方 GitHub 镜像源的不稳定,到迁移至 Cloudflare R2 并手动转换 AVIF/WebP,再到最终利用 Cloudflare Images 实现图片自动格式转换、缩放与 CDN 长期缓存。同时分享了一段配合 Astro 的 rehype 插件代码,可在部署时自动为图片 URL 生成响应式 srcset 与最优格式,省去本地预处理步骤。
3
我的博客被挂了三天马,而我毫不知情
安全一次完整的应急响应记录:从抓包里发现 131 个鬼请求,到解密出一条针对 Windows 用户的剪贴板木马,再到审计日志里揪出泄露的 API Token。附全部排查过程和教训。
4
Win10 任务管理器点“详细信息”秒退的排查与修复
问题排查Win10 任务管理器简略模式正常,一点“详细信息”就闪退。最终定位到注册表 Run 启动项中 Claude Desktop 的数据格式错误,修正后恢复。本文记录排查过程、sfc/DISM 修复,以及下载假冒 taskmgr.exe 木马的安全教训。
5
从github迁移到gitea
博客因为 GitHub 汉化脚本失效、国内访问困难,我把仓库迁到了自部署的 Gitea。本文记录迁移原因、部署过程、镜像配置与初步体验,也聊聊为什么没选 GitLab 和国内平台。
随机文章随机推荐

评论区

Profile Image of the Author
MC_Kero
依稀当年泪目干!
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
站点统计
文章
39
分类
26
标签
98
总字数
75,449
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录