Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
WebMirage — Ataques de imágenes adversarias contra agentes web de visión-lenguaje, desde el anclaje visual hasta la ejecución en el navegador | Kitploit
Herramientas/GitHubGitHub/moontea0416/webmirage
Análisis de CódigoSeguridad WebPruebas de PenetraciónAprendizaje AutomáticoPapers e InvestigaciónRed TeamingSeguridad de IAAtaque Adversario
GitHubmoontea0416/webmirage

WebMirage

Ataques de imágenes adversarias contra agentes web de visión-lenguaje, desde el anclaje visual hasta la ejecución en el navegador

Ver Repositorio
114hace 2 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

WebMirage

Imágenes Adversarias Secuestran Agentes Web desde el Anclaje Visual hasta la Ejecución en el Navegador

Wanjing Han, Levi Taiji Li, Mu Zhang, Yue Jiang, Guanhong Tao — University of Utah

WebMirage es un framework de red-teaming para agentes web con anclaje visual. Genera perturbaciones adversarias localizadas sobre imágenes de páginas web controladas por el atacante (por ejemplo, una miniatura de producto o una foto de perfil) que provocan que el agente seleccione el elemento del atacante y ejecute la acción de navegador correspondiente, a través de distintas renderizaciones de la página web. El ataque se formula de extremo a extremo, desde el anclaje visual hasta la ejecución en el navegador, en lugar de únicamente en la inferencia del modelo.

Dos componentes hacen posible esto:

  • Abstracción de rol-slot y recomposición de la página web — modela la competencia entre el elemento del atacante y sus acompañantes recomponiendo páginas con distintos conjuntos de acompañantes y posiciones de slot, de modo que la perturbación generaliza a renderizaciones no vistas.
  • Supervisión alineada con la ejecución — un análisis de flujo de datos con CodeQL del código de post-procesamiento del agente identifica qué tokens de salida determinan realmente la acción ejecutada, y la optimización se supervisa únicamente sobre esos tokens.

El framework se evalúa contra los agentes SeeAct y VisualWebArena en seis backbones VLM (LLaVA, MiniCPM-o, Phi-3 Vision y otros). Consulte el artículo para la evaluación completa.


Estructura del Repositorio

.
├── src/            # Perturbation optimization, one subdirectory per backbone
│   ├── LLaVA/
│   ├── MiniCPM-o/
│   └── Phi-3-vision/
├── scripts/        # Training / evaluation launch scripts, one subdirectory per backbone
├── dataflow/       # CodeQL query pack for agent dataflow analysis (DataflowAnalysis.ql)
├── data/           # Recomposed training / test screenshots and conversation templates
└── test/           # Pre-generated clean and perturbed samples for quick verification

Requisitos Previos

Los modelos base deben configurarse manualmente antes de usar este framework.

Debido a que los backbones tienen requisitos de librerías en conflicto, cada uno necesita su propio entorno y pesos descargados localmente.

1. MiniCPM-o

  • Repositorio: OpenBMB/MiniCPM-o
  • Configuración: Clone el repositorio, cree un entorno dedicado (por ejemplo, conda create -n minicpm) e instale las dependencias.
  • Pesos: Descargue los pesos oficiales localmente y registre la ruta.

2. LLaVA

  • Repositorio: haotian-liu/LLaVA
  • Configuración: Clone el repositorio y cree un entorno dedicado (por ejemplo, conda create -n llava).
  • Pesos: Descargue los pesos de LLaVA-v1.5/v1.6 localmente y registre la ruta.

3. Phi-3 Vision

  • Repositorio: microsoft/Phi-3-vision-128k-instruct
  • Configuración: Instale la versión compatible de transformers en un entorno dedicado.
  • Pesos: Descargue los pesos de Phi-3-vision-128k-instruct localmente.

Verificación Rápida (Phi-3 Vision)

Una prueba mínima ejecuta inferencia tanto sobre capturas de pantalla limpias como perturbadas y compara las selecciones del agente lado a lado.

Nota: Esta prueba requiere Phi-3 Vision (véase Requisitos Previos §3). Las imágenes perturbadas proporcionadas fueron optimizadas para Phi-3; los datos de prueba para otros backbones pueden generarse con los scripts de entrenamiento en scripts/.

Datos de Prueba

Los casos de prueba pregenerados se encuentran en test/:

test/
├── clean_fix_slot/         # Clean screenshots, target in a fixed slot position
├── clean_multi_slot/       # Clean screenshots, target across multiple slot positions
├── perturbed_fix_slot/     # Perturbed screenshots (ε=16/255), target in a fixed slot
├── perturbed_multi_slot/   # Perturbed screenshots (ε=16/255), target across multiple slots
├── conv.json               # Conversation data (system prompt, user query, grounding prompt)
└── verify.py               # Runs inference on clean vs. perturbed and compares results

Los casos fix_slot prueban la variación de acompañantes (posición del objetivo fija, elementos circundantes variables); los casos multi_slot prueban la variación de acompañantes y el desplazamiento posicional simultáneamente.

Ejecución de la Prueba

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

Salida Esperada

El script imprime una tabla comparativa que muestra, para cada caso de prueba, el elemento seleccionado con entrada limpia frente a la perturbada. En capturas de pantalla limpias, el agente debería seleccionar el candidato que mejor coincide; en capturas de pantalla perturbadas, debería seleccionar consistentemente el candidato controlado por el atacante.


Optimización de una Perturbación (Ejemplo con LLaVA)

Con un entorno Conda dedicado para cada backbone en su lugar, el flujo de trabajo a continuación usa LLaVA como ejemplo.

1. Clonar LLaVA

Los scripts hacen referencia al código oficial de LLaVA desde su directorio home (~/):

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

2. Configurar el Script de Entrenamiento

Abra scripts/LLaVA/train_with_mask.sh y configure cada ruta (pesos del modelo, datos de entrenamiento, plantilla de conversación, máscara, directorio de salida) para que coincida con su configuración local.

3. Ejecutar

bash scripts/LLaVA/train_with_mask.sh

Formato de Datos

Los datos de entrenamiento se encuentran en data/<scenario>/, con capturas de pantalla recompuestas y un archivo de conversación train_samples.json. El marcador de posición de token de imagen en el archivo de conversación debe coincidir con el backbone objetivo:

BackboneMarcador de posición
MiniCPM-o(<image>./</image>)\n
LLaVA<image>\n
Phi-3<|image_1|>\n

Evaluación de Agente de Extremo a Extremo

La evaluación de extremo a extremo requiere los frameworks de agente objetivo.

SeeAct

  • Repositorio: OSU-NLP-Group/SeeAct
  • Configuración: Clone el repositorio y siga las instrucciones oficiales de instalación.
  • Uso: La evaluación utiliza el protocolo de reemplazo de recursos del lado del cliente descrito en el artículo. Véase scripts/seeact/.

VisualWebArena

  • Repositorio: web-arena-x/visualwebarena
  • Configuración: Siga las instrucciones oficiales para configurar el sandbox, incluido el despliegue del sitio de compras OneStopShop.
  • Uso: Véase scripts/visualwebarena/ para los scripts de evaluación con los modos de observación Accessibility Tree y Set-of-Mark.

Análisis de Flujo de Datos

dataflow/DataflowAnalysis.ql es la consulta CodeQL utilizada para rastrear qué tokens de salida del modelo fluyen hacia la acción de navegador ejecutada en el código de post-procesamiento de un agente. Ejecútela contra el código fuente del agente objetivo con la CodeQL CLI usando la definición del paquete en dataflow/codeql-pack.yml.


Ética

Descargar herramienta