Feed subscription » blog | » comments | » google+ | » mobi | » twitter

.htaccess na slovenských domenách

.htaccess na slovenských domenáchJe to už viac ako rok čo sa z času na čas venujem slovenským doménam a ich bezpečnosti. Mám vytvoreného robota, ktorý každé ráno aktualizuje zoznam domén, postupne ich prechádza a hľadá pre mňa zaujímavé veci, hlavne z hľadiska bezpečnosti.

Takto sa mi podarilo nazbierať podľa mňa pekné množstvo informácií, snáď to raz odpublikujem. Medzi inými robot skúša pristúpiť k súborom, ktoré by nemali byť verejne dostupné, resp. by mal byť prístup k nim odoprený. Medzi takéto súbory patrí aj konfiguračný súbor .htaccess, ktorý pravdepodobne pozná väčšina programátorov, ale pre neznalých:

.htaccess je textový súbor, ktorý umožňuje zmeniť niektoré (záleží od nastavenia) vlastnosti webového servera (ako napríklad Apache) bez priameho ovplyvnenia hlavného konfiguračného súboru. To znamená, že je možné nastavovať rôzne správanie rôznych projektov, ktoré však využívajú ten istý webový server.

Prístup k týmto súborom by nemal byť povolený, pretože môžu obsahovať informácie, ktoré by mohli ohroziť bezpečnosť webu, či priamo webového servera. Väčšinou, ak je prístupný súbor .htaccess býva prístupný aj súbor .htpasswd (ak je vytvorený), ktorý obsahuje prístupy pre tzv. basic authentification (základnú autentifikáciu). Prístupové údaje sú v tomto taktiež textovom súbore uložené v tvare meno_uzivatela:hash_hesla. Ak útočník získa prístup k takémuto súboru, je pravdepodobné, že sa dostane do zabezpečenej časti webu, kam ste ho nemali v úmysle pustiť. Na získanie hesla je možné použiť napríklad známy softvér John the Ripper.

Oba tieto súbory by mali byť chránené pred prístupom z vonku. Napríklad Apache vo svojej štandardnej konfigurácii obsahuje aj tieto riadky (v súbore httpd.conf).

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

Vďaka nim je prístup k týmto súborom zakázaný a výsledkom je chybová hláška so statusom 403 Forbidden, ako napríklad tu. Stáva sa však, že prístup k týmto súborom je povolený a teda si môže ktokoľvek prečítať jeho obsah.

Na slovensku bolo v dobe písania článku zaregistrovaných 197 818 domén, z čoho je väčšina funkčných (v zmysle že sú na nich zobrazované webstránky). Z nich viac ako “300″ umožňuje načítať súbor .htaccess. Nie všetky domény v zozname sú slovenské, no presmerovávajú na ne slovenské domény a tak som ich zo zoznamu nevyhadzoval. Rovnako som neskúšal subdomény a ani priečinky jednotlivých domén, takže zoznam určite nie je konečný.

