渗透测试之我如何破解管理员的Cookie

渗透测试之我如何破解管理员的Cookie

介绍:

在当今世界,我们在很大程度上依赖于 Web 应用程序,无论是观看 Netflix、从亚马逊购买东西,还是与朋友聊天或在社交媒体上分享图片。但是这些网站和网络服务器如何知道我们所说的我们是谁?毕竟 HTTP/S 协议是一种“无状态”协议,这意味着每次访问者检索网页时,客户端都会打开一个与 Web 服务器的单独连接,服务器不会保留之前客户端请求的任何记录。

认识浏览器 Cookie

浏览器 cookie 是您访问网站时存储在 Web 浏览器上的一些文本。这有助于网络服务器跟踪访问该页面的用户。当您登录网站时,例如 facebook.com,服务器会向您的浏览器发送会话 cookie。如果有人可以猜出您会话的 cookie 或窃取它,他们将能够访问您的个人资料,而无需您的密码。

发现

在我最近的 Web 应用程序安全测试中,我创建了两个用户帐户。我的目的是测试应用程序是否存在 IDOR 漏洞或用户名冲突。乍一看,会话 cookie 看起来并不可疑。第一个用户帐户会话的 cookie 看起来像这样

010243E8A7DE54B7D908FE430219F756B7D90800057400650073007400310000012F00FF

嗯,cookie 看起来既复杂又安全,我们应该相信它并就此打住,对吗?

幸运的是,在我的 Web 应用程序测试期间,我注意到在创建多个帐户时会话 cookie 的模式。

创建的第一个帐户(用户名:test1):

 Cookie: 010243E8A7DE54B7D908FE430219F756B7D90800057400650073007400310000012F00FF

创建的第二个帐户(用户名:test2):

Cookie: 010284E4333B55B7D908FE84FEA45357B7D90800057400650073007400320000012F00FF
渗透测试之我如何破解管理员的Cookie

我在测试管理员用户名冲突时创建的第三个帐户如下所示

(用户名:admin ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ’):

这次的Cookie和前两个看起来很不一样

01029FF0010BD7C2D908FE9F0A7323D9C2D908000D2700200020002000610064006D0069006E00200020002000270000FF012F0

有 2000 2000 2000 2000 2000 的长期模式……。那可能是我在用户名中添加的空格吗?

我很好奇并创建了另一个有 16 个 A 的用户帐户

用户名::aaaaaaaaaaaaaaa

cookie:0102DF1350BAD9C2D908FEDF2DC1D2DBC2D9080010 6100 6100 6100 6100 6100 6100 6100 6100 6100 6100 610601060F010601000F100601001001

什么?我吓坏了。这一刻我意识到6100代表了字符A!

我可以修改 cookie 让它使用 admin 吗?所以我对理论进行了测试。这次我用 12 个 B 创建了另一个用户帐户,然后我回来了

cookie:0102AAC39811DAC2D908FEAADD092ADCC2D908000C 6400 6400 6400 6400 6400 6400 6400 6400 6400 6400 6400 600FF10F

6400重复12次!所以我们现在知道 cookie 保存了用户名,它是用这 4 位数字编码的。我重复这个过程并创建 3 个其他帐户并为 admin 提供值(admin = 6100 6400 D006 6900 6E00)

我重新登录到 test1 帐户用户,这次我稍微修改了 cookie,添加了“6100 6400 D006 6900 6E00”这是管理员。cookie看起来像

 0102 7B459BBEDCC2D908FE7B5F0CD7DEC2D9080005 6100 6400 6D00 6900 6E00 00012F00FF

我刷新了网页,我收到一个错误…好吧,也许需要更多的调整,所以我回头看看 cookie,这次稍微修改一下

0100 7B459BBEDCC2D908FE7B5F0CD7DEC2D9080005 6100 6400 6D00 6900 6E00 00012F00FF

将 cookie 的开头从 0102 更改为 0100 并且它起作用了!我能够以网站的管理员用户身份浏览该页面。我拥有该网站!

通过这种访问级别,我可以完全控制 Web 应用程序,并且可以尝试上传 webshel​​l,但这超出了本文的范围。

关键要点:

1-在测试 cookie 时创建多个帐户并在 cookie 中查找模式。

2- 仅仅因为它看起来很复杂并不意味着它确实如此。

3-如果你有一个理论,无论这个想法听起来多么疯狂,总是要亲身实践!

from

转载请注明出处及链接

2 comments

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注