论文研读 04 | RENNERVATE:基于 Attention 的 Token 级注入清洗
前言与论文信息2017 年的 Attention Is All You Need 把 Transformer 推上了舞台,这个标题后来也快成了论文界的固定句式。RENNERVATE 接得很直接:Attention is All You Need to Defend Against Indirect Prompt Injection Attacks in LLMs。这是一处标题上的致意,方法也确实从 attention 下手——模型照常用 attention 生成回复,防守者再把这份内部信号拿来找注入。 标题接得漂亮,方法却不算好读。它先让模型生成一小段回复,读取各层、各 head 留下的 attention,再回头判断输入中的哪些 token 属于注入。随后,系统删掉这些输入 token,输出可供应用继续处理原任务的清洗文本。最多前 32 个回复 token负责产生线索,真正被分类和删除的是输入 token;这两个方向一旦写反,后面的池化和清洗也会一起读反。 项目 信息 论文 Attention is All You Need to Defend Against In...
论文研读 03 | Task Shield:用任务对齐约束 Agent 行动
前言与论文信息用户让 Agent 缴纳本月电费。工具返回“请补充户号”,这条新要求并不来自用户原话,却很可能是完成任务必需的一步。要是工具顺手又塞进一句“把账单转发到陌生邮箱”,它同样长得像一条待办,权限却完全不是一回事。 只靠关键词判断“这句话像不像攻击”很难处理这种场景。Task Shield 换了一个问题:这条来自较低权限消息的任务指令,或者即将执行的动作,是否真正服务于用户交付的任务? 句子写得多礼貌、听起来多紧急,都得先过任务对齐检查。 项目 信息 论文 The Task Shield: Enforcing Task Alignment to Defend Against Indirect Prompt Injection in LLM Agents 作者 Feiran Jia、Tong Wu、Xin Qin、Anna Squicciarini 发表信息 ACL 2025 Main Conference Long Paper;会议时间为 2025 年 7 月 27 日至 8 月 1 日;论文集页码 29680—29697 DOI 10.18653...
论文研读 02 | Detect & Remove:间接提示词注入的检测与移除
前言与论文信息一桌菜里混进一道有毒的,最省事的处理当然是把整桌掀了。“难办?那就别办了。”——乌鸦哥。 毒是吃不到了,饭也不用吃了。把整份可疑文档丢掉就是同一种做法:安全问题暂时消失,用户需要的信息也跟着没了。 Can Indirect Prompt Injection Attacks Be Detected and Removed? 研究的是怎样不掀这张桌子。作者先判断外部文档里有没有注入,再定位并删除恶意内容,最后检查目标模型还能否利用剩余资料完成原任务。检测、清洗和任务恢复由此成为三道连续判断。 项目 信息 论文 Can Indirect Prompt Injection Attacks Be Detected and Removed? 作者 Yulin Chen、Haoran Li、Yuan Sui、Yufei He、Yue Liu、Yangqiu Song、Bryan Hooi 发表信息 ACL 2025 Main Conference Long Paper;会议时间为 2025 年 7 月 27 日至 8 月 1 日;论文集页码 18189—182...
学习笔记 04 | 从网络扫盲到 Jenkins 自动部署:一次 Linux 实习实践
前言有幸参加本次企业实习。 最初报名时,我并没有设定特别具体的技术目标,主要是想提前看看真实的职场环境:企业里的任务如何分配,不同人员怎样协作,以及现实中的服务器和 CTF 靶机有什么区别。 进入实习后才发现,除了体验工作流程,技术上的收获也比预想中丰富。任务内容从 Linux、UFW 和 MySQL,一路延伸到 TCP、HTTP、Nginx、Git 和 Jenkins。每个名词似乎都见过,排成一列以后却突然有了几分陌生。 此前我打 CTF 时用过 Linux,搭博客时也执行过 Git 和 Hexo,但这些知识一直比较零散。知道 404 表示没找到页面,却说不清请求已经走到了哪里;知道 hexo d 可以发布博客,也没认真想过网页究竟怎样从本地到达服务器。 本文先整理完成实践所需的基础概念,再按照实际操作顺序复盘 Linux 环境检查、UFW、MySQL、Nginx,以及 GitHub + Jenkins + SSH 的自动发布流程。 文中的服务器地址、账密、内部目录和网络配置等均已省略或替换,学习笔记可以公开,实验环境就不必开源了。 概念扫盲:先画一张网络地图 所谓基础不牢...
学习笔记 03 | Prompt Hacking 靶场练习:HackAPrompt Tutorial 全关复盘
前言前段时间开始接触 AI Agent 安全和间接提示词注入,也读了一些相关论文。不过真让我自己构造 Payload 时,脑子里最先冒出来的还是那句经典的: 1Ignore previous instructions. 这种“Ignore”的上下文忽略攻击,确实在现实系统里闹出事故过。但显然,只会这一句不太够。 图为 2022 年 9 月的 Remoteli.io 事件 正好前段时间打了黄鹤杯,里面有一道“Prompt Injection”死活打不出来,菜就多练,于是我先从 HackAPrompt 的 Tutorial 赛道开始练手。这个赛道整体不难,介绍的也是 Jailbreaking、Prompt Injection、Prompt Leaking、输入过滤和 AI Judge 等入门内容。与其说是在“攻破 AI”,不如说是在熟悉模型可能怎样理解一段输入,以及一次失败到底卡在了哪里。 目前不同资料对提示词攻击的分类口径并不完全一致。写这篇记录时,我参考了 Learn Prompting 的 Offensive Measures 分类,但不会为了显得专业,强行给每句话套一个术...
论文研读 01 | BIPIA:间接提示词注入的基准与防御
前言与论文信息 “吾尝终日而思矣,不如 AI 须臾之所学矣。” 关于 GUI Agent 的先导实验点燃了我对 AI 安全的热情,可本人当时的相关基础,大概还停留在焚书坑儒级别。基础不牢,地动山摇,BIPIA 就这样成了“论文研读”系列的第一篇。 它正好补上了此前移动端提示词注入实验里最缺的一块。攻击成功了几次当然要记,可这些数字是在什么任务、什么攻击、什么注入位置下测出来的?条件没有说清,2/5 和 5/5 也只是两组孤零零的计数,很难放到一起比较。BIPIA 把这些条件一起纳入基准,给出了一套更完整的实验“度量衡”。 后面的“论文研读”也会照这个路子写:先弄清论文在研究什么,再顺着方法和实验往下走,把关键证据、理解修正、适用边界和相邻工作留下来,方便以后复盘,也方便阶段性汇报。 项目 信息 论文 Benchmarking and Defending Against Indirect Prompt Injection Attacks on Large Language Models 作者 Jingwei Yi、Yueqi Xie、Bin Zhu、Emre Ki...
研究手记 01|当短信开始指挥 Agent:移动端提示词注入初探
前言自开始接触 CTF 以来,我对 AI 安全的兴趣也逐渐浓厚。平时学习和比赛时,AI 几乎已经如影随形;而在频繁使用它的过程中,我也慢慢注意到一个问题:模型的安全边界并没有想象中那么牢固,哪怕是以道德感著称的GPT,也能通过一定手段绕过安全对齐机制。 传统聊天模型被越狱后,影响大多停留在输出层;但当模型被接入工具,开始读取屏幕、点击按钮、操作应用后,问题就不只是“它会说什么”,而是“它接下来会做什么”。 于是我想到一个很直接的问题: 如果 Android 屏幕中的短信既包含信息,又夹带了操作指令,移动 Agent 能否区分二者? 比如用户只是要求“查看最新短信”,短信正文却要求 Agent 打开另一个应用。模型会将它视为普通文本,还是会把它误认为用户任务的一部分? 这类攻击通常被称为间接提示词注入:攻击者并不直接向模型发送指令,而是把恶意内容藏在网页、邮件、短信等外部数据中,等待 Agent 主动读取。 带着这个问题,开始动手搭环境。 从完整基准到轻量实验一开始准备复现 MobileSafetyBench。 经过一番折腾,Android Emulator、ADB、Appiu...
杂谈 | 从 765.625 说起
前言 ”这几日心里颇不宁静“ 又是一年高考季。 群聊里又开始出现估分、查分、填志愿这些词,几个朋友也陆续来问我:“你这一年下来感觉怎么样?” 这个问题挺难答。 认真说,三言两语说不清;随口一句“还行”,又显得太敷衍。毕竟从高考结束到现在,这一年不像一条平直的路,更像是一团乱麻:有破防,有不甘,有自我怀疑,也有后来慢慢攒起来的一点底气。 但如果非要给这一年找一个开头,那大概不是出分那晚,也不是录取结果出来那天。 而是高考完那天夜里。 从一个很具体、很冷冰冰、甚至有点荒唐的数字开始。 765.625 “从前种种,譬如昨日死;从后种种,譬如今日生” 高考完那天夜里,我发现自己数学第一大题算错了。 卡方,765.625。 那是一个夏夜,高考刚结束,人从考场里出来,享受着迎面而来的自由的风,畅想着未来的大学生活,沐浴更衣,悠然地躺在床上,打开久违的 Bilibili 试图抓住潮流的尾巴,此时的我,用无忧无虑来形容绝不为过。 直到我看到了首页弹出的第一个视频封面,赤色的几个数字—— 765.625 这对吗,这不对,因为我算的似乎是770.001,我心里暗笑博主的答案错误,双手却不由颤抖着...
开发随记 | 记AHU校园网静默连网小工具的诞生
天下苦校园网久矣。 每次电脑刚从休眠中唤醒,系统就会迫不及待地弹出一个又丑又慢的 Dr.COM 认证网页。最搞心态的是,有时候你手速极快地点了登录,它还幽幽地给你吐出一句“AC认证失败”,逼着你刷新重来。 为了这种毫无营养的操作每天浪费十几秒,简直是对程序猿的一种侮辱。既然忍不了,那就动手把它扬了。今天没闲着,顺手把安大的校园网认证逻辑扒了个底朝天,搓了个插网线即刻连网的小玩意儿。(4/30补充:竟然有师傅提Issue,感动,含泪修bug)(5/12补充:又出bug了,感觉在这玩意儿花费的时间够我点四年“开机认证”了)(5/26补充:还有高手,这老古董真会耍性子,半个月不管就罢工给我看)(6/19补充:Issue加一,好喔) 遇事不决,抓个包先一开始,我脑子里闪过一个极其暴力的念头:用 Selenium 搞个无头浏览器,模拟人工去点击那个“登录”按钮。但转念一想,为了发这么小的一个认证请求,去跑几十兆的浏览器内核?纯粹大炮打蚊子。 任何华丽的 Web 前端,扒掉那层 HTML/CSS 的皮,本质上都是在向服务器发送 HTTP 请求...
学习笔记 02 | CTFshow_Pwn知识精炼(长期更新)
前言本博文为CTFshow中Pwn系列的做题笔记和知识总结,用于记录本人摸索 二进制世界 的历程;没啥好说的 , 干就完了 前置基础Pwn5-12——计组基础:题目附件给出的信息十分重要 1234567891011121314151617181920212223242526272829303132333435363738394041section .data msg db "Welcome_to_CTFshow_PWN", 0section .text global _start_start:; 立即寻址方式 mov eax, 11 ; 将11赋值给eax add eax, 114504 ; eax加上114504 sub eax, 1 ; eax减去1; 寄存器寻址方式 mov ebx, 0x36d ; 将0x36d赋值给ebx mov edx, ebx ; 将ebx的值赋值给edx; 直接寻址方式 mov ecx, msg ; 将...