Tu je ich zoznam:
1tatranskaspravcovska.sk, 1ts.sk, 4metal.sk, aaa-auto-banskabystrica.sk, aaa-auto-bratislava.sk, aaa-auto-kosice.sk, aaa-auto-lucenec.sk, aaa-auto-nitra.sk, aaa-auto-poprad.sk, aaa-auto-presov.sk, aaa-auto-prievidza.sk, aaa-auto-ruzomberok.sk, aaa-auto-trencin.sk, aaa-auto-zilina.sk, aaapremiumauto.sk, adresar.sk, airtoy.cz, airtoy.sk, ake.kz, aktualnezlavy.sk, alegraprint.sk, alpine.sk, alusolid.sk, archon.sk, armaturex.sk, asanista.sk, aspi.sk, audi-auto.sk, audiotechnika.sk, australiastudium.sk, australia-studium.sk, auto-bmw.sk, badpiestany.com, ber.sk, betaol.cz, betterplace.org, bevito.sk, bigfutbal.sk, bkonline.sk, bkteam.sk, blanar.sk, brusky.sk, buginy.sk, burningmedia.sk, ceramicasantagostino.sk, citroen-levne.sk, comexim.sk, crdesign.cz, csko.sk, cub.sk, cyklotour.sk, cyprian.sk, danovesluzby.sk, d-box.sk, ddp.sk, decormaison.cz, delta-kolo.cz, demontservis.sk, denniksport.sk, deweb.sk, divoke-kmene.sk, divokekmeny.sk, domov.sk, donauchem.cz, doplnkystravy.sk, dopravnik.sk, dotmac.sk, e107.sk, efmuk.sk, ekonomickysoftware.sk, eletechnik.sk, eny.sk, erotikdating.sk, esthetic.sk, etngroup.sk, euroinformacie.sk, evidencia.sk, exedra.sk, exedrafit.sk, expocom.sk, f-h.sk, fiat-auto.sk, financial.sk, firmyasluzby.sk, fischbacher.sk, flashdev.sk, ford-auto.sk, friendlyhouses.sk, funeral.sk, fun-online.sk, games.sk, granit.sk, graniti.sk, hako.sk, healthspa.sk, hokejportal.sk, honda-auto.sk, hromozvody.sk, hry24.sk, chatamatus.sk, chatanakoncikorne.sk, chatnet.sk, chudnete.sk, i-katalog.sk, imapy.sk, immocap.sk, impregnacia.sk, imprint.sk, inprost.sk, inqb.sk, internship.sk, investhouse.sk, iserver.sk, istrofinal.sk, iura.sk, jabbim.sk, jakota.sk, jazvy.sk, jobmania.sk, juj.sk, jurajblanar.sk, karatesk.sk, katalogcrv.sk, katalogokien.sk, knihyezop.sk, kontakt.sk, koragroup.sk, kostal.sk, kozmetickachirurgia.sk, kreditnakarta.sk, kto.sk, kupelepiestany.sk, lba.sk, lepsiezdravie.sk, letbalonom.sk, maesw.sk, mamtalent.sk, manipulatory.sk, marianske-lazne.sk, mayertransport.sk, mazda-auto.sk, mercedes-auto.sk, mesacnikpodnikanie.sk, mesta.sk, metavium.sk, metooradio.sk, metootv.sk, microtherm.cz, mladezvakcii.sk, mojemesto.sk, mortality.sk, motivacia.sk, mrmaros.sk, msrk.sk, musicstar.sk, nabytokbeba.sk, najlacnejsie-knihy.sk, napojove-prepravky.sk, naspirale.cz, nautila.sk, navigacnesystemy.sk, navigacnysystem.sk, neira.sk, netfinity.sk, netster.sk, nike-shop.sk, nissan-auto.sk, noemi.sk, obcianskypreukaz.sk, obtulowicz.sk, olympiady.sk, onaaauto.sk, onlineslovnik.sk, onlineuctovnictvo.sk, opel-auto.sk, oravskevesele.sk, owayo.com, pages.sk, parkoviska.sk, party.sk, paxz.nl, personalfabric.sk, peugeot-auto.sk, pizzamicio.sk, planovac.sk, plastickachirurgia.sk, plastove-kontajnery.sk, plastove-palety.sk, plastove-prepravky.sk, pohodafestival.sk, pomahameliecit.sk, poradenskesluzby.sk, porges.sk, porno-sex-erotika.sk, porno-videa-sex-tv.sk, povinnavybava.sk, povolenie.sk, ppc-pay-per-click-cpc.sk, praca.in, pracadoma.sk, prazdroj.sk, privateli.sk, profilex.sk, promotive.sk, protezy.sk, prvatatranskaspravcovska.sk, pyrostop-ba.sk, ranajkujzdravo.sk, reality123.sk, redflower.sk, regulacnatechnika.sk, rekuperacia.sk, rekuperator.sk, relaxacnecentrum.sk, renault-auto.sk, retrofutbal.sk, rkvin.sk, rogeriana.sk, rozhanovce.sk, salaty.sk, sanitarnatechnika.sk, santagostino.sk, seat-auto.sk, semania.mobilmania.cz, severskelisty.sk, shops.sk, signal.sk, siklienka.sk, sina.sk, skateobchod.sk, skate-obchod.sk, skg.sk, skladacie-kontajnery.sk, skladovatechnika.sk, sklenarstvo.sk, slovakdomains.sk, slovakiaguide.sk, smo.sk, smolnik.sk, smspoistenie.sk, sms-poistenie.sk, snickers.sk, spapiestany.sk, sponzorovaneodkazy.sk, sponzorovane-odkazy.sk, sportfinal.sk, sport-mix.sk, sportpodlahy.sk, sport-podlahy.sk, sport-povrchy.sk, sportpress.sk, sprchy.sk, ssjr.sk, stavebnesluzby.sk, stefanbackor.sk, stickfish.com, stranky.sk, stupido.sk, sunflowers.sk, sustruhy.sk, swat.sk, tattoo-spray.sk, tectus.sk, thermia.sk, thermiahotel.sk, thermiapalace.sk, thermiapiestany.sk, tommeetippee.sk, top-office.sk, toyota-auto.sk, tpa-horwath.sk, tracker.sk, tvarnenie.sk, tzbinfo.sk, tzb-info.sk, uctovnesluzby.sk, uctovnictvoonline.sk, ulozto.sk, unidekor.sk, unimpex-bratislava.sk, union.sk, unionprihlaska.sk, unionzdravotnapoistovna.sk, unionzp.sk, union-zp.sk, upratovaciservis.sk, usporne-cerpadla.sk, uspornedomy.sk, uverypozicky.sk, uzp.sk, velkeveci.sk, vodicskypreukaz.sk, vw-auto.sk, vynosy.sk, vyznamenanie.sk, wareznet.sk, web.analytics.yahoo.com, webkraft.sk, webzabava.sk, wsia.sk, ymca-nesvady.sk, zabes.sk, zahradnenabytky.sk, zakonysr.sk, zariadenie-predajni.sk, zizdravo.sk

