# 如何利用提示词攻破ChatGPT

- URL: https://www.yidoo.xyz/how-to-use-prompts-to-crack-chatgpt
- 作者: 核动力蜗牛
- 发布时间: 2024-06-30
- 更新时间: 2024-06-30
- 分类: LLM技术内幕
- 标签: chatgpt

```
特别声明：本文提到方法和提示词仅供娱乐和学习所用。
```

所谓提示词攻击，就是利用大语言模型的基本特性，通过特定提示词对原有的系统进行攻击，使其输出不该输出的结果，甚至执行不应执行的逻辑（例如输出错误的指令让 Agent 执行混乱）。

# 提示词注入 (Prompt Injection)

提示词注入是一种自然语言处理（NLP）中的攻击技术，类似于软件系统中的 SQL 注入。通过在用户输入的文本中加入特定提示词或指令，诱导语言模型生成特定输出。这种技术可用于恶意攻击、数据提取、信息操纵等场景。

例如，[Riley 在 Twitter 上分享的一个流行例子](https://twitter.com/goodside/status/1569128808308957185?s=20)：
![b927254129ed32c36a73198a616d3818.png](https://www.yidoo.xyz/images/b927254129ed32c36a73198a616d3818.png)
可以看到，后续指令忽略了原始指令。虽然随着模型的迭代，这个问题变得难以复现，但它为提示词注入提供了一个基本框架：**忽略前面的提示词 + 新的指令**。

下面是另一个提示词注入的例子，测试模型为 GPT-4：
![2f799a445a8842c26642c55e2f7b31ea.png](https://www.yidoo.xyz/images/2f799a445a8842c26642c55e2f7b31ea.png)
结果显示攻破了模型的防御系统。不过，在测试过程中发现，多加一个空行后，系统识别并拦截了攻击，如下：
![9d449d2a37778d4bd7429188d89f7f09.png](https://www.yidoo.xyz/images/9d449d2a37778d4bd7429188d89f7f09.png)
我个人推测原因是空行让模型识别出这是两个独立指令，从而进行防御。

# 越狱 (Jailbreaking)

越狱是另一种提示词攻击类型，旨在泄露提示中的机密或专有信息。以下介绍几种常用手段：

## 包装指令

ChatGPT 等 LLM 限制模型输出有害、非法、不道德或暴力内容。下面是测试 GPT-4 模型：
![2f68f65b18dce290ea60dbffaeb2be85.png](https://www.yidoo.xyz/images/2f68f65b18dce290ea60dbffaeb2be85.png)
可以看到模型系统拦截成功，但稍微修改提示词，对目的进行包装后，结果完全不同。以下是修改后的提示词：
![ff41f2d796cb4e4461f5b881d5943a86.png](https://www.yidoo.xyz/images/ff41f2d796cb4e4461f5b881d5943a86.png)

## DAN (Do Anything Now)

DAN 起源于 Reddit 网友提出的一种越狱技术，并持续迭代（最新为 DAN 6.0）。这种攻击手段允许用户绕过模型规则，创建一个名为 DAN 的角色，强制模型遵守任何请求，生成未过滤的响应。

目前我未能成功利用该手段攻破 ChatGPT，可能是模型升级堵住了漏洞。
![1b5fa79aa471ca1e34133b22b1888f7d.png](https://www.yidoo.xyz/images/1b5fa79aa471ca1e34133b22b1888f7d.png)
不过，DAN 确实是一个不错的攻击思路。以下是 Reddit 网友的截图：
![2284c44b4654819844fac3a9e96f0b25.png](https://www.yidoo.xyz/images/2284c44b4654819844fac3a9e96f0b25.png)

关于诱导 ChatGPT 违反规则的原理被称为 Waluigi Effect（瓦路易吉效应）。Waluigi 是 Mario 游戏中的反派角色，是 Luigi 的头号对手。
![8e5030294159a657f705fec66cb83cb7.png](https://www.yidoo.xyz/images/8e5030294159a657f705fec66cb83cb7.png)

Waluigi Effect 则指训练 AI 做某件事情会增加其做完全相反的事情的概率。《 [The Waluigi Effect (mega-post)](https://www.lesswrong.com/posts/D7PumeYTDPfBTp3i7/the-waluigi-effect-mega-post)》 这篇文章从技术角度分析了这一现象。从认识层面这个现象不难理解，比如训练 AI 永远不要伤害人类，首先需要定义何为伤害人类，即 AI 必然知道如何伤害人类。

## 沙箱突破

ChatGPT 具备代码生成和执行能力，比如生成代码获取当前时间。以下是沙箱突破的例子：
![b73864008ff289934e5bedaa3952d5ce.png](https://www.yidoo.xyz/images/b73864008ff289934e5bedaa3952d5ce.png)
实际生成的代码为：
![7a5db920ea348b86dbd0f448185e9b70.png](https://www.yidoo.xyz/images/7a5db920ea348b86dbd0f448185e9b70.png)
接着可以进行其他操作：
![2597df95c280074b639e5600e53f30b9.png](https://www.yidoo.xyz/images/2597df95c280074b639e5600e53f30b9.png)
![80861598efdeb5843a6a3110ae24e307.png](https://www.yidoo.xyz/images/80861598efdeb5843a6a3110ae24e307.png)
只要能执行命令，其实完全可以上传一个 bash 脚本或程序执行特定操作：）。

# 参考资料

- [reddit.com/r/ChatGPT/comments/10tevu1/new_jailbreak_proudly_unveiling_the_tried_and/](https://www.reddit.com/r/ChatGPT/comments/10tevu1/new_jailbreak_proudly_unveiling_the_tried_and/)
- [风险和误用 | Prompt Engineering Guide](https://www.promptingguide.ai/zh/risks)
