Emmentaler, Leerdammer i OpenX

Nemali broj OpenX korisnika ove je godine ostao neugodno iznenađen dobrodošlicom “Reported site attack!” na upadljivoj crvenoj pozadini ili upozorenjima antivirusnih programa o pronađenom malwareu prilikom pristupanja svojim web stranicama. Dva razloga zbog kojih su web stranice ovih nesretnih korisnika kompromitirane su sigurnosne rupe u OpenX-u i, onaj važniji, lijenost/zaboravljivost webmastera zbog koje aplikacija nije nadograđivana.

Svaka web aplikacija ima određene sigurnosne propuste, a one popularne privlače znatno veću pozornost napadača. OpenX, trenutno najpopularniji oglašavački server otvorenog kôda, u ovoj priči ne predstavlja iznimku. Štoviše, OpenX se ove godine našao na udaru neugodnih SQL injection propusta, koji su mnogim webmasterima zadali velike glavobolje.

U posljednje vrijeme smo u nekoliko navrata svjedočili takvim napadima, gdje su se u OpenX-ovu bazu podataka ubacili nestašni JavaScript kôdovi, koji su nakon prikaza bannera posezali za dodatnim sadržajem s udaljenih, zaraženih servera.

Ako koristite OpenX za prikazivanje bannera na svojoj stranici, u nastavku ovog članka pronaći ćete nekoliko SQL upita kojima možete provjeriti je li u vašoj bazi podataka završio neželjeni sadržaj.

Napomena: prije bilo kakvog rada na bazi podataka, preporučamo vam da napravite backup. Iako je ovaj članak napisan u dobroj namjeri, odgovornost za eventualnu štetu preuzimate na sebe.

Ispis podataka u append i prepend poljima unutar tablica ox_banners i ox_zones

SELECT bannerid, append, prepend
FROM ox_banners
WHERE append !=  ''
OR prepend !=  '';
SELECT zoneid, append, prepend
FROM ox_zones
WHERE append !=  ''
OR prepend !=  '';

Ispis svih korisnika s administratorskim ovlastima

SELECT  u.user_id, u.contact_name, u.email_address, u.username
FROM ox_users AS  u, ox_account_user_assoc AS aua WHERE u.user_id=aua.user_id
AND  aua.account_id = (SELECT value FROM ox_application_variable
WHERE  name='admin_account_id');

Ako primijetite da se negdje spominje sumnjiv JavaScript kôd, kojeg niste sami dodali, trebali biste ga obrisati.
Na primjer, naišli na maliciozni kôd u append poljima unutar tablice ox_banners gdje se spominje adresa zaražene stranice www.virus.com. SQL upit koji možete iskoristiti za čišćenje svih polja u kojima se spominje www.virus.com glasi:

UPDATE `ime_baze`.`ox_banners` SET `append` = ''
WHERE `ox_banners`.`append` LIKE '%www.virus.com%';

Naravno, umjesto ime_baze, upisat ćete naziv svoje baze, a umjesto www.virus.com, upisat ćete dio malicioznog JavaScript kôda na kojeg ste naišli.

Povezani članci

Odgovori