Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
WebMirage — Attacchi con immagini adversariali contro agenti web vision-linguaggio, dal visual grounding all'esecuzione nel browser | Kitploit
Strumenti/GitHubGitHub/moontea0416/webmirage
Analisi del CodiceSicurezza WebPenetration TestingMachine LearningPaper e RicercaRed TeamingSicurezza dell'IAAttacco Avversario
GitHubmoontea0416/webmirage

WebMirage

Attacchi con immagini adversariali contro agenti web vision-linguaggio, dal visual grounding all'esecuzione nel browser

Vedi Repository
1142 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

WebMirage

Immagini avversarie dirottano gli agenti web dal visual grounding all'esecuzione nel browser

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

WebMirage è un framework di red-teaming per agenti web basati su vision grounding. Genera perturbazioni avversarie localizzate su immagini di pagine web controllate dall'attaccante (ad esempio, una miniatura di prodotto o una foto profilo) che inducono l'agente a selezionare l'elemento dell'attaccante ed eseguire l'azione corrispondente nel browser, attraverso rendering della pagina differenti. L'attacco è formulato end-to-end, dal visual grounding all'esecuzione nel browser, anziché unicamente a livello di inferenza del modello.

Due componenti rendono possibile tutto ciò:

  • Astrazione role-slot e ricomposizione della pagina web — modella la competizione tra l'elemento dell'attaccante e i suoi elementi companion ricomponendo le pagine con insiemi di companion e posizioni di slot variabili, così che la perturbazione generalizzi a rendering mai visti.
  • Supervisione allineata all'esecuzione — un'analisi del flusso di dati CodeQL sul codice di post-processing dell'agente identifica quali token di output determinano effettivamente l'azione eseguita, e l'ottimizzazione è supervisionata solo su quei token.

Il framework è valutato contro gli agenti SeeAct e VisualWebArena su sei backbone VLM (LLaVA, MiniCPM-o, Phi-3 Vision e altri). Si veda il paper per la valutazione completa.


Struttura del repository

.
├── 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

Prerequisiti

I modelli di base devono essere configurati manualmente prima di utilizzare questo framework.

Poiché i backbone hanno requisiti di librerie in conflitto tra loro, ciascuno necessita del proprio ambiente e di pesi scaricati localmente.

1. MiniCPM-o

  • Repo: OpenBMB/MiniCPM-o
  • Setup: Clonare il repo, creare un ambiente dedicato (ad esempio, conda create -n minicpm) e installare le dipendenze.
  • Pesi: Scaricare i pesi ufficiali localmente e annotare il percorso.

2. LLaVA

  • Repo: haotian-liu/LLaVA
  • Setup: Clonare il repo e creare un ambiente dedicato (ad esempio, conda create -n llava).
  • Pesi: Scaricare i pesi LLaVA-v1.5/v1.6 localmente e annotare il percorso.

3. Phi-3 Vision

  • Repo: microsoft/Phi-3-vision-128k-instruct
  • Setup: Installare la versione compatibile di transformers in un ambiente dedicato.
  • Pesi: Scaricare i pesi Phi-3-vision-128k-instruct localmente.

Verifica rapida (Phi-3 Vision)

Un test minimale esegue l'inferenza sia su screenshot puliti che perturbati e confronta affiancate le selezioni dell'agente.

Nota: Questo test richiede Phi-3 Vision (vedi Prerequisiti §3). Le immagini perturbate fornite sono state ottimizzate per Phi-3; i dati di test per gli altri backbone possono essere generati con gli script di training in scripts/.

Dati di test

I casi di test pre-generati si trovano in 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

I casi fix_slot testano la variazione dei companion (posizione del target fissa, elementi circostanti variabili); i casi multi_slot testano simultaneamente la variazione dei companion e lo spostamento di posizione.

Esecuzione del test

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

Output atteso

Lo script stampa una tabella di confronto che mostra, per ciascun caso di test, l'elemento selezionato con input pulito rispetto a quello perturbato. Su screenshot puliti l'agente dovrebbe selezionare il candidato più corrispondente; su screenshot perturbati dovrebbe selezionare in modo consistente il candidato controllato dall'attaccante.


Ottimizzazione di una perturbazione (esempio con LLaVA)

Una volta predisposto un ambiente Conda dedicato per ciascun backbone, il flusso di lavoro seguente utilizza LLaVA come esempio.

1. Clonare LLaVA

Gli script fanno riferimento al codice ufficiale di LLaVA dalla vostra home directory (~/):

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

2. Configurare lo script di training

Aprire scripts/LLaVA/train_with_mask.sh e impostare ciascun percorso (pesi del modello, dati di training, template di conversazione, maschera, directory di output) in base alla propria configurazione locale.

3. Eseguire

bash scripts/LLaVA/train_with_mask.sh

Formato dei dati

I dati di training si trovano in data/<scenario>/, con screenshot ricomposti e un file di conversazione train_samples.json. Il placeholder del token immagine nel file di conversazione deve corrispondere al backbone di destinazione:

BackbonePlaceholder
MiniCPM-o(<image>./</image>)\n
LLaVA<image>\n
Phi-3<|image_1|>\n

Valutazione end-to-end dell'agente

La valutazione end-to-end richiede i framework degli agenti di destinazione.

SeeAct

  • Repo: OSU-NLP-Group/SeeAct
  • Setup: Clonare il repo e seguire le istruzioni ufficiali di installazione.
  • Utilizzo: La valutazione utilizza il protocollo di sostituzione delle risorse lato client descritto nel paper. Vedi scripts/seeact/.

VisualWebArena

  • Repo: web-arena-x/visualwebarena
  • Setup: Seguire le istruzioni ufficiali per configurare la sandbox, inclusa la distribuzione del sito di shopping OneStopShop.
  • Utilizzo: Vedi scripts/visualwebarena/ per gli script di valutazione con entrambe le modalità di osservazione Accessibility Tree e Set-of-Mark.

Analisi del flusso di dati

dataflow/DataflowAnalysis.ql è la query CodeQL utilizzata per tracciare quali token di output del modello confluiscono nell'azione del browser eseguita nel codice di post-processing di un agente. Eseguirla sul sorgente dell'agente di destinazione con la CodeQL CLI utilizzando la definizione del pack in dataflow/codeql-pack.yml.


Etica

Scarica lo strumento