Pred niekoľkými mesiacmi sa podobná chyba objavila aj na populárnom Twitteri.

#SetEnvIf User-Agent .*R6_Feed.* robot
Order allow,deny
Allow from all
Deny from env=robot
Deny from 72.47.254.135 70.74.201.136 129.128.99.97 213.186.116.115 69.31.45.178
217.20.175.128 77.222.42.34 217.16.16.225 217.16.16.202 83.222.23.240 85.21.154.98
83.222.23.222 212.193.228.118 213.251.189.203 62.149.130.16 151.56.63.169 64.72.112.19
67.228.15.148 194.85.93.194 77.221.130.5 80.91.176.143 81.177.4.224 68.178.174.65
80.245.112.5 193.178.144.158 193.178.144.158 151.56.103.207 193.178.144.117
193.178.144.158 193.178.144.62 193.178.144.8 193.178.144.9 193.178.145.111
193.178.145.185 193.178.145.235 193.178.145.245 193.178.146.237 194.135.22.221
194.54.90.182 194.85.90.193 194.85.90.253 194.85.93.194 195.245.118.44 195.248.190.145
208.109.206.50 212.193.228.118 213.172.16.3 213.186.114.74 213.186.116.231
213.186.126.2 213.186.192.131 213.186.192.164 213.188.130.113 213.248.54.68
216.119.125.140 217.112.35.22 217.112.35.28 217.112.37.47 217.112.42.64 217.16.16.201
217.16.16.202 217.16.16.220 217.20.175.128 62.149.0.175 62.149.0.46 62.149.130.16
62.149.130.37 62.149.18.31 62.149.18.4 62.80.178.142 63.247.74.34 64.202.165.131
64.202.165.132 64.202.165.133 64.202.165.201 64.40.144.166 66.118.138.196 67.222.1.136
67.228.15.148 68.178.174.65 69.31.45.178 69.50.162.178 69.72.149.27 72.233.48.174 
72.36.239.90 74.208.16.18 74.52.59.226 77.221.130.13 77.221.130.5 77.222.40.141
77.222.40.151 77.222.40.206 77.222.40.43 77.222.40.63 77.222.40.78 77.222.42.34
77.234.201.70 77.47.129.39 77.87.192.13 77.87.192.14 77.87.192.7 78.108.81.161
78.110.50.106 80.245.112.5 80.78.36.201 80.82.45.89 80.91.176.143 80.91.176.175
80.91.189.44 80.93.49.112 80.93.56.169 80.93.62.112 80.93.62.69 81.176.226.50
81.176.76.66 81.177.16.111 81.177.19.5 81.177.4.224 81.177.9.35 82.146.41.76
83.222.23.222 83.222.23.231 83.222.23.240 83.222.23.242 84.19.188.193 85.21.154.98
87.242.74.39 87.242.77.34 88.198.54.120 89.108.66.231 89.111.176.20 91.186.4.115
91.195.214.132 202.190.77.19 208.113.171.20 62.178.2.49 206.251.244.15
 
