访问被拒绝:我的姓氏正在作为 php 命令读入

Access Denied: My last name is being read in as a php command

所以几个月前我开始遇到这个问题,当我尝试访问某些网站时,我会随机获得一个访问被拒绝的页面。起初我并没有多想,只是继续我的生活。快进到现在。我试图注册 March Madness 支架但被阻止了。我无法在 Kohls 或其他在线购物网站结账。我买不到灰狗或 amtrack 的票。我无法访问我的银行帐户。从本质上讲,它变得有点不方便。

在随机尝试之后,我尝试以不同的方式拼写我的姓氏 (Fread)。我改用 Frea,最后没有 "d"。神奇的是,一切又恢复正常了。在与一些朋友交谈后,他们帮我解决了问题,我们了解到 Fread 是一个 php 命令 fread 并且我们意识到如果我们输入其他 php 命令,即 fwrite ,我们还会得到一个访问被拒绝的页面。

问题已解决,但不是真的。我不知道如何解决这个问题。我什至不知道从众多阻止我的网站与谁交谈或联系。我的银行已经处理这个问题 2 个月了,并且在 2 周内没有向我更新他们正在做什么来解决这个问题。

不幸的是,我无法使用姓氏拼写错误的信用卡,而且仍然无法登录我的银行帐户,因为 fread 是我用户名的一部分。如果有任何反馈可以帮助我恢复在这些网站上再次使用我的姓氏,我将不胜感激!!

我应该联系谁?如何让人们足够关心来修复它?为什么?有帮助的想法?

为了让每个人都能看到我没有说谎,这是一个发生这种情况的示例网站。本演练将 link 您转到 footlocker 网站以创建帐户。到达那里后,您只需在姓氏字段中输入 Fread,然后点击提交。砰!拒绝访问。返回并将其更改为 Fwrite 并点击提交。砰!拒绝访问。继续,现在输入您的名字,或任何非 php 命令。现在它可以工作并且没有访问被拒绝。

  1. 转到:https://www.footlocker.com/account/?action=accountCreate
  2. 在姓氏字段中:Fread(无需填写任何其他字段)
  3. 点击继续
  4. 访问被拒绝
  5. 重复不同的 php 命令,您将被拒绝访问
  6. 重复使用非php命令,您将不会被拒绝访问

请帮忙!

*****注意:我在不同的 IP 地址、不同的计算机、不同的 OS 上尝试过此操作,让我的朋友完全在不同的城镇尝试,但错误无处不在。我的家人也有相同的姓氏。

这真的很不幸,我只能建议您联系您要访问的站点的技术部门。他们应该不难意识到他们试图过滤这样的名字所犯的错误有多大。如果他们不同意,您最好还是不要相信他们提供您的信息...

很抱歉听到.. 有这类错误的网站通常是过时的,他们这样做是出于安全原因..

您可以尝试使用这些代替(仅适用于不重要的网站,不适用于信用卡等),从下面复制并粘贴以查看是否有效

Frеad(е是这里的数学符号)

Freаd(а 是俄语字符)

F r e a d(字符间加空格)

_Fread(带下划线的前缀)

Fread(使第一个字符为宽字符)

如果上述none有效,您应该联系管理员。

从技术上讲,他们可以直接在数据库中将您帐户的姓氏设置为 Fread,从而绕过 PHP 检查。但是我知道这些人通常很难接触到。

好在现在的网站很少有这种问题,相信有这些问题的网站会在近期得到更新。

完全披露:我是为 Fread 女士测试和验证此错误的人之一。

考虑到这个问题出现的突然以及问题的广泛性,这显然不仅仅是一两家公司的开发人员疏忽大意,也显然不仅仅是旧网站。如果美国国税局、你的银行、Amtrak、Greyhound、Footlocker 和其他大公司几乎同时开始为你倒闭,它一定与更新的共享代码有关,这很难追踪。然而...

我发现了这个错误!

没想到自己在做一些自娱自乐的web开发时遇到了同样类型的错误。我试图 POST 字符串“测试事件;描述将放在此处”,并收到 403 错误。经过一番折腾和反复试验,结果发现分号是罪魁祸首,删除分号后,POST 起作用了。

显然,并非 每个 分号实例都会对服务器构成威胁,因此我发现该规则非常愚蠢。这让我想起了这个问题,所以我尝试提交相同的字符串(减去分号),最后加上“fread”。瞧,403 回来了。

跨站脚本(XSS)

在安全性较差的网站上,黑客可以将代码注入输入字段,这样服务器将 运行 编码而不是存储数据。这称为跨站点脚本或 XSS。当然,网站管理员和网络开发人员希望防止这种情况发生。

在这种情况下,服务器似乎看到了一些看起来像命令的东西(这使它怀疑是 XSS 尝试)并且惊慌失措。在我的例子中,它看到了一个分号,这是一个命令终止符。在你的,它看到了它认为是文件读取命令的内容。在这两种情况下,服务器都认为我们是“威胁”,并选择拒绝我们通过 403 错误访问我们请求的资源。

模组安全

罪魁祸首似乎是 ModSecurity,Apache 和其他 Web 服务器的一个模块,它(除其他外)筛选 POST 可疑 XSS 攻击的输入。当我在我的网站上禁用它时,我能够 POST 我想要的任何东西都很好,因为(我觉得)我应该这样做。

ModSecurity 于 2016 年 3 月 9 日 updated to version 2.9.1,在此之前有相对稳定的候选发布版本,可能使用范围很窄,所以时间安排得当。今天它的使用非常广泛,所以很可能 Amtrak/Greyhound/Footlocker 都使用这个模块,考虑到问题的相似性和时间安排。

结论:

好消息:我 90% 确定它是 ModSecurity,他们可能是解决此问题的最佳单点联系人。您可以考虑将问题发布到他们的 GitHub 页面,或者直接联系一两个开发人员提出问题。

坏消息:他们可能仍将您视为边缘案例。此外,实际的最终产品修复可能取决于各个站点的管理员决定更新他们的内容 if/when ModSecurity 发布更新。但作为起点,与开发团队交谈当然仍然值得。

祝你好运!!