Ü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
Vizsgálati módszertan
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.
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.
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.