Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

GHSA-56w8-8ppj-2p4f:Anubis 中的机器人保护绕过

Posted on 2025-01-27

嘿大家。我搞砸了Anubis的部分制作方式,因此我已经修复了它,并正在提交此 CVE 来解释出了什么问题以及如何修复它。这是GHSA-56w8-8ppj-2p4f 。

这需要经验丰富的攻击者瞄准运行 Anubis 的服务器。我怀疑这种情况的唯一实例是记者作为概念证明和在我的测试中所做的实例。

漏洞详情

这些详细信息已从GHSA-56w8-8ppj-2p4f复制。

CVSS 分数:2.3(CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA :N)

弱点: CWE-807 :安全决策中依赖不受信任的输入

易受攻击的版本:任何早于v1.11.0-37-gd98d70a版本

修补版本: v1.11.0-37-gd98d70a及更新版本

语境

Anubis 是一款工具,允许管理员通过机器人检查启发式方法和工作量证明挑战来保护机器人免受 AI 抓取工具的侵害,以阻止从多个 IP 地址进行抓取。有关 Anubis 的更多信息,请参阅Anubis 的 README.md 。

影响

针对使用 Anubis 的网站的老练攻击者(或爬虫者)可以轻松绕过机器人保护机制。

这需要有针对性的攻击。

补丁

拉取最新的 Docker 映像,以确保您已升级到提交e09d0226a628f04b1d80fd83bee777894a45cd02 。

解决方法

目前没有已知的解决方法。用户必须升级才能解决此问题。

细节

Anubis 的工作原理是让客户端请求具有给定难度的挑战值,然后客户端执行工作量证明来创建与该难度匹配的 sha-256 哈希值。在提交e09d0226a628f04b1d80fd83bee777894a45cd02之前,客户端将其使用的难度发送回服务器,服务器使用该不受信任的值做出允许/拒绝决定。

这个问题已通过在做出允许/拒绝决定时使用管理员在 Anubis 配置标志中设置的难度值来解决。

格瑞特兹

感谢 Coral Pink 报告此问题。

Techaro 安全问题报告政策

在Techaro ,我们坚信处理安全问题时应完全诚实。我们尽力不编写易受攻击的代码,但不可避免地我们会搞砸并意外地这样做。当我们这样做时,我们将:透明、诚实、高信号,并像专业成年人一样处理情况。我们会珍惜安全研究人员的时间。

有时,我们会失败。我们真正测量的不是它发生的次数,而是当它发生时我们的反应。这就是我们公开、诚实地报告此问题的原因。

当事情确实失败时,我们将创建回归测试以确保这些失败不会重复发生。 Anubis 的测试目前是私有的,但为了透明起见,这里是我们添加到该存储库中以处理此回归的测试:

 func TestFakeChallengeDifficulty ( t * testing . T ) { cli , err := anubis . New ( * testServerURL ) if err != nil { t . Fatal ( err ) }          ctx , cancel := context . WithTimeout ( context . Background ( ) , 10 * time . Second ) defer cancel ( )          chall , err := cli . MakeChallenge ( ctx ) if err != nil { t . Fatal ( err ) }          nonce := 42069          response , err := sha256sum ( fmt . Sprintf ( "%s%d" , chall . Challenge , nonce ) ) if err != nil { t . Fatal ( err ) }         if err := cli . PassChallenge ( ctx , anubis . PassChallengeRequest { Response : response , Nonce : nonce , Redir : "https://xeiaso.net" , ElapsedTime : 420 , Difficulty : 0 , } ) ; err != nil { sce , ok := err . ( * anubis . StatusCodeErr ) if ! ok { t . Fatal ( err ) } if sce . Got != http . StatusForbidden { t . Fatalf ( "wrong status code, should have forbidden auth bypas: want: %d, got: %d" , sce . Want , sce . Got ) } } return }

感谢您关注Anubis的发展。

原文: https://xeiaso.net/notes/2025/GHSA-56w8-8ppj-2p4f/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme