Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
racfor_wiki:seminari2025:tt54151 [2026/01/02 23:35]
Tea Topolovec [Treći pokušaj]
racfor_wiki:seminari2025:tt54151 [2026/01/12 20:00] (trenutno)
Tea Topolovec [Drugi pokušaj]
Redak 24: Redak 24:
  
 ==== Prvi pokušaj ==== ==== Prvi pokušaj ====
-Tijekom analize Wolt aplikacije na Android uređaju pregledan je direktorij Android/data/com.wolt.android/, koji sadrži poddirektorije cache, files i testdata. U direktoriju cache pronađena je SQLite baza podataka map_cache.db te je analizirana pomoću alata DB Browser for SQLite. Baza sadrži tablice: pinned_tiles, resources, settings i tiles, no većina zapisa pohranjena je u obliku hash vrijednosti, dok su čitljivi bili samo vremenski zapisi (timestamps). U testdata i files direktorijima nisu pronađeni nikakvi podaci. Dobiveni rezultati ukazuju na to da značajan dio podataka koje aplikacija koristi nije pronađen u direktorijima dostupnim na vanjskoj pohrani, što znači da se ti podaci vjerojatno pohranjuju u zaštićenim dijelovima Android sustava.+Tijekom analize Wolt aplikacije na Android uređaju pregledan je direktorij Android/data/com.wolt.android, koji sadrži poddirektorije cache, files i testdata. U direktoriju cache pronađena je SQLite baza podataka map_cache.db te je analizirana pomoću alata DB Browser for SQLite. Baza sadrži tablice: pinned_tiles, resources, settings i tiles, no većina zapisa pohranjena je u obliku hash vrijednosti, dok su čitljivi bili samo vremenski zapisi (timestamps). U testdata i files direktorijima nisu pronađeni nikakvi podaci. Dobiveni rezultati ukazuju na to da značajan dio podataka koje aplikacija koristi nije pronađen u direktorijima dostupnim na vanjskoj pohrani, što znači da se ti podaci vjerojatno pohranjuju u zaštićenim dijelovima Android sustava.
 ==== Drugi pokušaj ==== ==== Drugi pokušaj ====
-U drugom pokušaju forenzičke analize Wolt aplikacije korišten je Android Debug Bridge (ADB) kako bi se dobio dublji pristup datotečnom sustavu uređaja i potencijalno dohvatili dodatni podaci. ADB omogućuje izravan pristup datotečnom sustavu mobitela putem shell-a s višim ovlastima, dok korisnik vidi samo ograničeni prostor za pohranu. Nakon omogućavanja USB debugging opcije, uređaj je povezan s računalom i korištene su osnovne ADB naredbe (adb shell, ls, cd) za pregled direktorija Android/data/com.wolt.android/. Pronađeni su isti podaci kao u prvom pokušaju, a izrada sigurnosne kopije naredbom adb backup također nije bila uspješna. Analiza AndroidManifest.xml datoteke u APK Editor Studiju otkrila je razlog neuspješnog backupa: <code>android:allowBackup="false"</code> što onemogućava sigurnosnu kopiju aplikacije putem ADB-a. Dobiveni rezultati potvrđuju da Wolt štiti svoje interne podatke, koji su dostupni isključivo aplikaciji i sustavu, dok vanjski alati bez root pristupa ne mogu pristupiti dodatnim podacima.+U drugom pokušaju forenzičke analize Wolt aplikacije korišten je Android Debug Bridge (ADB) kako bi se dobio dublji pristup datotečnom sustavu uređaja i potencijalno dohvatili dodatni podaci. ADB omogućuje izravan pristup datotečnom sustavu mobitela putem shell-a s višim ovlastima, dok korisnik vidi samo ograničeni prostor za pohranu. Nakon omogućavanja USB debugging opcije, uređaj je povezan s računalom i korištene su osnovne ADB naredbe (adb shell, ls, cd) za pregled direktorija Android/data/com.wolt.android. Pronađeni su isti podaci kao u prvom pokušaju, a izrada sigurnosne kopije naredbom adb backup također nije bila uspješna. Analiza AndroidManifest.xml datoteke u APK Editor Studiju otkrila je razlog neuspješnog backupa: <code>android:allowBackup="false"</code> što onemogućava sigurnosnu kopiju aplikacije putem ADB-a. Dobiveni rezultati potvrđuju da Wolt štiti svoje interne podatke, koji su dostupni isključivo aplikaciji i sustavu, dok vanjski alati bez root pristupa ne mogu pristupiti dodatnim podacima.
 {{ wolt_manifest.png?650x270 | Datoteka AndroidManifest.xml}} {{ wolt_manifest.png?650x270 | Datoteka AndroidManifest.xml}}
                        Slika 1: Datoteka AndroidManifest.xml                        Slika 1: Datoteka AndroidManifest.xml