# General Apache options
#AddHandler fastcgi-script .fcgi
AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI
 
# If you don't want Rails to look in certain directories,
# use the following rewrite rules so that Apache won't rewrite certain requests
# 
# Example:
#   RewriteCond %{REQUEST_URI} ^/notrails.*
#   RewriteRule .* - [L]
 
# Redirect all requests not available on the filesystem to Rails
# By default the cgi dispatcher is used which is very slow
# 
# For better performance replace the dispatcher with the fastcgi one
#
# Example:
#   RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
RewriteEngine On
 
# If your Rails application is accessed via an Alias directive,
# then you MUST also set the RewriteBase in this htaccess file.
#
# Example:
#   Alias /myrailsapp /path/to/myrailsapp/public
#   RewriteBase /myrailsapp
 
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
 
# In case Rails experiences terminal errors
# Instead of displaying this message you can supply a file here which will 
# be rendered instead
# 
# Example:
#   ErrorDocument 500 /500.html
 
ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"

Záver

Aj napriek tomu, že zobrazenie obsahu .htaccess súboru nevedie k možnosti ovládnuť server, či inak priamo ohroziť bezpečnosť samotného webu, môže obsahovať veľmi zaujimavé informácie, ktoré môžu dopomôcť útočníkovi k objaveniu bezpečnostnej zraniteľnosti. Často sa v súbore objavujú absolútne cesty k priečinkom, odkiaľ je spúšťaný web, samozrejme pravidlá na vytváranie tzv. COOL URI, linky, cestu do administrátorského prostredia, atď. Preto je určite viac než rozumné tieto súbory chrániť a znemožniť prístup k nim.

Zaujal vás článok? Sledujte ma na Twitteri.


