mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
64 lines
4.1 KiB
Markdown
64 lines
4.1 KiB
Markdown
# Tapjacking
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
|
||
## **Osnovne informacije**
|
||
|
||
**Tapjacking** je napad gde se **maliciozna** **aplikacija** pokreće i **pozicionira iznad aplikacije žrtve**. Kada vidljivo zakloni aplikaciju žrtve, njen korisnički interfejs je dizajniran na način da prevari korisnika da interaguje s njom, dok zapravo prosleđuje interakciju aplikaciji žrtve.\
|
||
U suštini, to **oslepljuje korisnika da ne zna da zapravo izvršava radnje na aplikaciji žrtve**.
|
||
|
||
### Detekcija
|
||
|
||
Da biste detektovali aplikacije ranjive na ovaj napad, trebali biste tražiti **izvezene aktivnosti** u android manifestu (napomena: aktivnost sa intent-filterom se automatski izveze po defaultu). Kada pronađete izvezene aktivnosti, **proverite da li zahtevaju neku dozvolu**. To je zato što će **maliciozna aplikacija takođe trebati tu dozvolu**.
|
||
|
||
### Zaštita
|
||
|
||
#### Android 12 (API 31,32) i noviji
|
||
|
||
[**Prema ovom izvoru**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** napadi tapjacking automatski se sprečavaju od strane Android-a od verzije 12 (API 31 & 30) i novijih. Dakle, čak i ako je aplikacija ranjiva, **nećete moći da je iskoristite**.
|
||
|
||
#### `filterTouchesWhenObscured`
|
||
|
||
Ako je **`android:filterTouchesWhenObscured`** postavljeno na **`true`**, `View` neće primati dodire kada je prozor prikaza zaklonjen drugim vidljivim prozorom.
|
||
|
||
#### **`setFilterTouchesWhenObscured`**
|
||
|
||
Atribut **`setFilterTouchesWhenObscured`** postavljen na true takođe može sprečiti eksploataciju ove ranjivosti ako je verzija Android-a niža.\
|
||
Ako je postavljeno na **`true`**, na primer, dugme može automatski biti **onemogućeno ako je zaklonjeno**:
|
||
```xml
|
||
<Button android:text="Button"
|
||
android:id="@+id/button1"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:filterTouchesWhenObscured="true">
|
||
</Button>
|
||
```
|
||
## Eksploatacija
|
||
|
||
### Tapjacking-ExportedActivity
|
||
|
||
Najnovija **Android aplikacija** koja izvodi Tapjacking napad (+ pozivanje pre izvezene aktivnosti napadnute aplikacije) može se pronaći na: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||
|
||
Pratite **README uputstva za korišćenje**.
|
||
|
||
### FloatingWindowApp
|
||
|
||
Primer projekta koji implementira **FloatingWindowApp**, koji se može koristiti za postavljanje iznad drugih aktivnosti radi izvođenja clickjacking napada, može se pronaći na [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (malo star, srećno sa izradom apk).
|
||
|
||
### Qark
|
||
|
||
> [!OPREZ]
|
||
> Izgleda da ovaj projekat sada nije održavan i ova funkcionalnost više ne radi ispravno
|
||
|
||
Možete koristiti [**qark**](https://github.com/linkedin/qark) sa `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parametrima da kreirate zloćudnu aplikaciju za testiranje mogućih **Tapjacking** ranjivosti.\
|
||
|
||
Mitracija je relativno jednostavna jer programer može odlučiti da ne prima dodirne događaje kada je prikaz pokriven drugim. Koristeći [Android Developer’s Reference](https://developer.android.com/reference/android/view/View#security):
|
||
|
||
> Ponekad je od suštinskog značaja da aplikacija može da verifikuje da se akcija vrši uz puno znanje i pristanak korisnika, kao što je odobravanje zahteva za dozvolu, kupovina ili klik na oglas. Nažalost, zloćudna aplikacija bi mogla pokušati da prevari korisnika da izvrši ove akcije, nesvesno, prikrivajući nameru prikaza. Kao rešenje, okvir nudi mehanizam filtriranja dodira koji se može koristiti za poboljšanje bezbednosti prikaza koji pružaju pristup osetljivoj funkcionalnosti.
|
||
>
|
||
> Da biste omogućili filtriranje dodira, pozovite [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ili postavite android:filterTouchesWhenObscured atribut rasporeda na true. Kada je omogućeno, okvir će odbaciti dodire koji se primaju kada je prozor prikaza zaklonjen drugim vidljivim prozorom. Kao rezultat, prikaz neće primati dodire kada se iznad prozora prikaza pojavi toast, dijalog ili drugi prozor.
|
||
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|