这篇文章绝对是我的心头好,因为它揭示了一个你绝对想不到的漏洞!
话说,我当时在给一家电商网站做渗透测试,目标有两个:target.com
(用户门户,买东西的地方)和 admin.target.com
(卖家管理后台,上架商品、管理订单、查看客户信息都在这)。
我的主要任务是揪出 IDOR(不当直接对象引用)和访问控制上的问题。为了提高效率,我祭出了 Autorize 这个神器。
简单来说,如果一个低权限用户竟然能溜进管理端点,Autorize 就会毫不犹豫地亮起“Bypass”的红灯。
img
我把普通用户的 Cookie 塞进 Autorize,然后开始对 admin.target.com
狂轰滥炸,看看普通用户能不能偷偷摸摸地访问管理端点。
万万没想到,测试过程中出现了一些诡异的现象。
每次我访问这个端点:
https://admin.target.com/orders
,都会触发下面这个 GraphQL 请求:
POST /graphql
Host: admin.target.com
{"operationName":"GetOrders","variables":{"shop_id":"X"},"query":"query X"}
响应里面包含了我的店铺的所有订单信息,这没毛病。
但神奇的是,Autorize 竟然把它标记为“已绕过”!难道说,一个普通用户也能发出这个请求,偷窥我店铺的订单信息?
为了验证,我把这个请求丢到 Repeater 里,想用普通用户的 Cookie 再发一次,结果……Duang!报错了!
img
Autorize 说绕过了,Repeater 却说“禁止通行”!
我一度怀疑是 Autorize 抽风了,但还是硬着头皮继续测。
接下来的一周,这个情况反复出现。
Autorize 坚定地认为 GetOrders
端点“已绕过”,而 Repeater 每次都无情地甩给我一个 403 forbidden
。
到了这个时候,我开始怀疑人生了,这肯定不是 Autorize 的锅,而是我忽略了什么关键的信息。
终于,我灵光一闪!
Autorize 和 Repeater 之间唯一的区别就是 时间间隔!
虽然它们用的 Cookie/令牌都一样,但 Autorize 是马不停蹄地调用管理员端点,而我从 Repeater 发出的请求总要磨蹭一会儿。
为了验证我的猜想,我先用管理员令牌请求了一次 GetOrders
端点:
POST /graphql
Host: admin.target.com
Auth: Bearer admin
{"operationName":"GetOrders","variables":{"shop_id":"X"},"query":"query X"}
然后,我立刻用用户令牌对同一个请求进行了攻击:
POST /graphql
Host: admin.target.com
Auth: Bearer user
{"operationName":"GetOrders","variables":{"shop_id":"X"},"query":"query X"}
结果,我竟然真的拿到了该店铺的所有订单信息,包括客户的详细资料!
真相只有一个!
所以,到底发生了什么?原来是服务器搞了个小动作:它会在 3 到 4 秒 的极短时间内缓存 GetOrders
的响应。
也就是说,如果黑客在正常店铺管理员使用管理后台的同时发起请求,就能在短短几秒内,利用 shop_id
这个公开信息,偷走任何店铺的所有订单和客户信息!简直是空手套白狼!
shop_id
?公开的秘密而已。
搞事情!
有了这个发现,我写了一个简单的 Bash 脚本,让它一天 24 小时不停地请求 GetOrders
端点。
这样一来,每当管理员访问他们的后台,订单和客户信息就会被缓存几秒钟,而我的脚本就能趁虚而入,绕过所有的访问控制,把这些信息一锅端走!
眼见为实,POC 走起!
我让 Intruder 用用户令牌向 GetOrders
端点发起攻击。
由于访问控制的存在,一开始它总是收到 403 forbidden
的无情拒绝。
img
与此同时,我化身 adminUser
,登录 admin.target.com
,像往常一样访问 admin.target.com/orders
。
就在这时,一个代表管理员的 GetOrders
GraphQL 请求在后台发出,并且被缓存了 3 到 4 秒。
最终,这个被缓存的响应,被之前一直返回 403
错误的 Intruder 成功捕获!
img
这个漏洞被评为“严重”,并在几个小时内被火速修复。
img
img
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!
黑客/网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**
**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************