19 Responses to “.htaccess na slovenských domenách”


  1. 1 Lza Oct 29th, 2009 at 03:39

    thumbs up! :)

  2. 2 MZK Oct 29th, 2009 at 09:06

    Pěkné.. .htaccess je v defaultním nastavení nepřístupný, proč by tonastavení někdo měnil?

  3. 3 Anatol Oct 29th, 2009 at 10:00

    Zajímavé, myslel jsem si, že zakázaný přístup k .htaccess je tak nějak standard a dělají to všichni. Jen tak pro úplnost, jak je to se souborem web.config? Vyskytuje se tam podobný problém?

  4. 4 Vladimir Stofanik Oct 29th, 2009 at 10:38

    Ja to riesim priamo v .htacces subore kde na zaciatok pridam:

    RewriteEngine On

    order allow,deny
    deny from all

    RewriteEngine On
    <Files .htaccess>
    order allow,deny
    deny from all
    </Filesgt;

  5. 5 S Oct 29th, 2009 at 10:47

    Heh som sa tam nasiel, nastastie len default htaccess frameworku.
    Dik za clanok ;)

  6. 6 Kusi Oct 29th, 2009 at 17:14

    no, nastastie sa tam nenachadzam :) WordPress je celom bezpecny

  7. 7 Jan Garaj Oct 29th, 2009 at 17:32

    @ooo
    Kolko casu trva tvojmu robotovi, kym skontroluje ~197 000 slov. domen? Za predpokladu, ze kontroluje seriovo a jedna kontrola trva sekundu, mi to vychadza na cca 54 hodin :-D. Nuz, ale to mam asi nespravne predpoklady, nakolko robot chruma domeny kazde rano.

  8. 8 oooo Oct 29th, 2009 at 17:45

    #7 Jan Garaj: bot si kazde rano updatuje slovenske domeny, teda ich zoznam. prechadzanie trva daleko dlhsie, robi sa systematicky a v multithreade, zalezi od moznosti aktualnych masin, ale vacsinou v stovkach req. za sekundu. i tak to trva vecnost, ale prejst vsetky domeny na zakladne veci trvalo asi dve hodiny.

  9. 9 rony Oct 29th, 2009 at 21:02

    ono asi aj zalozi, ci vsetci citatelia blogu maju v to rano spustene pocitace alebo nie :-)

  10. 10 Jan Garaj Oct 29th, 2009 at 21:47

    #8 oooo: Pekne. Davno, pradavno som aj ja mal jeden podobny test. Avsak po mesiaci neustaleho behu som sa naucil, ze seriovo, jednovlaknovo testovat nikto-m je blbost (skontrolovana bola cca 1/3 slov. domen).
    BTW: Automatizovane testy (skripty) by mohli priamo vykonavat webhostingove spolocnosti s naslednym varovanim svojich klientov. Ide predsa aj o ich povest.

  11. 11 Danoboss Oct 29th, 2009 at 22:23

    #10 Jan Garaj:Proste geniálny nápad. Ja ako zákazník budem platiť viac, pretože treba platiť (spravovať) službu, ktorú ja ani nevyužijem, ktorá je tu iba preto, že nejaký iný zákazník nevie bezpečnostné pravidlá pri tvorbe webu. Navyše mám pochybnosti, že keď hacknú nejaký web, že ľudia sa hneď na to pozerajú formou, že za to môže poskytovateľ webhostingu.

  12. 12 JanoF Oct 30th, 2009 at 04:22

    Mna by zaujimalo ako moze niekto to defaultne nastavenie z configuracneho suboru odstranit a takto spristupnit tieto subory :->

  13. 13 Jan Garaj Oct 30th, 2009 at 11:39

    #11 Danoboss: Kto vie, ten vie. Kto nevie, ten kocikuje :-P. Takze ten, kto nevie si zaplati. Iny, vyslovene Ty :-), samozrejme nemusi – zalezi na biznismodele webhostingu.

  14. 14 masterdead Oct 31st, 2009 at 11:16

    Casto krat to ani nieje ich chyba, stranky su vacsinou zahostovane na nekvalitnych serveroch, zo soft hladiska su derave ako cednik. Keby si bol zaciatocnik tak pochybujem ze ta napadne takato zakladna vec.

  15. 15 Accuphose Nov 4th, 2009 at 02:54

    Rasťo, napiš prosím niečo o datových schránkách, ktoré sú teraz u nás v ostrej prevádzke (z pohladu prieniku…. :-) Teda bezpečnosti)

  16. 16 Danoboss Nov 4th, 2009 at 12:44
  17. 17 oooo Nov 5th, 2009 at 00:50

    #15 Accuphose: ak sa mi podari dostat tam access a trosku sa v tom posparat, tak napisem

    #16 Danoboss: a co o tom? vsak bolo napisane uz uplne vsetko.

  18. 18 ivan Nov 6th, 2009 at 13:43

    Hi, tak zaujimave ale ja mam tieto subory free preto lebo ich vobec nevyuzivam kedze nepouzivam ani apache tak sa zneuzit moc nedaju. A este k tomu je to jeden a ten isty na vsetkych weboch ten zakladny v Drupalovi ktory sa skludom moze zmazat. Bezpecnostne riziko to v tomto pripade nie je lebo v nom nie je nic podstatne len volne siritelne riadky pre apacha.

  19. 19 recepty Sep 26th, 2011 at 10:40

    super clanok , dakujem za poucenie do buducna !

Zanechajte odkaz

  • na ďalšie komentáre odkazujte za použitia čísla komentáru v hranatej zátvorke, napríklad [3]
  • vaša IP adresa je logovaná a zneužívaná na výskumné účely
  • môžete mi tykať
  • komentáre sú moderované, kritiku prijímam, snažte sa prosím strániť invektív