> For the complete documentation index, see [llms.txt](https://blog.s1rn3tz.ovh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.s1rn3tz.ovh/pentest-mobile/android/overlay-attacks/tapjacking.md).

# Tapjacking

### Description <a href="#overview" id="overview"></a>

Le tapjacking est l'équivalent du [clickjacking](/pentest-web/clickjacking.md) dans une application Android. Une application malveillante amène l'utilisateur à cliquer sur un contrôle de sécurité (bouton de confirmation permettant de désactiver un élément de sécurité par exemple) en utilisant une superposition, par exemple, pour masquer l'UI. Sur cette page, nous différencions deux variantes d'attaque : l'occlusion complète et l'occlusion partielle. En cas d'occlusion complète, le pirate masque la zone tactile, tandis que dans le cas d'une occlusion partielle, la zone tactile n'est pas masquée.

## Occlusion complète

<figure><img src="/files/E3O5r8NCx8mKQCBnxLPm" alt=""><figcaption><p>Exemple de page de dont l'icône de fermeture est situé sur un bouton sensible </p></figcaption></figure>

## Occlusion partielle

### Sandwich d'activité

Si une activité sensible est exportée, il est possible d'importer l'activté dans une application malveillante qui se charge tout simplement de modifier l'UI de manière modifier l'utilisation légitime de l'activité originale.

<figure><img src="/files/PaAFqxYnEedMf4aMxjca" alt=""><figcaption><p>Exemple de remplacement du message de l'application originale par un autre message</p></figcaption></figure>

## Exploitation par version de SDK utilisé

### Android < 6 (API 23) : android.Manifest.permission.SYSTEM\_ALERT\_WINDOW

L'autorisation [`SYSTEM_ALERT_WINDOW`](https://developer.android.com/reference/android/Manifest.permission?hl=fr#SYSTEM_ALERT_WINDOW) permet à une application de créer une fenêtre superposée pour toutes les applications.

### Android < 11 (API 30): toast personnalisé

Il est possible d'utiliser `Toast.setView()` pour personnaliser l'apparence d'un message de type [toast](https://developer.android.com/guide/topics/ui/notifiers/toasts?hl=fr). Sur Android 10 (niveau d'API 29) et versions antérieures, des applications malveillantes peuvent lancer de tels toasts en arrière-plan.

{% hint style="info" %}
Il est possible d'éviter cette limitation dans certains cas à l'aide d'un *toast burst*, dans lequel il est possible de mettre plusieurs toasts en attente au premier plan, qui continuent de se lancer même une fois que l'application passe en arrière-plan.
{% endhint %}

{% hint style="warning" %}
Les attaques de toasts en arrière-plan et les toast bursts sont entièrement atténuées depuis Android 12 (niveau d'API 31).
{% endhint %}

## Outils

### Tapjacker

Tapjacker est une application design pour PoC des vulnerabilités de tapjacking.

ressource: <https://github.com/dzmitry-savitski/tapjacker>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.s1rn3tz.ovh/pentest-mobile/android/overlay-attacks/tapjacking.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
