Egy biztonsági szakember új sebezhetőséget fedezett fel a TorrentTrader nevű bittorrent tracker kódjában. A biztonsági részt kihasználva a támadók hozzáférhetnek az oldal-on tárolt IP-khez. A készítő már kiadott egy javítást, ami orvosolja a hibát.

A biztonságtechnikával foglalkozó Charles Vaughn egyébként a texasi egyetemen szerezte szoftvermérnöki diplomáját. Hétköznapjaiban Unixos szerver alkalmazásokkal foglalkozik, de nemrégiben úgy döntött, hogy átnézi tüzetesebben is a gyakran használt torrent tracker-t is.

Charles elmondta, hogy szenvedélye a biztonságtechnika, ezért döntött úgy, hogy kezei közé veszi a tracker forráskódját és átnézi. Azért választotta pont a TorrentTradert, mert olyan weboldal alapja, amit ő is nap mint nap használ, és emellett még ingyenes is és elérhető a teljes forráskód.

Az erőfeszítései nem voltak feleslegesek, állítása szerint komoly hibát talált, amit kihasználva lehetséges, hogy idegenek kívülről hozzáférjenek az adatbázis egyes részeihez.

A PHP-ban íródott TorrentTrander megköveteli a felhasználótól, hogy be legyen lépve, amikor letölti a  torrent fájlt. Ekkor a felhasználóhoz tartozó IP-t eltárolja, és csak erről az IP-ről engedi, hogy a felhasználó csatlakozzon a trackerhez. Charles egy olyan SQL injectiont talált a scrape.php-ben, ami lehetővé teszi a támadónak, hogy a torrent oldal adatbázisából kilistázza az összes IP-t.

Közel egy napba telt, amíg teljesen felfedte a scrape.php hiányosságait. Ez abból állt, hogy végignézte a forráskódban, hogy hol van mysql művelet, és visszakövette, hogy melyik változót használják nem megfelelő biztonsággal. (Nincsenek szűrve a msysql query-nek átadott stringben a speciáls html, illetve sql karakterek.)

Charles kifejtette, hogyan működik pontosan az expolit: a scrape.php válaszol a BitTorrent klienseknek a kérésekre. Két fajta választ adhat vissza; ha csak szimplán változók nélkül hívjuk meg, akkor kilistázza a trackeren található torrenteket és az adatokat. A másik lehetőség, ha egy speciális hash-el hívjuk meg, akkor ahhoz a torrenthez tartozó adatokat írja csak ki.

A probléma az, hogy a TorrentTrader nem szűri megfelelően az inputot, csupán a kérés hosszát nézi meg, hogy 40 karakteres-e. Az kérést egyenesen átadja az adatbázisnak. Ha az elküldött, módosított hash 40 karatker hosszú, máris hozzáférhetünk az adatbázishoz.

A legnagyobb veszélyt az jelenti, hogy ezzel a módszerrel bárki, elérheti azokat az adatokat, hogy ki, honnan, éppen milyen fájlokat oszt meg a trackeren.

A problémát úgy lehet orvosolni, hogy frissítjük a tracker scrape.php-ját a nemrégiben kiadott v1.08-es verzióra.

(via torrentfreak)