+36 70 516 5214 info@pacmed.hu
Esettanulmány

Ügyfélportál biztonsági tesztelése

Grey box webalkalmazás sérülékenységvizsgálat

2 kritikus és 3 magas súlyosságú sebezhetőség
egy ügyfélportál tesztelése során

Egy szolgáltató cég új ügyfélportált vezetett be, melyen keresztül ügyfelei bizalmas üzleti adatokat kezelhetnek (riportok, szerződések, pénzügyi kimutatások). A vezetőség felismerte, hogy a biztonsági kockázatok nemcsak adatvesztést, hanem szabályozói bírságot és reputációs károkat is okozhatnak. Az alábbi esettanulmányban bemutatjuk, milyen sebezhetőségek fordulhatnak elő egy ilyen környezetben és hogyan lehet ezeket azonosítani egy sérülékenységvizsgálat során.

Vizsgálati módszertan

Egy ügyfélportál vizsgálata során jellemzően grey box megközelítést alkalmazunk: a tesztelő rendelkezik felhasználói jogosultsággal, de nem fér hozzá a forráskódhoz.
A vizsgálatban manuális technikákat és professzionális eszközöket (Burp Suite, kiegészítő szkriptek, payload listák) használunk és nem csak a klasszikus hibákat, hanem a komplexebb, logikai és implementációs gyengeségeket is keressük.
Feltárt sebezhetőségek

1. Hitelesítési megkerülés – JWT token manipuláció

Előfordul, hogy az alkalmazás JSON Web Token alapú autentikációt használ, de hibásan validálja az alg mezőt. Ilyenkor a none algoritmus beállításával módosíthatjuk a tokent és magasabb jogosultságú fiókhoz juthatunk.

2. Másodlagos SQL Injection – JSON paraméterben

A klasszikus ' OR 1=1 típusú próbálkozások gyakran nem vezetnek eredményre. Gyakori, hogy egy JSON-alapú API paraméter – például sort_by – közvetlenül bekerül az SQL ORDER BY részébe.
Ilyenkor összetett kifejezést illeszthetünk be, például:

{ "filters": { "sort_by": "amount DESC, (SELECT email FROM users LIMIT 1)" } }

Az ilyen másodlagos SQL Injection hibák rendkívül veszélyesek, mert kritikus adatokat fedhetnek fel, például előfizetők, tranzakciók, pénzügyi és üzleti adatok.

3. Üzleti logikai hiba – jogosultság kikerülése

Ha egy dokumentum letöltése során, az URL-ben szereplő azonosító titkosításához gyenge algoritmust használnak, az nagyon könnyen visszafejthető és a támadó más ügyfelek dokumentumaihoz is hozzáférést szerezhet. Egy ilyen logikai hiba érzékeny ügyféladatok tömeges kiszivárgását eredményezheti.

4. Sérülékenység a feltöltési funkcióban – polyglot fájl

Sok alkalmazásba beépítésre kerül a PHP vagy más script fájlok feltöltése elleni védelem. Ugyanakkor léteznek úgynevezett polyglot fájlok, melyek segítségével kijátszható a védelem. A feltöltött fájlt az alkalmazás PDF-nek látja (a rendszer csak a fájlkiterjesztést ellenőrzi), de a böngészőben elérve már PHP kódot hajt végre a szerveren. Ez a trükk távoli kódfuttatás (RCE) támadás végrehajtására ad lehetőséget, ami kezdeti hozzáféréshez vezethet a rendszerhez.

5. XML External Entity (XXE) – belső hálózati szkennelés

Az XML alapú import funkciók különösen veszélyesek, ha a parser engedélyezi a külső entitásokat. Az XXE nem csupán fájlolvasást tehet lehetővé, hanem a belső hálózat feltérképezését is.
Egy módosított payload segítségével portszkennelés végezhető a szerver belső infrastruktúráján:

Így elérhetővé válhatnak nem publikus, belső admin felületek is, melyekhez egyébként külső hozzáférés nélkül nem tudnánk hozzáférni.

Eredmények és kockázatok

2 kritikus és 3 magas súlyosságú sérülékenység

 

  • A JWT és az SQL Injection kombinációja lehetővé teszi a teljes adatbázis kompromittálását
  • Az üzleti logikai hiba jogosulatlan fájleléréshez, tömeges dokumentum- és adatlopáshoz vezethet
  • A fájlfeltöltési hiba távoli kódvégrehajtáshoz és kezdeti hozzáférés megszerzéséhez vezethet
  • Az XXE hiba a belső infrastruktúra feltérképezését és további támadások előkészítését teszi lehetővé

Javaslatok

  • JWT kezelés felülvizsgálata, erős titkosítási algoritmus és biztonságos aláírás ellenőrzés
  • Paraméterezett lekérdezések minden SQL komponensben, beleértve a dinamikus ORDER BY mezőket is
  • Kriptográfiai tokenek biztonságos implementálása, előre nem kiszámítható azonosítókkal
  • Feltöltött állományok többrétegű ellenőrzése, sandbox környezetben való validáció
  • XXE elleni védelem – külső entitások tiltása és biztonságos parser konfiguráció

Tanulság

A webalkalmazások fejlesztése során gyakran maradnak rejtett hibák, amelyek csak célzott teszteléssel derülnek ki. A támadók gyakran sérülékenységek láncolatát használják ki – például egy jogosultság megkerülést kombinálnak egy feltöltési hibával vagy egy XXE-vel. Az ilyen vizsgálatok értéke abban rejlik, hogy valós támadási módszereket használunk a hibák feltárásához, majd ezek mentén segítünk az adott rendszer megerősítésében.

Az általunk végzett vizsgálatok rávilágítanak arra, hogy a legkisebb inputkezelési hiba is komoly következményekkel járhat. Az ajánlások mentén elvégzett javítások eredményeként a rendszer biztonságosabban fog működni és képes megfelelni a szabályozói elvárásoknak is.

Vegye fel velünk a kapcsolatot és tudja meg, hol sebezhető a rendszere!

Kapcsolat