Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
openlitespeed-dup-cookie-litespeed-role — OpenLiteSpeed 1.9.3 - 高危 - 远程 - 权限残留 - HTTP/1 重复 Cookie 绕过 litespeed_role 403;lsphp 仍获取 HTTP_COOKIE | Kitploit
工具/GitHubGitHub/abraxas/openlitespeed-dup-cookie-litespeed-role
漏洞分析漏洞利用Web应用程序漏洞利用信息收集Web安全渗透测试实验室与实践
GitHubabraxas/openlitespeed-dup-cookie-litespeed-role

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →

openlitespeed-dup-cookie-litespeed-role

OpenLiteSpeed 1.9.3 - 高危 - 远程 - 权限残留 - HTTP/1 重复 Cookie 绕过 litespeed_role 403;lsphp 仍获取 HTTP_COOKIE

查看仓库
1310天前尚未审核
分享

Abraxas Labs - openlitespeed-dup-cookie-litespeed-role

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  openlitespeed-dup-cookie-litespeed-role

openlitespeed-dup-cookie-litespeed-role

类别: 权限残留 可达性: 远程

OpenLiteSpeed 1.9.3(edbe7f7db12577e905291955a6d416200942fb8b)对单个 Cookie: litespeed_role= 仍然返回 403(即 1.8.2.1 的拦截逻辑)。HTTP/1 重复的 Cookie 不会返回 400。而 Host / Content-Length / Transfer-Encoding / Authorization 的重复则会返回 400。第二个 Cookie 行被降级为未知头,litespeed_role= 扫描永远不会执行,IS_BL_COOKIE 保持未设置,而 lsphp 仍然会收到 HTTP_COOKIE。LSAPI 采用后者优先:PHP 的 $_SERVER['HTTP_COOKIE'] 是第二行。

HTTP/2 已经会扫描每一个 Cookie 头。这个残留问题属于 HTTP/1.1。实验环境并未填充 $_COOKIE['litespeed_role']。不是 WordPress ATO。不是 RCE。

ID暂无 CVE
类别权限残留(1.8.2.1 的 litespeed_role= 403 跳过)
可达性远程(未认证的 HTTP/1.1)
CWECWE-693、CWE-436
CVSS高危:7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
产品OpenLiteSpeed
受影响版本1.9.3(edbe7f7);HTTP/1.1 加 lsphp
认证无
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1:18750

攻击者能做什么

在一个 HTTP/1.1 请求中发送两个 Cookie 头。第一个无害。第二个携带 litespeed_role=。OpenLiteSpeed 在单个 Cookie 头以及每个 HTTP/2 Cookie 头上都会对该名称返回 403。重复的 HTTP/1 Cookie 会跳过 403。lsphp 仍然会在 HTTP_COOKIE 中看到该角色。

解析 HTTP_COOKIE 的应用会拿到 1.8.2.1 控制逻辑本应阻止其到达 worker 的值。仅读取 $_COOKIE['litespeed_role'] 的应用在本实验环境中并未看到它。

我是如何发现的

在 Caddy 和 lighttpd 之后,对 v1.9.3 进行了二十次源码搜寻。1.8.2.1 的拦截逻辑是在第一个公共 Cookie 上执行 memmem(..., "litespeed_role=", 15)。重复 Cookie 不在 400 列表中。

走过的弯路:以为 urllib 能发送两个 Cookie 头(它会将它们合并);以为官方 docker 会监听 8088(Hub 镜像监听的是 80);以为 $_COOKIE 会遵循 HTTP_COOKIE 的后者优先(LSAPI 从第一个头填充了 cookie 表)。

实验环境

cd lab
./run.sh

镜像 litespeedtech/openlitespeed:1.9.3-lsphp84。Oracle lab/www/cookie.php。原始 HTTP/1.1 socket。绑定回环地址。

SUCCESS openlitespeed-dup-cookie-litespeed-role single-cookie=403 dummy=200 dup-cookie=200 php-sees-role=yes how=php-http-cookie OLS-DUP-COOKIE-LITESPEED-ROLE-WITNESS

修复方案

像 HTTP/2 已经做的那样扫描每一个 HTTP/1 Cookie 头,或者像 Host 返回 400 那样对重复 Cookie 返回 400。

参考资料

  • github.com/litespeedtech/openlitespeed 标签 v1.9.3(edbe7f7db12577e905291955a6d416200942fb8b)
  • src/http/httpreq.cpp 重复的公共头、首个 Cookie 的 litespeed_role= 扫描、IS_BL_COOKIE 403
  • src/http/httpcgitool.cpp 将未知头导出为 HTTP_COOKIE
  • 1.8.2.1 拦截 litespeed_role cookie
下载工具