Hack the Box 靶场练习-INSANE-ArtificialUniversity
💡
原文中文,约7100字,阅读约需17分钟。
📝
内容提要
本文分析了Hack The Box上的一个web题目,涉及在线教育平台的商城模块。通过对gRPC和Flask服务的分析,发现了利用链。修改DebugService参数后触发命令执行,最终构造恶意请求成功反弹shell并获取flag。
🎯
关键要点
- Hack The Box上的web题目ArtificialUniversity模拟在线教育平台的商城模块。
- 项目源码分为gRPC的product_api服务和Flask的store商城web两个部分。
- 通过分析gRPC的GenerateProduct函数发现其调用了eval函数,存在命令执行漏洞。
- DebugService函数可以修改price_formula参数,构造利用链以执行恶意命令。
- 在本地环境成功复现命令执行后,开始分析web端的接口寻找漏洞。
- 发现/checkout/success接口存在越权漏洞,可以利用admin身份访问敏感内容。
- 通过创建价格为负数的订单,绕过登录验证,访问/admin相关接口。
- 利用pdf.js的xss漏洞构造payload,发送post请求访问/admin其它接口。
- 将gRPC请求转换为gopher协议,通过curl发送请求实现命令执行。
- 最终通过构造的payload反弹shell并获取flag。
❓
延伸问答
Hack The Box上的ArtificialUniversity题目主要模拟了什么?
ArtificialUniversity题目模拟了在线教育平台的商城模块。
在ArtificialUniversity中,如何利用gRPC服务的漏洞进行命令执行?
通过修改DebugService的price_formula参数并调用GetNewProducts函数,可以触发eval函数执行恶意命令。
如何在web端发现越权漏洞?
在/checkout/success接口中,通过传入admin的账号和密码,可以访问敏感内容,发现了越权漏洞。
创建负数价格订单的目的是什么?
创建负数价格订单是为了绕过登录验证,访问/admin相关接口。
如何利用pdf.js的xss漏洞进行攻击?
可以构造payload,利用pdf.js的xss漏洞发送post请求访问/admin其它接口。
最终如何获取flag?
通过构造的payload反弹shell并获取flag。
🏷️
标签
➡️