通过 JS 文件实现Bypass管理面板

admin 2022年5月10日22:28:22评论30 views字数 1600阅读5分20秒阅读模式

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。


背景介绍:


今天的故事来自一位Zhenwar Hawlery白帽子,他和他的好基友是来自库尔德斯坦的白帽子和漏洞赏金猎人,他们喜欢在 Web 应用程序和移动应用程序中挖掘漏洞。废话不多说,开始我们今天的分享。


漏洞发现过程:


目标网站提供了一个由 Flutter 创建的移动应用程序和网站,要知道捕获 Flutter 创建的 APP 请求是很困难的,所以他们没有在移动应用上浪费太多的时间,而是决定把注意力集中在网站上,因为它也是移动应用的后端。


通常,他们会试图找到管理面板,因为主域网站只是一个用于下载应用程序的页面。在暴力破解子域后,他们发现该网站有一个类似的子域 ([admin.project.com]---本篇文章中使用 project.com 作为项目的域名进行替代),与往常一样,他们首先访问了一些敏感的子域。


通过 JS 文件实现Bypass管理面板

通过Amass Tool查找子域


当访问某个子域时,他们看到了一处登录页面:


通过 JS 文件实现Bypass管理面板


第一个输入字段为手机号码(因此管理员可以通过他的电话号码登录),第二个字段是密码,看起来很不错,但真的是这样吗?


经过尝试发现:


1- 无法暴力破解密码(301 Too Many request)

2- 目录扫描无任何结果

3- 没有任何可以尝试绕过的方式

4- 该网站是个新网站,因此没有任何相关的URL/信息


那么此时如果换做是你,你会怎么做?放弃还是继续?


白帽哥俩发现阅读源代码有时是发现漏洞很不错的一种办法,当他们阅读页面源代码时,只有一行代码值得关注,那是一个 Javascript 文件:


通过 JS 文件实现Bypass管理面板

页面源代码


这通常是漏洞的开始,也是最困难的部分,当然也是最令人愉快的部分,因为你应该逐行阅读 JS 文件以了解代码并了解网站的工作方式,这很难,但哥俩却感到非常愉快!:)


打开 JS 文件后,他们首先通常会搜索一下敏感词,如(admin、config、password、token、email、.conf等),当尝试到token时,他们发现了这段‘有料’的代码:


通过 JS 文件实现Bypass管理面板

源代码中的一段代码

([“TOKEN”,”hxcdjskhck643782bcdshcdsjk231cbdns”,”fullname”,a,”phone”,b,”city”,c,”superadmin”,d,”permisions”,e,”password”,f],t.N,p))s=3return A.U(A.ck(null).cc(“https://project.app/RedactedAppBackend/dashboard/addAdmin.php",c,n),$async$uH)


很明显这是一个 POST 请求:


TOKEN=hxcdjskhck643782bcdshcdsjk231cbdnsfullnamephonesuperadminpermissionspassword


那么我们能用它们来做什么呢?首先我们应该知道如果发送一个这样的 POST 请求数据会发生什么?在结合最后的 addAdmin.php URL 部分,我们可以大胆推测它将创建另一个管理员帐户:

RedactedAppBackend/dashboard/addAdmin.php

于是,他们果断从JS文件获得的数据伪造了一个POST请求:


通过 JS 文件实现Bypass管理面板

POST请求


喜闻乐见,响应为OK,这意味着他们成功地创建了另一个管理员帐户,于是尝试使用电话号码和密码再次登录:


通过 JS 文件实现Bypass管理面板


成功登录控制面板,小哥俩也因此获得了漏洞赏金$奖励。


建议:


对于漏洞赏金猎人来说,重要的是:


1-关注JS文件

2-始终认为你是第一个找到该页面/站点的人

3-没有什么是不可能的


对于开发者来说,重要的是:


请勿将敏感数据放入 Token! 等客户端源代码中。



====正文结束====

原文始发于微信公众号(骨哥说事):通过 JS 文件实现Bypass管理面板

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月10日22:28:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   通过 JS 文件实现Bypass管理面板http://cn-sec.com/archives/994388.html

发表评论

匿名网友 填写信息