PortSwigger 大模型安全靶场的第二篇记录,学习大模型安全的思路。
靶场地址:https://portswigger.net/web-security/all-labs#web-llm-attacks
题目介绍
考点:利用大模型API的漏洞攻击
场景:这是一个包含系统命令注入执行API漏洞的靶场,可以通过大模型调用API进行攻击利用。
目标:从Carlos用户的home目录下删除morale.txt文件
难度:中
开始启动靶场环境
Write Up
大模型试探
为了区分文字图片,故该部分加了文字背景
老规矩,启动靶场点击Live Chat进入大模型对话界面,先让其说中文。
再细问一下能力
还在这里打太极,直接摊牌
看来这次是真的没有,根据题目描述,只能从现有的API进行入手了
输入点尝试
个人认为比较关键的API就是这两个了,然后与Web安全类似的事情是,这些API也是有输入点的:用户名、电子邮件地址。回想一下题目描述,尝试看看这些输入点可不可以利用进行命令执行。
但是我们现在并没有用户相关的信息,重置密码的接口是不能用的,那么只能尝试订阅的接口了
然后我想到了这个系列的靶场都会把你需要用到的工具提供给你
上面提供了Email客户端,应该靶场提供的电子邮件地址
可以看到,这个接口是执行成功的。
命令执行
到了这里,从实际场景考虑,我只是获得了一个输入点,如果不是事先靶场的情况下,并不会对其进行更深层次的RCE手工测试。但是毕竟这是做题,属于先射箭再画靶了,既然知道靶场描述,了解到了确实有接口存在,那么肯定得基于这个输入点进行命令执行的尝试了。
那么在邮箱后缀不能变的情况下,只能对@之前的内容进行RCE尝试,RCE首先想到的就是whoami命令
然后,我又回到Email Client,发现这个邮件也被记录了
那么就意味着这个邮件客户端应该可以查看到所有的邮件发送记录,也算是靶场为了便于挑战者研判做的回显功能了。
继续进行尝试,最终多次测试验证之后,发现利用方式
命令执行的方式为$(cmd),好直接开始删除home目录下的morale.txt文件
whoami得到当前服务器上的就是carlos用户,头一次的命令应该成功了,当时没有去看Email Client,然后紧接着怕没成功又执行了一个全路径的删除命令,以为还没成功,然后回到Email Client才发现,已经提示解决了
总结
这次的靶场在大模型的基础上有了传统web安全的影子,API调用类大模型的安全问题其实跟web安全一样,只是输入的方式从原本的HTTP参数变为了语言输入。
不过从靶场的场景来说,纯黑盒视角下我个人在现实中是不会这么手工测试的,实际工作中也没有遇到过类似的命令执行场景,只能说靶场可能更多的还是为了教会大家利用方法和思路。
原文始发于微信公众号(飞羽技术工坊):用可命令执行的大模型进行偷家
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论