www.romver.ru
/ Полный список статей / Атаки на CMS

Как заказать сайт


АБРАКАДАБРА (Тоже самое но в читаемом виде)

Obzor naibolee popularnix atak na sovremennie CMS.

Su6estvuet neskol'ko tipov atak na sistemi upravlenia soderjimim.

Vo-pervix, atakuu6iy mojet osu6estvit' modifikaciu stroki zaprosam takim obrazom, 4tobi vizvat' SQL-injectionili PHP-including. Po4ti dla vsex CMSvozmojnost' realizacii PHP-including polnost'u isklu4aetsa. Odnako realizacia SQL-injectionvozmojna vo mnogix slu4aax.

Vo-vtorix, v kajdoy CMSimeetsa modul', pozvolau6iy ostavit' kakuu-libo informaciu na sayte. Zdes' vozmojno oboyti proverki vvedёnnoy informacii i opublikovat' na sayte special'niy kod, tem samim realizovav XSSataku.

Takje su6estvuut uazvimosti, svazannie s razgrani4eniem prav administratorov razli4nogo urovna dostupa.

Ataki SQL-injection
Prejde vsego opredelim, v 4em zaklu4aetsa sut' ataki tipa SQL injection . K primeru, na atakuemom servere stoit sleduu6iy PHP-skript, kotoriy na osnove pola category_id delaet viborku zagolovkov statey iz tablici articles i vivodit ix pol'zovatelu:

//podklu4aemsak MySQL

mysql_connect($dbhost, $dbuname, $dbpass) or die(mysql_error());

mysql_select_db($dbname) or die(mysql_error());

$cid=$_GET["cid"];

$result=mysql_query("SELECT article_id, article_title FROM articles where category_id=$cid"); // <- uazvimiyzapros

while( $out = mysql_fetch_array( $result)):

echo "Stat'a: ".$out[`article_id`]." ".$out[`article_title`]."
";

endwhile;

//vivodim rezul'tat v vide spiska

V perevode s azika MySQL zapros zvu4it tak: "vibrat' id_statey, zagolovki_statey iz tablici_statey gde id_kategorii ravno $cid". Na perviy vzglad vse verno, po ssilke tipa http://serv.com/read.php?cid=3 skript rabotaet normal'no i vivodit pol'zovatelu spisok statey, prinadleja6ix kategorii 3.

No kakie vozmojnosti eto daёt zloumi6lenniku? Onmojetsdelaetzaproshttp://serv.com/read.php?cid=3` (imennoskavi4koy) ipolu4it4to-tovrode: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/apache/htdocs/read.php on line 14.

Posmotrim, 4to zaprosil PHP u MySQL. Peremennaa $cid ravna 1`, togda zapros prinimaet neverniy s to4ki zrenia MySQL vid: SELECT article_id, article_title FROM articles where category_id=1`. Pri sintaksi4eskoy o6ibke v zaprose MySQL otve4aet strokoy "ERROR 1064: You have an error in your SQL syntax...". PHP ne mojet raspoznat' etot otvet i soob6aet ob o6ibke, na osnove kotoroy xaker mojet sudit' o prisutstvii uazvimosti tipa SQL Injection. O4evidno, 4to zloumi6lennik polu4it vozmojnost' zadavat' peremennoy $cid lubie zna4enia ($cid=$_GET[cid]) i, sledovatel'no, modificirovat' zapros k MySQL. Naprimer, esli $cid budet ravna "1 OR 1" (bez kavi4ek v na4ale i v konce), to MySQL vidast vse zapisi, nezavisimo ot category_id, tak kak zapros budet imet' vid (..) where category_id=1 OR 1. To est' libo category_id = 1 (podoydut li6' zapisi s category_id, ravnimi 1), libo 1 (podoydut vse zapisi, tak kak 4islo bol'6e nula - vsegda istina).

