Hack the Box 靶场练习-INSANE-ArtificialUniversity
内容提要
本文分析了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的漏洞,特别是gRPC服务中的命令执行漏洞。通过对DebugService和GenerateProduct函数的深入分析,读者可以学习如何构建利用链,利用参数修改来执行恶意命令。这种技术在实际渗透测试中非常重要,能够帮助安全研究人员识别和修复类似的安全隐患。
越权漏洞的发现与利用
文章中提到的/admin接口越权漏洞展示了如何通过构造特定请求绕过身份验证。这一过程强调了在开发web应用时,必须严格控制用户权限和接口访问。开发者应关注接口的权限管理,确保敏感操作只能由授权用户执行,以防止潜在的安全风险。
XSS漏洞的利用方式
利用pdf.js的XSS漏洞构造payload的部分,展示了如何通过跨站脚本攻击实现更复杂的攻击链。这提醒开发者在处理用户输入和生成动态内容时,必须采取严格的安全措施,如输入验证和输出编码,以防止XSS攻击的发生。
延伸问答
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。