Redak 39: Redak 39:
 === Direktorij db === === Direktorij db ===
 U direktoriju db jedna od zanimljivijih baza podataka je new_delivery_location_input, koja sadrži tablicu address u kojoj su pohranjene sve lokacije koje su nekad bile odabrane u aplikaciji. Pohranjene su informacije o adresama, uključujući njihove nazive i geografske koordinate (latitude i longitude). U direktoriju db jedna od zanimljivijih baza podataka je new_delivery_location_input, koja sadrži tablicu address u kojoj su pohranjene sve lokacije koje su nekad bile odabrane u aplikaciji. Pohranjene su informacije o adresama, uključujući njihove nazive i geografske koordinate (latitude i longitude).
-{{ wolt_address.png?700 |Tablica address }}+{{ wolt_address.png?600 |Tablica address }}
                              Slika 2. Tablica address                              Slika 2. Tablica address
  
  
 Pronađena je i baza podataka com.google.android.datatransport.events, koja sadrži tablicu event_metadata. Tablica pohranjuje meta-podatke o uređaju i okruženju u kojem je aplikacija Wolt pokrenuta. Neki od podataka su: država, uređaj, tip mobilne mreže, kod mobilnog operatera, verzija aplikacije, jezik, proizvođač uređaja, tip mreže, verzija OS-a, verzija SDK-a, fingerprint uređaja, model uređaja, vremenska zona, naziv uređaja i podaci o hardveru. Tablica event_metadata povezana je s tablicom events, koja sadrži timestamp događaja i druge relevantne informacije. Pronađena je i baza podataka com.google.android.datatransport.events, koja sadrži tablicu event_metadata. Tablica pohranjuje meta-podatke o uređaju i okruženju u kojem je aplikacija Wolt pokrenuta. Neki od podataka su: država, uređaj, tip mobilne mreže, kod mobilnog operatera, verzija aplikacije, jezik, proizvođač uređaja, tip mreže, verzija OS-a, verzija SDK-a, fingerprint uređaja, model uređaja, vremenska zona, naziv uređaja i podaci o hardveru. Tablica event_metadata povezana je s tablicom events, koja sadrži timestamp događaja i druge relevantne informacije.
