Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
WebMirage — 针对视觉-语言网络代理的对抗性图像攻击:从视觉定位到浏览器执行 | Kitploit
工具/GitHubGitHub/moontea0416/webmirage
代码分析Web安全渗透测试机器学习论文与研究红队AI 安全对抗性攻击
GitHubmoontea0416/webmirage

WebMirage

针对视觉-语言网络代理的对抗性图像攻击:从视觉定位到浏览器执行

查看仓库
1142天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

WebMirage

对抗性图像劫持 Web 智能体:从视觉定位到浏览器执行

Wanjing Han, Levi Taiji Li, Mu Zhang, Yue Jiang, Guanhong Tao — 犹他大学

WebMirage 是一个针对视觉定位 Web 智能体的红队测试框架。它在攻击者控制的网页图像(例如产品缩略图或个人资料照片)上精心构造局部对抗性扰动,使智能体在不同的网页渲染下选择攻击者的元素并执行相应的浏览器操作。该攻击是端到端构建的,从视觉定位到浏览器执行,而非仅在模型推理阶段。

两个组件实现了这一目标:

  • 角色槽位抽象与网页重组 —— 通过使用不同的伴随元素集合和槽位位置重组页面,对攻击者元素与其伴随元素之间的竞争进行建模,从而使扰动能够泛化到未见过的渲染。
  • 执行对齐监督 —— 对智能体后处理代码进行 CodeQL 数据流分析,识别哪些输出 token 实际决定了所执行的操作,优化仅在这些 token 上进行监督。

该框架针对 SeeAct 和 VisualWebArena 智能体在六种 VLM 骨干模型(LLaVA、MiniCPM-o、Phi-3 Vision 等)上进行了评估。完整评估请参见论文。


仓库结构

.
├── src/            # 扰动优化,每个骨干模型一个子目录
│   ├── LLaVA/
│   ├── MiniCPM-o/
│   └── Phi-3-vision/
├── scripts/        # 训练/评估启动脚本,每个骨干模型一个子目录
├── dataflow/       # 用于智能体数据流分析的 CodeQL 查询包(DataflowAnalysis.ql)
├── data/           # 重组后的训练/测试截图和对话模板
└── test/           # 预生成的干净样本和扰动样本,用于快速验证

前置条件

在使用此框架之前,必须手动设置基础模型。

由于各骨干模型的库依赖存在冲突,每个模型都需要独立的环境和本地下载的权重。

1. MiniCPM-o

  • 仓库: OpenBMB/MiniCPM-o
  • 设置: 克隆仓库,创建专用环境(例如 conda create -n minicpm),并安装依赖。
  • 权重: 在本地下载官方权重并记录路径。

2. LLaVA

  • 仓库: haotian-liu/LLaVA
  • 设置: 克隆仓库并创建专用环境(例如 conda create -n llava)。
  • 权重: 在本地下载 LLaVA-v1.5/v1.6 权重并记录路径。

3. Phi-3 Vision

  • 仓库: microsoft/Phi-3-vision-128k-instruct
  • 设置: 在专用环境中安装兼容的 transformers 版本。
  • 权重: 在本地下载 Phi-3-vision-128k-instruct 权重。

快速验证(Phi-3 Vision)

一个最小测试在干净截图和扰动截图上运行推理,并并排比较智能体的选择。

注意: 此测试需要 Phi-3 Vision(参见前置条件 §3)。提供的扰动图像是针对 Phi-3 优化的;其他骨干模型的测试数据可以使用 scripts/ 中的训练脚本生成。

测试数据

预生成的测试用例位于 test/:

test/
├── clean_fix_slot/         # 干净截图,目标位于固定槽位
├── clean_multi_slot/       # 干净截图,目标跨多个槽位
├── perturbed_fix_slot/     # 扰动截图(ε=16/255),目标位于固定槽位
├── perturbed_multi_slot/   # 扰动截图(ε=16/255),目标跨多个槽位
├── conv.json               # 对话数据(系统提示、用户查询、定位提示)
└── verify.py               # 在干净与扰动输入上运行推理并比较结果

fix_slot 用例测试伴随元素变化(目标位置固定,周围元素变化);multi_slot 用例同时测试伴随元素变化和位置偏移。

运行测试

conda activate phi3vision

# Fixed slot position
python test/verify.py \
    --model-path /path/to/Phi-3-vision-128k-instruct \
    --conv-path test/conv.json \
    --clean-image test/clean_fix_slot/sample_0.png \
    --perturbed-image test/perturbed_fix_slot/sample_0.png

# Varying slot positions
python test/verify.py \
    --model-path /path/to/Phi-3-vision-128k-instruct \
    --conv-path test/conv.json \
    --clean-image test/clean_multi_slot/sample_0.png \
    --perturbed-image test/perturbed_multi_slot/sample_0.png

预期输出

脚本会打印一个比较表,显示每个测试用例在干净输入与扰动输入下所选择的元素。在干净截图上,智能体应选择最匹配的候选元素;在扰动截图上,它应始终选择攻击者控制的候选元素。


优化扰动(LLaVA 示例)

在已为每个骨干模型设置好专用 Conda 环境后,以下工作流以 LLaVA 为例。

1. 克隆 LLaVA

脚本引用来自你的主目录(~/)的官方 LLaVA 代码:

cd ~
git clone https://github.com/haotian-liu/LLaVA.git

2. 配置训练脚本

打开 scripts/LLaVA/train_with_mask.sh,将每个路径(模型权重、训练数据、对话模板、掩码、输出目录)设置为与你的本地环境匹配。

3. 运行

bash scripts/LLaVA/train_with_mask.sh

数据格式

训练数据位于 data/<scenario>/ 下,包含重组后的截图和 train_samples.json 对话文件。对话文件中的图像 token 占位符必须与目标骨干模型匹配:

骨干模型占位符
MiniCPM-o(<image>./</image>)\n
LLaVA<image>\n
Phi-3<|image_1|>\n

端到端智能体评估

端到端评估需要目标智能体框架。

SeeAct

  • 仓库: OSU-NLP-Group/SeeAct
  • 设置: 克隆仓库并遵循官方安装说明。
  • 用法: 评估使用论文中描述的客户端资源替换协议。参见 scripts/seeact/。

VisualWebArena

  • 仓库: web-arena-x/visualwebarena
  • 设置: 遵循官方说明设置沙箱,包括部署 OneStopShop 购物网站。
  • 用法: 参见 scripts/visualwebarena/ 中的评估脚本,包含 Accessibility Tree 和 Set-of-Mark 两种观察模式。

数据流分析

dataflow/DataflowAnalysis.ql 是用于追踪智能体后处理代码中哪些模型输出 token 流入所执行浏览器操作的 CodeQL 查询。使用 CodeQL CLI 并配合 dataflow/codeql-pack.yml 中的包定义,对目标智能体源代码运行它。


伦理

论文中所有公共网站实验均使用客户端资源替换:对抗性图像仅在智能体的本地浏览器视图中被替换,不会向任何第三方网站上传或修改内容。请仅将此框架用于防御性研究。

引用

@article{han2026webmirage,
  title   = {Adversarial Images Hijack Web Agents from Visual Grounding to Browser Execution},
  author  = {Han, Wanjing and Li, Levi Taiji and Zhang, Mu and Jiang, Yue and Tao, Guanhong},
  journal = {arXiv preprint arXiv:XXXX.XXXXX},
  year    = {2026}
}

许可证

MIT。参见 LICENSE。

下载工具