Tol'ko 4to opisannie deystvia kak raz i nazivautsa SQL Injection - in'ekcia SQL-koda v zapros skripta k MySQL. S pomo6'u SQL Injection zloumi6lennik mojet polu4it' dostup k tem dannim, k kotorim imeet dostup uazvimiy skript: paroli k zakritoy 4asti sayta, informacia o kreditnix kartax, parol' k administratorskomu razdelu i t.d.. Atakuu6iy mojet polu4it vozmojnost' vipolnat' komandi na servere.

Klassi4eskiy primer uazvimosti tipa SQLInjection- sleduu6iy zapros: SELECT * FROMadminsWHERElogin=`$login` ANDpassword=MD5(`$password`).

Dopustim, on budet proverat' podlinnost' vvedennix rekvizitov dla vxoda v administratorskuu 4ast' foruma. Peremennie $login i $password avlautsa loginom i parolem sootvetstvenno, i pol'zovatel' vvodit ix v HTML-formu. PHP posilaet rassmatrivaemiy zapros i proveraet: esli koli4estvo vozvra6ennix ot MySQL zapisey bol'6e nula, to administrator s takimi rekvizitami su6estvuet, a pol'zovatel' avtorizuetsa, esli ina4e (takix zapisey net i login/parol' nevernie) - pol'zovatela napravat na fsb.ru.

Kak vzlom6ik ispol'zuet SQL Injection v etom slu4ae? Zloumi6lenniku trebuetsa, 4tobi MySQL vernul PHP-skriptu xota bi odnu zapis'. Zna4it, neobxodimo modificirovat' zapros tak, 4tobi vibiralis' vse zapisi tablici nezavisimo ot pravil'nosti vvedennix rekvizitov. Ispol'zuem princip "OR 1". Krome togo, v MySQL, kak i v lubom azike, su6estvuut kommentarii. Kommentarii obozna4autsa libo --kommentariy (kommentariy v konce stroki), libo /*kommentariy*/ (kommentariy gde ugodno). Pri4em esli vtoroy tip kommentaria stoit v konce stroki, zakrivau6iy znak `*/` neobazatelen. Itak, vzlom6ik vvedet v ka4estve logina stroku anyword` OR 1/*, a v ka4estve parola - anyword2. Togdazaprosprinimaettakoyvid: SELECT * FROM admins WHERE login=`anyword` OR 1/* AND password=MD5(`anyword2`). V rezul'tate MySQL vernet vse zapisi iz tablici admins daje nezavisimo ot togo, su6estvuet admin s loginom anyword ili net, i skript propustit xakera v adminku. Takaa uazvimost' bila obnarujena, naprimer, v Advanced Guestbook. Ona pozvolala voyti v administratorskuu 4ast' ne znaa parola i vnutri nee 4itat' fayli. No SQL Injection etogo tipa obi4no ne pozvolaut zloumi6lenniku polu4it' dannie iz tablici.

Ataki XSS

Uazvimost', tipa XSS, voznikaet v tex situaciax, kogda dannie vvedennie pol'zovatelem vivodatsa bez nadleja6ey fil'tracii v tekste sgenerirovannogo html dokumenta.
K primeru, mojet bit' situacia, kogda dannie, otpravlennie odnim pol'zovatelem bez fil'tracii vivodatsa drugim pol'zovatelam. Tipi4noy sistemoy takogo roda avlautsa 4ati, forumi, razli4nie sistemi upravlenia.

Vtorim variantom uazvimosti, avlaetsa situacia, kogda 4ast' HTTP GET zaprosa vivoditsa na etoy je html stranice tomu je pol'zovatelu bez nadleja6ey fil'tracii. Kak pravilo – eto situacii, kogda bez nadleja6ey fil'tracii vivoditsa identifikator sessii ili drugie GET parametri. Teper' rassmotrim nekotorie situacii, kogda uazvimost' otsutstvuet v avnom vide.

Predstavim sebe sistemu, naprimer, forum, v kotorom v soob6enia kakim libo obrazom mojno vstavlat' izobrajenia so storonnix saytov. Tak, naprimer, na mnogix forumax, vstavit' izobrajenie mojno ispol'zua konstrukciu [IMG]http://site/image[/IMG]. O4evidno, 4to v takom slu4ae, brauzer kajdogo 4eloveka, posetiv6ego stranicu s takim soob6eniem, budet zapra6ivat' dannoe izobrajenie s ukazannogo sayta, esli kone4no, eto razre6eno v nastroykax.

Teper' rassmotrim vozmojnost' togo, 4to vmesto izobrajenie naxodit'sa nekotoriy skript [IMG]http://site/image.php[/IMG], kotoriy delaet sleduu6ee
1. coxranaet informaciu o zaprose

2. vivodit zagolovok: Content-type: image/jpeg (dla JPEG izobrajenia)

3. vivodit soderjanie izobrajenia.


U4itivaa, 4to v bol'6instve slu4aev v ka4estve pola HTTP-REFERER, HTTP zaprosa pri zaprose kartinok, brauzer otsilaet URL dokumenta, na kotorom vstavlena kartinka, to pri pomo6i skripta mojno sobrat' sleduu6ie dannie.

1. IP adres (vklu4aa zagolovki X-FORWARDED_FOR i tp.)

2. Kajduu stranicu, pose6ennuu kajdim pol'zovatelem (pri uslovii, 4to na ney imeetsa ssilka na dannoe izobrajenie)

3. Pole User-Agent pol'zovatela.


Navernoe, rezul'tativnee vsego dla sbora statistiki v bol'6instve forumov, takoy URL izobrajenia, sleduet zadat' v ka4estve URL avatara. Mojno bi bilo predpolojit', 4to dla togo, 4tobi isklu4it' takuu vozmojnost', na servere mojno razre6it' razme6enie tol'ko izobrajeniy, imeu6ix sootvetstvuu6ee ras6irenie fayla - .jpg ili tol'ko .gif. Odnako pol'zovatel' mojet nastroit' HTTP server taki obrazom, 4tobi fayli .jpg k primeru, toje s4italis' i obrabativalis' kak PHP skripti. Bolee togo, PHP mojet bit' skonfigurirovan takim obrazom, 4to nikakaa informacia ob interpretatore PHP ne posilalas' v zagolovke HTTP otveta. Takim obrazom, podobniy sbor statistiki mojet bit' realizovan absolutno prozra4no dla servera i klientov.
Nikakimi metodami nevozmojno uznat', imeet mesto podobniy sbor statistiki ili net.
Kone4no, vsu etu informacia mojno sobrat i iz logov HTTP servera, na kotorom naxoditsa takoe “izobrajenie”, no vedenie logov v skripte bolee udobno.

Predpolojim, 4to v nekotoroy sisteme (forume), razre6eno vklu4at' kakim libo obrazom v soob6enia kartinki so storonnix serverov. Kajdiy raz, kogda kajdiy pol'zovatel' otkrivaet html stranicu s takim soob6eniem, ego brauzer delaet zapros na server, kotoriy mojet kontrolirovat'sa xakerom, s cel'u polu4enia tela izobrajenia. Teper' predstavim sebe situaciu, 4to na takoy zapros, server otvetil trebovaniem avtorizacii. V takoy situacii, brauzer zaprosit u kajdogo otkrivau6ego etu stranicu parol'. Bolee togo, nadpis' v oko6ke vvoda parola mojet bit' proizvol'noy i zadaetsa xakerom. Naprimer, tam mojet bit' napisano o sboe avtorizacii, i pro4ie frazi, sozdanie kotorix otnositsa uje k social'noy injenerii. Esli pol'zovatel' vvedet v etom oko6ke svoi ima i parol', to eti dannie budut otpravleni na server, kontroliruemiy xakerom. Skript, generiruu6iy etot zagolovok i prinimau6iy dannie mojet pri povtornom zaprose (otslejivaetsa po ip), vernut' soderjimoe izobrajenie, bez otveta o neuda4noy avtorizacii. Takim obrazom, posle togo, kak pol'zovatel' vvedet ima i parol', stranica otkroetsa v obi4nom vide. Posle otpravki soob6enia, server mojet zapra6ivat' s udalennogo servera vse izobrajenia, imeu6iesa v dokumente, i ostavlat' ix v soob6enii, tol'ko esli oni deystvitel'no budut avlat'sa pravil'nimi izobrajeniami, i vozvra6at'sa s kodom 200. Odnako, napadau6iy smojet legko otli4it' zapros servera (po ip adresu, vremeni zaprosa i tp.), i vozvratit' serveru pravil'noe soderjanie izobrajenia.
Analogi4no, mojno polnost'u skrit', 4to na storone servera rabotaet skript.
Na etape dobavlenie soob6enia, serveru nevozmojno uznat', dobavleno normal'noe izobrajenie, ili net. Eto napadenie mojet bit' ispol'zovano kak dla popitki kraji rekvizitov dostupa k sisteme pol'zovatela, tak i dla elementarnogo zatrudnenia raboti s sistemoy legitimnix pol'zovateley.

Esli pol'zovatel' imeet vozmojnost' dobavit' v tekst soob6enia izobrajenie so storonnego sayta, kotoroe budet dostupno vsem, otkrivau6im etu html stranicu, to stanovitsa vozmojnim realizovat' DDOS ataku. Dopustim, v tret'em sayte, imeetsa uazvimost' – nekotoriy dokument pri nekotorix parametrax potreblaet sli6kom mnogo sistemnix resursov. V pervuu o4ered' imeetsa v vidu imeu vvidu SQL in&ekciu, s vozmojnost'u vnedrenia benchmark() funkcii, takim obrazom, 4to odin zapros sil'no nagruzit uazvimiy server. Ob uazvimosti tipa SQL in&ekcia i v tom 4isle ob ispol'zovanii funkcii benchmark v SQL zaprose dla provedenia DOS ataki, rasskazano v etoy stat'e http://www.securitylab.ru/45438.html

Razme6aa v rassmatrivaemom forume (predpolagaem, 4to on imeet bol'6uu pose6aemost'), bol'6oe koli4estvo soob6eniy, soderja6ix izobrajenia s URL na samom dele ekspluatiruu6ie uazvimost' v tret'em sayte. Etot metod ataki, na perviy vzglad kajetsa ne effektivnim po neskol'kim pri4inam. Ne vo vsex slu4aax udastsa postavit' takoy URL v ka4estve ssilki na izobrajenie po toy pri4ine, 4to razli4nie fil'tri ne servere mogut zablokirovat' slojniy URL.
Malo veroatno, 4to za maliy promejutok vremeni udastsa razmestit' bol'6oe koli4estvo takix soob6eniy.

Esli zloumi6lennik ostavlaet bol'6oe koli4estvo soob6eniy na 4asto pose6aemix forumax, s ssilkoy na izobrajenie, naxoda6eesa na kontroliruemom im servere. Lu46e vsego dla takix celey podxodit ssilka na avatar. Posle togo, kak nakoplena zna4itel'naa baza takix soob6eniy, skript, ranee, vozvra6au6iy soderjimoe izobrajenia, stanet vozvra6at' zagolovok HTTP otveta 301 – moved, s ukazannim v Location zagolovke URL, ekspluatiruu6im uazvimost' v tret'em sayte. Kone4no, s etogo momenta, izobrajenie otkrivat'sa ne budet. No, kajdiy posetitel', otkrivau6iy lubuu stranicu s takim izobrajeniem budet u4astvovat' v DDOS atake na takoy skript.
V zavisimosti ot nakoplennoy bazi takix soob6eniy, i mo6nosti tret'ego servera, rezul'tat mojet bit' kak zna4itel'noe tormojenie servera tak i polnoy vixod iz stroa servera na period ataki ili do ispravlenia uazvimosti.

Teper' rassmotrim druguu situaciu. K primeru, v nekotoroy sisteme (forume), nekotorimi metodami v kajdom soob6enii mojno ostavit' ssilku ( …a> ), na proizvol'niy URL.
Tak, naprimer, mojet ispol'zovat'sa sleduu6ie konstrukcii [URL=…]…[/URL]. Zna4enie URL naxoditsa v dvoynix kavi4kax, vse opasnie simvoli, takie, kak kavi4ki, znaki bol'6e men'6e, fil'truutsa, pered vstavkoy zna4enia v ka4estve URL. Naprimer, dla vivoda sobstvenno URL ssilki i teksta ssilki ispol'zuetsa funkcia napodobie funkcii PHP htmlspecialchars(). Takim obrazom, vibrat'sa za predeli atributa href, nevozmojno. I nevozmojno izmenit' reakcii na sobitia OnMouseClick ili OnMouseOver. Drugimi slovami, kazalos' bi, uazvimost' otsutstvuet. Odnako sleduu6iy kod pokazivaet obratnoe:

[URL=javascript:alert(document.dookie)]click me[/URL]

Etotkodkonvertiruetsav:

click me

Dalee, pri klike na etu ssilku, kak ni stranno, vipolnit'sa vnedrenniy JavaScript kod. Bolee togo, vipolnit'sa on v kontekste “neuazvimogo” sayta, 4to vle4et za soboy vse nepriatnosti uazvimosti XSS.

V 4astnosti, eto mojet ispol'zovat'sa dla kraji cookies celevogo pol'zovatela.
Dla togo, 4tobi oboyti, vozmojno prisutstvuu6ie na servere mexanizmi fil'tracii, xaker mojet ispol'zovat' nekotoroe priemi. Naprimer, probeli v JavaScript kode, mogut zamenit'sa na posledovatel'nosti /**/. A ot ispol'zovania kavi4ek spaset funkcia string.fromCharCode(), kotoraa prinimaet kodi simvolov i vozvra6aet stroku. Dla isklu4enia etoy uazvimosti dostato4no fil'trovat' slovo script v URL ssilki.

Vernemsa k situacii, s vozmojnost'u vnedrenia izobrajeniy v soob6enia.
Dopustim, dla vipolnenia nekotorix deystviy administratorom sistemi ili moderatorom, proisxodit perexod po nekotoroy ssilke. Tak, naprimer, dopustim, dla udalenia soob6enia, administratoru neobxodimo kliknut' na ssilku tipa http://site/forum/delete-post.php?id=12345, gde 12345 – eto identifikator soob6enia. Teper' predstavim sebe situaciu, 4to xaker ostavit na forume soob6enie s izobrajeniem, imeu6im imenno takoy URL. Rezul'tatom budet to, 4to kak tol'ko administrator pro4itaet eto soob6enie, ego brfuzer sdelaet zapros k dannomu URL, i, v tom 4isle, peredast vse autentifikacionnie dannie (COOKIE) na server. Predpolagaetsa, 4to administrator v moment pro4tenia takogo soob6enia (naprimer, otpravlennie emu privatnim posil'nim), autentificirovan na forume. V rezul'tate, celevoe soob6enie budet udaleno, nezametno dla administratora. Dopustim, v rezul'tate kakoy libo fil'tracii, v soob6eniax na forume nevozmojno vstavlat' izobrajenia s takim URL. Togda zloumi6lenniku pomojet priёm s Location.
Napadau6emu dostato4no budet vstavit' v soob6enie izobrajenie, naxoda6eesa na kontroliruemom sayte. Kontroliruemiy napadau6im server pri zaprose dannogo izobrajenia doljen otvetit' zagolovkom 301 (ili 302) moved, s Location polem, so zna4eniem celevim URL = http://site/forum/delete-post.php?id=12345.

V rezul'tate, pri zaprose etogo izobrajenia, brauzer administratora obratit'sa po dannomu URL prozra4no dla administratora budet vipolneno nekotoroe deystvie. Kak i ranee, napadau6iy mojet polnost'u skrit' fakt vipolnenia skriptov na servere, i, krome togo, lubie fil'tri vozmojno prisutstvuu6ie v sisteme (forume), mogut bit' proydeni ukazannim sposobom. Bolee togo, prosmatrivaa URL izobrajenia (v svoystvax izobrajenia v brauzere), administratora ne zametit ni4ego udivitel'nogo. URL mojet deystvitel'no vigladit' kak URL obi4nogo izobrajenia.

I, krome togo, esli v sisteme predusmotreni metodi kontrola, i, dla vipolnenia deystviy administratorom, neobxodimo, 4tobi HTTP REFERER, peredanniy brauzerom prinadlejal forumu, to i eta proverka obxoditsa avtomati4eski. Delo v tom, 4to pri zaprose izobrajenia, raspolojennogo na sayte, serveru na kotorom raspolojeno izobrajenie peredaetsa HTTP_REFERER ravniy URL-u stranici s izobrajeniem. A pri perexode po Location, s zagolovkom 301 (302) Moved, HTTP-REFERER soxranaetsa. Vnimanie. K podobnomu tipu ataki uazvimi VSE sistemi (forumi, 4ati), razre6au6ie vstavku v soob6enia izobrajeniy so storonnix saytov, v slu4ae, esli dla vipolnenia nekotorix deystviy administratorom (moderatorom), xvatit prostogo HTTP GET zaprosa.

Teper' rassmotrim bolee slojnuu situaciu. Dla vipolnenia nekotorix deystviy administratorom neobxodimo otpravit' HTTP POST zapros. Primerom mojet slujit' otpravka soob6enia ot imeni administratora, libo drugie deystvia vplot' do perevoda opredelennix pol'zovateley mejdu gruppami i nadelenia ix privilegiami administratora.
Xaker mojet razmestit' ssilku ([URL=xxx]yyy[/URL]) na nekotoroe izobrajenie ili URL, s cel'u zamanit' administratora po ukazannomu URL. Naprimer, URL mojet bit' poxoj na adres kartinki (*.jpg), 4tobi ne vizvat' dopolnitel'nix podozreniy u administratora. Pri perexode po etomu URL, administratoru mojet vivodit'sa forma so skritimi polami, soderja6aa vse neobxodimie dannie, i otpravlat'sa metodami JavaScript avtomati4eski posle zagruzki. Dla povedenia skritoy ataki, forma mojet naxoditsa v iframe ob&ekte, kotoriy v svou o4ered' naxoditsa v nevidimom sloe. V to vrema, kak v vidimoy 4asti stranici deystvitel'no mojet raspolagat'sa kakoe libo izobrajenie. Opisannie vozmojnosti avlautsa o4en' opasnimi po neskol'kim pri4inam.

1) su6estvuet ogromnoe koli4estvo produktov, uazvimix k takogo roda atakam
2) ataka o4en' legko osu6estvima

3) ataka mojet bit' provedena nezametno dla administratora

4) ataka mojet bit' provedena s minimal'nimi vzaimodeystviami s administratorom (moderatorom) sistemi.
Dla za6iti ot podobnogo roda atak rekomenduetsa kajdiy raz, dla vsex dannix, otpravlennix na forume, dobavlat' k nim identifikator sessii ili ego xe6, s posleduu6ey proverkoy na servere. Esli ssilki i soderjanie form budut imet' nepredskazuemiy vid, to eto sdelaet provedenie takix atak ves'ma maloveroatnim.
vzato s http://www.altweb-cms.ru/hackingcms/
3
Создание эксклюзивных сайтов, юзибилити анализ и бесплатный анализ под запросы основных поисковых машин
Контактная информация :
тел. +7(98I) 7608865

Написать письмо на e-mail
icq 415547094  romverрейтинг на mail.ru сайта romverinbox.ru
© 1997 - 2024 romver.ru

Полная карта сайта Display Pagerank