-{{ wolt_events.png?700 |Tablica event_metadata }} +{{ wolt_events.png?600 |Tablica event_metadata }} 
-                             Slika 3. Tablica event_metadata+                            Slika 3. Tablica event_metadata
  
 +=== Direktorij f ===
 +Od interesantnijih stavki pronađena je datoteka userlog u crashlytics.v3/com.wolt.android/open-sessions, koja sadrži zapise sesije aplikacije generirane tijekom njezina korištenja. Datoteka sadrži zapise komunikacije aplikacije s Wolt backend servisima, uključujući HTTP zahtjeve. Aplikacija dohvaća početnu stranicu i ponudu na temelju trenutne lokacije korisnika, što je vidljivo iz zahtjeva koji sadrže geografske koordinate %%GET https://restaurant-api.wolt.com/v2/notifications?lat=45.8131573&lon=16.0160146%%. Također se provjerava stanje košarice putem zahtjeva za broj artikala u košarici GET %%https://consumer-api.wolt.com/order-xp/v1/baskets/count%%, kao i dohvat korisničkih podataka GET %%https://restaurant-api.wolt.com/v1/user/me%%. Osim osnovnih funkcionalnosti, u logovima su prisutni i zahtjevi vezani uz pretplate, poput dohvaćanja dostupnih Wolt+ planova za određenu državu GET %%https://restaurant-api.wolt.com/v1/subscriptions/plans?device_country_code=HRV%%.
  
 +U poddirektoriju wolt_storage/selectedOrderItems pronađena je JSON datoteka koja sadrži popis trenutno dodanih proizvoda u košaricu:
 +
 +<code json>
 +[
 +  {
 +    "id": "686623fc044fcc1e9f213bd5",
 +    "categoryId": "695511731a83693135f5306f",
 +    "count": 1,
 +    "name": "Big Tasty Bacon",
 +    "endAmount": 0,
 +    "depositAmount": null,
 +    "skipOnRefill": false,
 +    "options": [],
 +    "substitutable": true,
 +    "substitutionComment": null,
 +    "substitutionFor": null,
 +    "weightedItemInfo": null,
 +    "weightConfig": null,
 +    "isCutlery": false,
 +    "currentVariantDescription": null
 +  },
 +  {
 +    "id": "686623fc044fcc1e9f213be7",
 +    "categoryId": "695511731a83693135f5306f",
 +    "count": 1,
 +    "name": "Chicken McNuggets 9 kom",
 +    "endAmount": 0,
 +    "depositAmount": null,
 +    "skipOnRefill": false,
 +    "options": [
 +      {
 +        "id": "6944589bc30f641e3c312439",
 +        "name": "Odaberi umak 1/2",
 +        "values": [
 +          {
 +            "id": "6944589bc30f641e3c31240c",
 +            "name": "",
 +            "count": 1,
 +            "price": 0,
 +            "depositAmount": null
 +          }
 +        ]
 +      },
 +      {
 +        "id": "6944589bc30f641e3c31243b",
 +        "name": "Odaberi umak 2/2",
 +        "values": [
 +          {
 +            "id": "6944589bc30f641e3c31240c",
 +            "name": "",
 +            "count": 1,
 +            "price": 0,
 +            "depositAmount": null
 +          }
 +        ]
 +      }
 +    ],
 +    "substitutable": true,
 +    "substitutionComment": null,
 +    "substitutionFor": null,
 +    "weightedItemInfo": null,
 +    "weightConfig": null,
 +    "isCutlery": false,
 +    "currentVariantDescription": null
 +  }
 +]
 +</code>
 +
 +
 +=== Direktorij sp ===
 +Datoteka appsflyer-data.xml sadrži zapise vezane uz praćenje korisničkih događaja i sesija putem AppsFlyer analitičkog sustava. Iz nje je vidljivo kada je aplikacija instalirana, koja je zadnja zabilježena korisnička akcija i u koje je vrijeme izvršena, koliko je vremena prošlo od prethodne sesije te na koji je način aplikacija instalirana (npr. organska instalacija). Također su dostupni još brojni podaci.
 +{{ wolt_appsflyer2.png?600 |Datoteka appsflyer-data.xml }}
 +                          Slika 4. Datoteka appsflyer-data.xml
 +
 +Datoteka com.google.android.gms.signin.xml sadrži podatke vezane uz prijavu korisnika putem Google računa. Iz zapisa je vidljivo da je Wolt aplikacija koristila Google Sign-In mehanizam te koje su dozvole bile zatražene prilikom prijave, poput pristupa e-mail adresi i osnovnim podacima profila. Datoteka sadrži jedinstveni identifikator Google računa, informacije o dodijeljenim dozvolama, kao i token koji se koristi za autentifikaciju korisnika prema aplikaciji. Također su pohranjeni osnovni podaci o profilu korisnika (ime, prezime, e-mail).
 +
 +Datoteka common prefs.xml sadrži zajedničke postavke aplikacije te podatke vezane uz korisničku sesiju i autentifikaciju. Najznačajniji dio čine autentifikacijski tokeni koji se mogu dekodirati pomoću brojnih online alata. Alatom https://www.jwt.io/ dekodiran je token te su dobiveni već spomenuti osobni podaci korisnika, ime, prezime, e-mail adresa, ali ovdje i broj mobitela.
 +{{ wolt_token.png?600 |Dekodiran token JWT.io alatom }}
 +                         Slika 5. Dekodiran token JWT.io alatom
 +
 +U direktoriju sp pronađena je datoteka wolt-prefs.xml, koja sadrži osobne podatke i korisničke postavke Wolt aplikacije. Datoteka pohranjuje osnovne informacije o korisniku, uključujući ime i prezime, e-mail adresu, broj telefona, te jedinstveni korisnički ID. Osim identifikacijskih podataka, datoteka sadrži i postavke aplikacije, poput preferirane valute, zadane metode plaćanja, broja izvršenih kupnji, odabrane opcije prijave te povijest pretraživanja. Datoteka wolt-prefs.xml dana je u nastavku:
 +<code xml>
 +<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
 +<map>
 +    <string name="user.name.firstName">Tea</string>
 +    <string name="country">HRV</string>
 +    <set name="neverTranslateMenuLanguages" />
 +    <string name="user.id">67e91cf4a062d05afcee5ec0</string>
 +    <string name="loginOption">GOOGLE</string>
 +    <boolean name="gcmTokenSentV2" value="true" />
 +    <boolean name="user.phone_number_verified" value="true" />
 +    <int name="purchaseCountNonRetail" value="0" />
 +    <boolean name="dontAskAboutTrackingConsents" value="true" />
 +    <string name="user.phone_number">+38595569xxxx</string>
 +    <string name="defaultPaymentMethodId">cash</string>
 +    <string name="user.email">tea.topolovec0@gmail.com</string>
 +    <int name="purchaseCountRetail" value="0" />
 +    <string name="user.name.lastName">Topolovec</string>
 +    <string name="currency">EUR</string>
 +    <boolean name="firstTimeUser" value="true" />
 +    <set name="searchHistory">
 + †††
 + <string>mcdonald</string>
 + †††
 + <string>pizza</string>
 +    </set>
 +    <string name="lastUsedLocationId">9e4f589e-1327-40a6-9c12-248e637748fb</string>
 +    <boolean name="requirePaypayReactivation" value="false" />
 +</map>
 +</code>
 ===== Zaključak ===== ===== Zaključak =====
 +Sigurnosna kopija Wolt aplikacije sa Xiaomi uređaja omogućila je pristup značajno većem broju podataka nego prethodna dva pokušaja. Wolt onemogućava backup putem standardnog ADB pristupa i pohranjuje osjetljive podatke u zaštićenim direktorijima koji zahtijevaju root pristup. Ugrađena funkcija sigurnosne kopije na Xiaomi uređaju ima dovoljno privilegija da omogući dohvat aplikacijskih podataka bez potrebe za root pristupom.
 +
 +Analizom datoteka moguće je identificirati korisničke sesije, autentifikacijske tokene, osobne podatke te dijelove aktivnosti unutar aplikacije, poput stavki u košarici, povijesti pretraživanja i logova zahtjeva prema Wolt API-ju. Iako cjelovita povijest svih prošlih narudžbi nije bila dostupna, vjerojatno zbog pohrane na serverima Wolt-a, kombinacijom lokalno pohranjenih podataka i logova može se rekonstruirati nedavna aktivnost korisnika. Nijedan podatak o plaćanjima ili financijskim transakcijama nije bio dostupan, a bilo bi zanimljivo vidjeti i kako aplikacija izgleda iz perspektive dostavljača te kakve forenzičke tragove ona ostavlja.
  
 ===== Literatura ===== ===== Literatura =====
