通过前期信息收集,发现一处登录页面:
只有登录,没有注册、忘记密码等入口。
那就试着对端点进行Fuzz看看:
然后将登录请求替换为注册看看:
失败。
查看Wappalyzer插件会有什么启示:
有 GraphQL、React、Next.JS,要知道GraphQL通常很容易受到逻辑漏洞攻击,但发现这些漏洞并不容易,往往需要 JavaScript 的动态调试:
在控制台仔细查看后,可以看到认证过程中的 GraphQL 错误,React 与后端之间也是照常进行交互。
那么只能尝试从 JavaScript 文件中“翻翻”了。使用user
关键词进行搜索:
找到6个JS文件,尝试使用login
关键词进行搜索:
发现 2 个 mentula 文件:
next/static/chunks/pages/users-b48829712ecbd6a6.js
使用 JS Beutify
插件查看:
对代码进行反混淆后,再提交给 ChatGPT 进行审查,然后编写所有可能的 GraphQL 变更和操作:
再次将尝试添加用户并测试:
通过报错信息,发现是由于用户角色为 ADMIN 而非 Administrator:
将角色修改为Administrator,再次测试:
Nice!成功添加管理员账户,登录管理面板:
你学到了么?
以上内容由骨哥翻译并再创作。
原文:https://medium.com/@0xbugatti/js-review-and-abuse-graphql-result-10xbac-admin-panel-ato-0f013fe471ea