2024年十大Web黑客技术:提名开启
James Kettle
研究总监
@albinowax
发布时间:2025年1月8日 14:07 UTC
更新时间:2025年1月22日 08:54 UTC
2024年十大新型Web黑客技术提名现已开启!
每年,全球的安全研究人员通过博客文章、演示、概念验证和白皮书分享他们的最新发现。这些贡献都非常宝贵,但有些研究因其创新方法和在新方式中被重新应用或适应的潜力而脱颖而出。自2006年以来,社区每年都会聚集起来,筛选这些丰富的研究成果,并确定真正推动Web安全边界的十大技术。
现在正是回顾2024年突破性进展并展望最具影响力、创造性和可重用性研究的时刻。无论您是行业资深人士还是项目新手,都可以访问我们专门的十大页面,了解此倡议的起源、历史和目的——以及过去获奖者和亮点的档案。提名您最喜欢的研究,投下您的一票,帮助我们评选出2024年杰出的Web黑客技术!
今年,我们将遵循以下时间表:
时间表
1月8日-14日:收集社区对2024年顶级研究的提名
1月15日-21日:社区对提名进行投票,建立前15名候选名单
1月22日:启动小组对候选名单的投票,选出并排序10名决赛选手
2月04日:发布2024年十大技术!
我应该提名什么?
目标是突出包含新颖、实用技术的研究,这些技术可以重新应用于不同系统。像log4shell这样的个别漏洞在当时很有价值,但通常时效性较差,而像JNDI注入这样的基础技术可以重新应用并产生巨大效果。提名也可以是对已知攻击类别的改进,例如利用本地DTD文件利用XXE。有关更多示例,您可能会发现查看往年的十大技术很有用。
进行提名
要提交提名,只需提供研究的URL,以及可选的简短评论,解释该工作的新颖之处。随意提名任意数量的研究,如果您认为自己的作品值得,也可以提名自己的作品!
请注意,我将过滤掉非Web重点、仅为工具或明显缺乏创新性的提名,以保持社区投票选项的可管理性。我们不收集电子邮件地址——要在投票阶段开始时收到通知,请在X、LinkedIn或BlueSky上关注@PortSwiggerRes。
提名
我自己已经提名了一些研究来启动活动,我将每隔几天用新的社区提名更新此列表。本着过度自动化的精神,我为每个条目包含了AI辅助的摘要。
必须全部缓存:扭曲Web缓存利用规则
利用URL解析差异实现任意Web缓存投毒和欺骗的新技术。
倾听低语:真正有效的Web时序攻击
通过单包同步和利用范围化SSRF机会等新技术解决网络和服务器噪声,使HTTP/2时序攻击在不同Web环境中变得可行和有效。
拆分电子邮件原子:利用解析器绕过访问控制
利用编码词和Unicode溢出利用电子邮件解析差异,实现Web应用程序中的访问控制绕过和潜在RCE。
混淆攻击:利用Apache HTTP服务器中隐藏的语义歧义!
利用Apache HTTP服务器模块交互中的架构缺陷实现不安全路径访问、可预测处理程序操纵和身份验证绕过。
审查导致的不安全:由防火墙引起的漏洞
利用中国的DNS投毒通过Fastly进行子域名接管或通过易受攻击的cPanel安装进行XSS。
使用幻影$Version Cookie绕过WAF
利用Cookie解析器中的传统支持,通过$Version属性和引号字符串编码绕过WAF。
ChatGPT账户接管 - 通配符Web缓存欺骗
利用CDN和Web服务器URL解析中的路径遍历混淆缓存敏感API端点以窃取身份验证令牌。
代码安全为何重要 - 即使在强化环境中
利用Node.js应用程序中的任意文件写入漏洞,通过写入procfs暴露的管道文件描述符实现远程代码执行。
利用Spring属性实现远程代码执行
利用Spring Boot的日志记录配置属性,通过Logback的JoranConfigurator实现远程代码执行。
探索DOMPurify库:绕过和修复
利用节点扁平化、开放元素堆栈和命名空间混淆的突变XSS绕过DOMPurify。
Bench Press:使用CSS泄漏文本节点
使用CSS动画测量字符高度并通过图像请求泄露数据来泄漏文本节点内容。
ASP.NET应用程序中的源代码泄露
使用.NET无Cookie会话获取源代码。
http-garden:HTTP实现的差分模糊测试REPL
用于发现新型HTTP请求走私向量的平台。
plORMbing您的Prisma ORM与基于时间的攻击
对Prisma ORM使用基于时间的攻击,通过利用关系过滤构建查询导致显著执行延迟来泄露敏感数据。
介绍lightyear:转储PHP文件的新方法
使用PHP过滤器链进行自动化高速利用。
Ruby on Rails _json 玩弄攻击
_json玩弄攻击通过利用_json键的处理来操纵JSON参数以绕过Ruby on Rails中的授权。
编码差异:字符集为何重要
利用ISO-2022-JP编码在字符集信息缺失时绕过清理并注入JavaScript。
竞速到底 - 破坏您应用安全的数据库事务
对数据库事务启用竞争条件攻击的模式的详细分析。
响应过滤拒绝服务(RFDoS):通过触发WAF规则关闭网站
利用过于包容的WAF规则阻止合法内容传递的DoS技术。
揭示TE.0 HTTP请求走私:在数千个Google Cloud网站中发现关键漏洞
影响Google Cloud托管网站的新型HTTP请求走私向量。
双击劫持:UI redress的新时代
双击劫持利用mousedown和onclick事件之间的时间间隙绕过点击劫持保护并劫持用户操作。
GitLab中的Devfile文件写入漏洞
利用YAML解析器差异和tar文件提取中的路径遍历实现在GitLab中的任意文件写入。
拆解多部分解析器:文件上传验证绕过
通过利用参数处理、边界识别和内容验证中的差异绕过multipart/form-data解析器的技术,包括重复参数、省略必要分隔符和替代编码序列。
供应链攻击:新时代
通过精心制作的多行源映射注释绕过Lavamoat的策略文件沙箱,并通过已弃用的document.execCommand函数逃避SnowJS领域隔离。
滥用预期功能和绕过面部识别.pptx
通过利用AI无法区分真实人脸和深度伪造图像来绕过面部识别。
Arc浏览器UXSS、本地文件读取、任意文件创建和路径遍历到RCE
利用Arc浏览器的技术包括通过UI欺骗安装恶意boost,通过操纵boost配置路径实现本地文件读取和路径遍历以进行远程代码执行。
超越限制:使用首次序列同步扩展单包竞争条件以突破65,535字节限制
利用IP分段和TCP序列号重新排序扩展单包攻击的能力以利用限制溢出漏洞。
HTTP/2 CONTINUATION Flood:技术细节
HTTP/2 CONTINUATION Flood攻击通过无休止的缺乏END_HEADERS标志的头部流耗尽服务器资源,实现拒绝服务。
探索Javascript事件和通过字符规范化绕过WAF
AI失败
从任意文件写入到受限Rails应用程序中的RCE
滥用Bootsnap的缓存操纵在受限Rails环境中执行任意代码。
Go Go XSS小工具:在野外链接DOM Clobbering利用
将DOM Clobbering与postMessage和CSP绕过链接以升级XSS。
Statamic CMS
通过文件上传中的文件名操纵进行路径遍历。
利用JavaScript中的数字解析器
利用JavaScript数字解析器中的差异通过参数污染进行DoS。
[EN] 不安全的基于时间的秘密和三明治攻击
AI失败
双击劫持:UI redress的新时代
双击劫持是一种新型UI redress技术,利用双击序列中的时间和事件顺序怪癖绕过点击劫持保护。
跨窗口伪造:新型Web攻击
论文介绍了“跨窗口伪造”,一种使用浏览器导航和击键通过URL片段在不同网站上执行操作的新型Web攻击技术。
利用客户端路径遍历执行跨站请求伪造 - 介绍CSPT2CSRF
通过链接GET和POST操作(CSPT2CSRF)利用客户端路径遍历进行CSRF。
Ruby中的类污染:深入利用递归合并
Ruby中的递归合并技术实现类污染以进行权限升级和RCE。
揭示原型污染小工具查找器
使用小工具识别自动利用服务器端原型污染。
通过Cookie Tossing劫持OAUTH流
通过Cookie Tossing劫持OAUTH流进行账户接管。
从底部打破墙:Web应用防火墙中协议级规避漏洞的自动发现
使用利用WAF和Web应用程序之间解析差异的新颖测试方法自动发现Web应用防火墙中的协议级规避漏洞。
旧的新的电子邮件攻击
利用跨服务的电子邮件头部不一致解析进行电子邮件欺骗和SMTP注入。
CVE-2023-5480:Chrome新的XSS向量
利用JIT安装的worker中的Service Worker注册,通过操纵Chrome中的支付清单进行XSS。
可蠕虫XSS www.bing.com。通过Maps在www.bing.com上下文中的XSS…
使用KML文件和混合大小写JavaScript绕过黑名单在Bing上的可蠕虫XSS。
SSRF的另一种视角
使用SSRF通过将请求定向到受控服务器来捕获会话Cookie。
WorstFit:揭示Windows ANSI中的隐藏转换器!
利用Windows Best-Fit字符转换进行路径遍历、参数注入和跨各种应用程序的RCE等攻击。
翻译丢失 - 通过滥用数据操纵过程绕过WAF
滥用边缘侧包含和Unicode操纵以绕过WAF。
驾驶Edge Copilot
通过postMessage发送javascript: URL以利用Bing上的XSS漏洞。
POST到XSS:利用伪协议在SSO流中获取JavaScript评估
在OAuth 2.0表单发布响应模式和SAML POST绑定中利用javascript:伪协议与自动提交表单实现XSS。
通过URL解析器混淆绕过CSP:Netlify图像CDN上的XSS
使用URL解析器混淆绕过严格CSP,在Netlify的图像CDN上实现XSS。
Iconv,将字符集设置为RCE:利用glibc入侵PHP引擎
通过操纵会话变量或利用反序列化漏洞,利用glibc的iconv函数中的缓冲区溢出在PHP应用程序(如Roundcube)中实现远程代码执行。
Zoom会话接管 - Cookie Tossing负载、OAuth Dirty Dancing、浏览器权限劫持和WAF滥用
通过Cookie tossing升级XSS漏洞,OAuth Dirty Dancing进行会话接管,以及利用XSS进行浏览器权限劫持和通过WAF Frame-up技术进行DoS。
揭示Rhino的盲点:在Apigee中利用自定义代码执行
利用Apigee中JavaCallout和JavaScript策略之间的相互作用绕过安全控制并实现远程代码执行。
NetModule路由器软件竞争条件导致远程代码执行
NetModule路由器软件中的竞争条件通过利用进程状态文件实现远程代码执行。
SQL注入未死:在协议级别走私查询
通过数据库有线协议走私进行协议级SQL注入攻击。
过度扩展:发现Jenkins中的关键安全漏洞
文本描述了利用Jenkins中的“expandAtFiles”功能读取任意文件并可能在服务器上执行任意代码。
Joomla:PHP错误引入多个XSS漏洞
利用PHP mbstring函数的不一致性绕过Joomla的输入清理导致XSS漏洞。
Gudifu:HTTP请求解析差异的引导式差分模糊测试
Gudifu使用引导式差分模糊测试发现HTTP请求解析差异,这些差异可能导致新的攻击向量,如HTTP请求走私和缓存投毒。
MSSQL被识别为易受表情符号字符串利用
利用MSSQL中的Unicode排序逻辑差异将哥布林表情符号视为空字符串,启用暴力攻击。
Ruby 3.4通用RCE反序列化小工具链
开发用于Ruby 3.4的通用RCE反序列化小工具链,该链利用RubyGems自动加载,使用’rake’和’make’命令执行,并使用UncaughtThrowError对象抑制异常。
CVE-2024-50603:Aviatrix网络控制器命令注入漏洞
通过未清理的cloud_type参数注入恶意负载以在Aviatrix网络控制器上执行任意命令。
CORS漏洞:武器化宽松的CORS配置
反映的任意来源和CORS配置中的替代域/子域信任可以允许未经授权的数据泄露。
攻击PowerShell CLIXML反序列化
利用PowerShell的CLIXML反序列化可以通过利用用户定义类型、CimInstance再水合以及广泛部署模块中的漏洞导致远程代码执行,允许VM逃逸和攻击PowerShell远程处理。
Ruby-SAML / GitLab身份验证绕过(CVE-2024-45409)
利用XPath漏洞绕过Ruby-SAML中的SAML签名验证。
仅SELECT的PostgreSQL注入世界
离线操纵PostgreSQL文件节点以进行权限升级和RCE。
通过GitHub Actions工件中的竞争条件入侵巨头
文本不包含新颖或创新的Web黑客技术。
入侵数百万调制解调器(并调查谁入侵了我的调制解调器)
通过授权绕过未经授权访问ISP管理的TR-069 API,导致完全设备接管。
利用不可利用的:来自Kibana漏洞赏金的见解
AI失败。
DEF CON 32 - SQL注入未死:在协议级别走私查询
AI失败。
教老.NET Remoting新利用技巧
通过利用XAML解析绕过.NET Remoting安全,执行反序列化攻击,尽管有TypeFilterLevel.Low和CAS限制,仍创建像WebClient这样的特权对象以进行远程代码执行。
通过自底向上小工具搜索和数据流辅助负载构建高效检测Java反序列化小工具链
使用自底向上方法更有效地检测Java反序列化小工具链,并利用数据流依赖进行负载生成。
未定义导向编程:在Node.js模板引擎中检测和链接原型污染小工具以实现恶意后果
使用未定义属性检测和链接间接JavaScript原型污染小工具,用于像ACE和RCE这样的复杂攻击向量。
通过MemoryUserDatabaseFactory中的路径操纵进行JNDI注入远程代码执行
JNDI注入操纵MemoryUserDatabaseFactory中的路径名,通过精心制作的XML和使用BeanFactory方法调用创建目录实现远程代码执行。
GitHub Actions利用:不受信任的输入
GitHub Actions可以通过错误配置被利用,例如触发器中的不受信任输入(例如pull_request_target),可能允许任意代码执行和未经授权的存储库修改。
深入探讨OpenAPI安全.pdf
AI失败。
[EN] 使用MongoDB对象ID的多重三明治攻击或Web应用程序邀请实时监控场景:三明治攻击的新用例
利用MongoDB对象ID的可预测计数器进行多重三明治攻击,实时监控和拦截令牌。
秘密Web黑客知识:CTF作者讨厌这些简单技巧
文本不包含新颖或创新的Web黑客技术。
Facebook Messenger漏洞狩猎 - 漏洞的E2E生命周期
文本不包含新颖或创新的Web黑客技术。
Android利用到RCE:5000美元赏金
欺骗无头浏览器执行任意JavaScript以实现服务器端RCE,并使用DNS隧道进行数据泄露。
Excalidraw中影响Meta的XSS漏洞(CVE-2024-32472)
通过Excalidraw中的gist.github iframe沙箱逃逸允许任意JavaScript执行。
1个漏洞,50,000美元以上赏金,Zendesk如何在数百家财富500强公司中故意留下后门
利用Zendesk缺乏电子邮件欺骗保护劫持票据线程,并使用OAuth获得对Slack账户的未经授权访问。
入侵Kia:仅使用车牌远程控制汽车
利用Kia的经销商令牌生成,仅使用车牌和一系列后端API请求远程控制车辆。
使用YouTube窃取您的文件
链接YouTube和Google Docs中的多个开放重定向漏洞执行点击劫持攻击,授予对Google Drive文件的编辑访问权限。
像亿万富翁一样出价 - 使用4字符CSTI窃取NFT
通过ENS名称截断利用Vue.js CSTI实现XSS并操纵NFT出价。
链接三个错误以访问您所有的ServiceNow数据
通过清理后的style标签内容绕过ServiceNow的模板注入缓解措施以进行代码执行。
通过浏览器扩展中链接消息实现通用代码执行
在浏览器扩展中链接消息API以绕过同源策略并触发本机应用程序漏洞以实现通用代码执行。
泄露Jupyter实例身份验证令牌链接CVE-2023-39968、CVE-2024-22421和Chromium错误
客户端路径遍历与开放重定向和Chromium错误链接以泄露身份验证和CSRF令牌。
Next.js和缓存投毒:寻找黑洞的探索
利用Next.js中的内部头部控制HTTP状态代码和缓存错误页面。
CVE-2024-4367 - PDF.js中的任意JavaScript执行
通过操纵PDF.js字体渲染中的FontMatrix实现任意JavaScript执行。
通过编码级别绕过WAF以利用CSPT
通过利用URL编码级别和应用程序解码级别之间的差异绕过WAF。
您无法在Windows上安全执行命令
通过CreateProcess在Windows上执行批处理文件时不当转义命令参数进行命令注入。
云时代中使用脏Content Type的XSS
通过操纵Content-Type头部进行XSS。
Hello Lucee!让我们再次入侵Apple?
利用具有REST端点的Lucee CFML服务器中的反序列化进行RCE,并利用易受攻击的CFML表达式解析在Mura CMS中进行RCE。
Rook到XSS:我如何用新手利用入侵chess.com
使用TinyMCE错误配置通过操纵background-image URL属性实现XSS。
回到(剪贴)板:与Microsoft Whiteboard和Meta中的Excalidraw(CVE-2023-26140)
通过协作白板应用程序中的中毒剪贴板数据利用Clipboard API注入XSS负载。
SMTP走私 - 全球欺骗电子邮件
使用SMTP数据结束序列的不同解释跨域发送欺骗电子邮件,绕过SPF对齐检查(SMTP走私)。
Cloudflare Pages中的权限升级和任意页面篡改
使用符号链接与错误配置的处理进行文件读取,使用URL版本进行npm包操纵以进行权限升级,以及利用Cloudflare Pages上宽松的路径验证进行路径遍历。
半措施和完全妥协:利用Microsoft Exchange PowerShell远程处理
任意文件写入、任意文件读取和本地DLL加载的链在Exchange上实现RCE。
SOQL注入
利用无限制的SOQL查询端点泄露敏感的Salesforce数据。
如何接管整个应用程序的几个步骤
利用审计日志中的可预测重置令牌模式进行任意账户接管。
用数字崩溃服务器
利用具有过多数字的浮点数导致服务器DoS。
在Zendesk中滥用占位符注入提取用户信息
使用通过主题到描述清理绕过的占位符注入在Zendesk中提取用户信息。
由于缓存错误配置导致的授权绕过
由于短期缓存漏洞导致的授权绕过。
黑暗中的舞者:为盲跨站脚本合成和评估多语言负载
为在没有反馈通道的多个注入上下文中检测盲XSS合成多语言负载。
再次解析我,宝贝:通过解析差异绕过HTML清理器
使用解析差异绕过HTML清理器以利用基于突变的XSS漏洞。
使用聚合管道的MongoDB NoSQL注入
在MongoDB聚合管道中使用$lookup或$unionWith操作符通过NoSQL注入访问其他集合。
Delinea协议处理程序 - 通过更新过程实现远程代码执行(CVE-2024-12908)
利用sslauncher URL处理程序通过MSI转换滥用实现远程代码执行。
任何人都可以访问GitHub上已删除和私有存储库数据
跨分支对象引用(CFOR)漏洞使用提交哈希未经授权访问已删除和私有GitHub存储库中的敏感数据。
plORMbing您的Django ORM
利用Django ORM中的关系过滤通过多对多关系和权限模型泄露敏感数据。
[快速笔记] 如何构建闭源项目的CodeQL数据库(.NET程序集) | 作者Jang
文本不包含新颖或创新的Web黑客技术。
滥用任意文件删除以升级权限和其他伟大技巧
通过利用任意文件夹删除漏洞滥用Windows Installer服务以获得SYSTEM级权限升级。
GHSL-2024-312:Azure API管理开发人员门户中的任意代码执行和秘密泄露
利用CI工作流中不受信任的数据插值进行代码执行。
一个晦涩的PHP陷阱如何导致Craft CMS中的RCE
滥用register_argc_argv PHP配置操纵Craft CMS路径处理,并通过Twig模板中的FTP包装器实现远程代码执行。
零日倡议 — SolarWinds Access Rights Manager:一个漏洞提升所有权限
通过gRPC利用预身份验证任意文件删除在域加入的Windows机器上执行LPE。
通过JAAS的Databricks JDBC攻击
利用Databricks JDBC中的krbJAASFile通过JNDI注入进行远程代码执行。
Gem::SafeMarshal逃逸
通过Ruby的Date类利用Gem::SafeMarshal中的反序列化原语实现任意命令执行。
OAuth非快乐路径到ATO
在Google OAuth中使用多个response_type值在URL片段中捕获id_token和授权代码以进行账户接管。
Tyranid的巢穴:在ACL周围工作
无新颖或创新的Web黑客技术。
CVE-2023–50220 — Inductive Automation Ignition XML反序列化到RCE
利用XML反序列化漏洞使用修改的Jython小工具链实现RCE。
ProxyNotShell之后利用Exchange PowerShell:第1部分 - MultiValuedProperty
通过滥用允许的泛型类型(如MultiValuedProperty)利用Exchange PowerShell中的反序列化实现RCE。
Java应用程序中的新攻击接口
通过JDBC驱动程序利用Java应用程序。