-[1] [[https://explore.wolt.com/en/hrv/about|About - Wolt]]+[1] [[https://explore.wolt.com/en/hrv/about|About - Wolt, pristupljeno 29. prosinca 2025.]] 
 + 
 +[2] [[https://life.wolt.com/en/hrv/moments/10-years/customer-stories|10 years, 700 million customer orders, pristupljeno 29. prosinca 2025.]]
  
-[2] [[https://life.wolt.com/en/hrv/moments/10-years/customer-stories|10 years700 million customer orders]]+[3] [[https://www.youtube.com/watch?v=1xEyE3YZveE| 
 +Install ADBFastboot & Fastbootd Drivers on Windows, pristupljeno 30. prosinca 2025.]]
  
-[3] [[http://www.cogtech.usc.edu/publications/kirschner_Sweller_Clark.pdf|Kirschner, P. A, Sweller, J. and ClarkREWhy minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching. Educational psychologist 41, no. 2, pp 75-86, 2006]]+[4] [[https://www.youtube.com/watch?v=BPphrGBiAV0| 
 +How to Backup and Restore App and Data via ADBpristupljeno 30prosinca 2025.]]
  
  
racfor_wiki/seminari2025/tt54151.1767396906.txt.gz · Zadnja izmjena: 2026/01/02 23:35 od Tea Topolovec
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0