解决Typecho的评论XSS攻击

DuckXu 日志

许久没看博客,想着应该处理下评论,登录进后台点击“未审核”,就立刻被跳转到了一个奇怪的链接。
2026-02-04T12:11:55.png
2026-02-04T12:12:24.png
从“steal”“cookie”就不难看出,这把我的登录Cookie发送到了这个奇怪的IP地址里。接下来某人就可以通过这个Cookie登录我的后台了,不过还是阻止他最好。
复现了一下,只有点击“未审核”时才会被跳转,看来这个XSS注入肯定在某个未审核评论里。但未审核评论肯定不能随便全部扬了啊,于是我们打开phpMyAdmin管理博客的MySQL数据库,执行以下命令筛选有没有写了脚本“script”或者有特殊符号的评论。

DELETE FROM `typecho_comments` 
WHERE `text` LIKE '%<script%'
DELETE FROM `typecho_comments` 
WHERE `text` REGEXP '<[^>]+>';;

很遗憾,没有。看来这人没直接用script注入。会不会是篡改了插件设置或者博客源码?在博客根目录下执行

grep -rn "154.21.***.213" 

一无所获。还是得在数据库里搜索。
2026-02-04T12:18:15.png
直接在MySQL里搜索这个IP地址,找到了。删除他们,正好也看到这人用的是“"onfocus="location.href”办法来重定向。现在就把类似的评论全删了。不过我这里先把跳转的链接置空看看。

UPDATE `typecho_comments` 
SET `url` = '' 
WHERE `url` LIKE '%location.href%';

找到两条。回到Typecho后台,未审核评论可以正常打开了,刚刚被替换掉的应该就是这两条评论。
2026-02-04T12:20:33.png
很狡猾,应该是看了文章内容再手动下的评论,和文章强关联。这下要加强防护了。
以及,记得改掉Typecho的管理员密码。

已有 18 条评论

  1. 淘宝返利优惠券

    搞小动作,放违法信息,可耻。支持博主, 咱们都是简简单单正规上个链接。

    回复
    1. DuckXu
      DuckXu Win 10/11 Author

      说话好听。你是这么多年来唯一一个我乐意放出来的广告(☆ω☆)

      回复
  2. Gmc
    Gmc Win 10/11

    套路太深了,我也没注意过这种,应该还没被盯上吧 :@(汗)

    回复
    1. DuckXu
      DuckXu Win 10/11 Author

      评论有筛选就没啥问题,我这个是评论过滤器太拉了被钻空子了。

      回复
  3. 白熊阿丸
    白熊阿丸 macOS

    头图加载的时候倒是吓我一跳。
    你的博客被认定为这么有价值需要被盯上了 (´இ皿இ`)

    回复
    1. DuckXu
      DuckXu Win 10/11 Author

      日常没用心做头图()
      有价值肯定是不至于的,感觉像是广撒网,但是又是真人评论的。
      还是阿丸的文章更有思考价值(☆ω☆)

      回复
  4. ZhangJet
    ZhangJet Unknown OS

    我看见 Typecho 1.3.0 版本更新记录其中一条就是修复评论区漏洞,Xu可以更新下试试

    回复
    1. DuckXu
      DuckXu Win 10/11 Author

      我测了升到1.3.0之后会出现GitHub Issue里提到的那个后台访问问题,暂时没空捣鼓就没推到服务器上()其实也是筛选器脚本没配置好,被钻了空子。
      又及:这是第一次有人这样称呼我哇,非常的新奇!

      回复
      1. ZhangJet
        ZhangJet Unknown OS

        哈 (☆ω☆) 这个称呼简洁又明了。

        我之前从 Typecho 1.2.1 升到 1.3.0 是提前升级的开发版,也是后台出了问题,我当时怀疑是我自己搞防火墙规则给搞坏了,后面莫名又升级成功(我也不确定是否成功,但登录控制台显示的确实是新版本号),最后也没管了。现在继续用 Hugo

        咦刚才吧“取消回复”按钮看成了“发送”,我就说老半天没反应

        回复
        1. DuckXu
          DuckXu Win 10/11 Author

          我已经喊了一年要换静态了,始终没时间搞,所以各种样式调整也就半荒废了()Typecho好用,但1.3.0有点MIUI12的感觉了。

          回复
          1. MoXiify
            MoXiify Linux

            还是建议升到1.3,可以尝试用docker部署官方源就好。

            另外这个评论样式可以一直嵌套下去,很奇怪!

            回复
            1. DuckXu
              DuckXu Win 10/11 Author

              啊,被你发现新Bug了,这个新主题短短两天要迭代三个版本了(笑哭)
              已经更新到1.3.0,感谢关注。

              回复
  5. Mugzx
    Mugzx Linux

    好强

    回复
    1. DuckXu
      DuckXu Linux Author

      是蒟蒻,要不然被注入之前应该就自动删掉了QAQ

      回复
  6. 流情
    流情 Win 10/11

    这个xss url咋插入进来的。在提交评论时不是会有格式检验么

    回复
    1. DuckXu
      DuckXu Linux Author

      检验了,但是我设置的是检测到关键词放到待审列表,不是直接拒绝评论 所以点进待审列表,xss就被执行了。

      回复
  7. 17
    17 Linux

    这些手段真是防不胜防啊,看来还是需要在提交评论的时候加大验证

    回复
    1. DuckXu
      DuckXu Win 10/11 Author

      又加了很多敏感词,而且有些敏感词甚至要直接设置评论失败,即使是进入审核也可能导致一些后果。

      回复

添加新评论