é£èªåãããã¹ã¯ãªãã
çè«
ãŸããããã€ãã®è³ªåã«çããŸãã
1.äœãé ããŸããïŒ
Webã¢ããªã±ãŒã·ã§ã³ã®ã¯ã©ã€ã¢ã³ãéšåãã€ãŸãäžè¬ãŠãŒã¶ãŒãæçµçã«èªåã®ã³ã³ãã¥ãŒã¿ãŒã«ããŠã³ããŒãããéšåã®ã¿ãé衚瀺ã«ããŸãã
次ã®ãã¯ãããžãŒã¯ããã®ã¿ã€ãã«èµ·å ããŸãã
- ããŒãžã®HTMLã³ãŒãã
- JavaScriptã³ãŒã/ JSããŒãžãã¡ã€ã«ã
- ããŒãžã®CSSã³ãŒã/ CSSãã¡ã€ã«ã
- ç»åããã³ãã®ä»ã®æ å ±ïŒãããŒã¿ããããã³ã«ããµããŒããããã©ãŠã¶ãŒã®ã¿ïŒã
- ã¢ã³ããŠã€ã«ã¹ïŒiframeãŸãã¯ãã®ä»ã®æªæã®ããã¹ã¯ãªããã®å ŽåïŒ;
- ä»ã®äººïŒããšãã°ããã°ãããJavaScriptã¹ã¯ãªãããæžãããã誰ãã«ãããã¯ãåãããããªãå ŽåïŒã
ããããŸããã
ãªãã§ïŒ ãŠãŒã¶ãŒãããŠã³ããŒããããã¹ãŠã®æ å ±ã¯åŒãç¶ããã©ãŠã¶ãŒã«ãã£ãŠå®è¡ãããããã§ãã ã€ãŸããæ å ±ãéåžžã«è€éãªæ¹æ³ã§æå·å/é衚瀺ã«ããŠããã³ãŒããèªã¿åããªããšããããšã«ã¯ãªããŸããã ã©ããªå Žåã§ãèªãããšãå¯èœã«ãªããŸããããªãã¯ãã®èªæžãè€éã«ããããšãã§ããã ãã§ãã ãããã®å°é£ãªæ¹æ³ã«ã€ããŠã話ããŸãã
4.æå·å/é£èªåããã»ã¹ã¯ååãšããŠã©ã®ããã«è¡ãããŸããïŒ
2ã€ã®ç°ãªã段éããããŸããé£èªå/æå·åãããã³ãŒããäœæããéåžžã®ãã©ãŠã¶ãŒå®è¡ã®ããã«è§£èªããŸãã PHPã¹ã¯ãªããã䜿çšããŠé£èªåãããã³ãŒããçæããŸãããããã¯äœã§ã䜿çšã§ããŸãã ãã ããã³ãŒãå®è¡ã®åŸ©å·åã¯JavaScriptã§èšè¿°ããå¿ èŠããããŸãããã®å Žåãã¹ã¯ãªããã¯æ¬è³ªçã«åŸ©å·åããŠå®è¡ãããŸãã
JJEncodeäœå
åºæ¬çãªHTML / CSSæå·å
HTMLãŸãã¯CSSã³ãŒããæå·åããå¿ èŠãããå Žåã¯ã©ããªããŸããïŒ ãã¹ãŠãåçŽã§ããJavaScriptã§æå·åãã埩å·ååŸã«HTMLã³ãŒããšããŠè²Œãä»ããŸãã
æ¿å ¥äŸïŒæå·å/æå·å/é£èªåãªãïŒïŒ
<html> <script> var html = '<center><h3> -</h3></center>'; // "html" , document.getElementsByTagName('html')[0].innerHTML = html; // <html> </html> </script> </html>
CSSã¹ã¿ã€ã«ã§ãåãããšãè¡ããŸãã
<html><script> var css = 'body{margin:0px;}.subcl{padding:5px;}'; // "css" , document.getElementsByTagName('html')[0].innerHTML = '<style>'+css+'</style>'; // <html> </html> </script> </html>
次ã«ãHTMLãšCSSãç¡èŠããŠãæ¬è³ªã®ã¿ã説æããŸããæåã«é衚瀺ã«ãã次ã«JavaScriptãæå·åããŸãã
誰ããç§ãã¡ã®ã³ãŒããèŠãŠè§£èªããåã«ã圌ã¯ãããèŠã€ããããšããŸãã 以äžã«ã奜å¥å¿ã®åŒ·ããŠãŒã¶ãŒã®ç®ããã³ãŒããé ãå¹æçãªæ¹æ³ãããã€ã玹ä»ããŸãã
ããã¥ã¡ã³ãã®æ¬æã«ã] [akepããšããåèªãé衚瀺ã«ããŸã
<script>ã¿ã°ã®å±æ§ã眮ãæãã
ãã¹ãŠãéåžžã«åçŽã§ããããŠãŒã¶ãŒã®äžæ³šæã«çŠç¹ãåãããŠãããããããã¯è¯ãä¿è·ãŸãã¯å¹³åçãªä¿è·ãšã¯èŠãªãããŸããã
åçèªäœã¯éåžžã«åçŽã§ãã ããŒãžïŒ "index.html"ïŒãšãã³ãŒããé衚瀺ã«ããJavaScriptãã¡ã€ã«ïŒ "script.js"ïŒããããŸãã ãindex.htmlãããŒãžã§ã次ã®ããšã瀺ããŸããã
<script type="text/javascript" src="./script.js"></script>
次ã«ããtextããã©ã«ããäœæããŸãããã®ãã©ã«ãã«ãjavascriptããšããååã§ã¹ã¯ãªããïŒãscript.jsãïŒãå ¥ããå±æ§ã亀æããŸãã 次ã®ããã«ãªããŸãã
<script src="text/javascript" type="./script.js"></script>
æè¯ã®å¹æãåŸãã«ã¯ãããã«ãŠãŒã¶ãŒã®æ³šæããã¹ã«åããŠãã ããã ããšãã°ã次ã®ããã«ïŒ
<script src="text/javascript" type="http://host.com/////////script.js"></script>
å人çãªçµéšã§ãã¹ããããïŒçŽ æŽãããäœåïŒ ãã®ããã«ããŠãJavaScriptã§ããŒããšã³ãžã³ã䜿çšããå¿ èŠããã£ããããç§ã¯ã¯ãªãã¯çšã®ã¢ãã£ãªãšã€ãããã°ã©ã ãäœæããŸããã ã¢ãã£ãªãšã€ã管çè ã¯åœŒãèŠãŸããã§ãã:)ã
Javascriptãã³ãã©ãŒ
ãã®ã¡ãœããã¯ãJSã³ãŒããé ãããã®æ®éçãªããŒã«ã§ããããŸããããããã«ã€ããŠã¯åŒãç¶ã説æããŸãã äž»ãªã¢ã€ãã¢ã¯ãonLoadãonClickãªã©ã®ã€ãã³ããã³ãã©ãŒå ã®ã³ãŒããé衚瀺ã«ããããšã§ãã ã€ãŸãããããã次ã®èšèšã§ïŒ
<body onLoad="alert(1);"></body> <textarea onClick="alert(1);"></textarea>
ããšãã°ãbodyã¿ã°ãšframesetã¿ã°ã«ã¯ãããŒãž/ãã¬ãŒã ã®èªã¿èŸŒã¿åŸã«æå®ã®ã³ãŒããå®è¡ããonLoadãã³ãã©ãŒããããŸãã
ãã³ãã©ãŒã¯ãã¹ãŠã®ãªããžã§ã¯ãã§åãã§ã¯ãªãããšã«æ³šæããŠãã ããã
Cookieããªãã¡ã©ãŒãã¢ãã¬ã¹
JavaScriptã¯ãCookieïŒdocument.cookieïŒããªãã¡ã©ãŒïŒdocument.referrerïŒãããŒãžã¢ãã¬ã¹ïŒlocation.hrefïŒãªã©ã®éæšæºã®å Žæã§é衚瀺ã«ããããšãã§ããŸãã ãã®å Žåãã³ãŒãã¯ãã¬ãŒã³ããã¹ããšããŠä¿åãããevalïŒïŒé¢æ°ã䜿çšããŠå®è¡ãããŸãããã®é¢æ°ã¯ãããã¹ããåŒæ°ãšããŠåãåããJavaScriptã³ãŒããšããŠå®è¡ããŸãã
äŸãšããŠã次ã®ã¿ã€ãã®Cookieããã§ã«ãããšããä»®å®ãèããŠã¿ãŸãããã
cookievalue=||alert(1);||
ãã®ã¢ã©ãŒãã次ã®ããã«å®è¡ããŸãã
<script>eval(unescape(document.cookie).split("||")[1]);</script>
ããã§ã¯ããã¹ãã®ãã¹ãŠã®Cookieã®ããã¹ããååŸããã||ããç«ã£ãŠããå Žæã§éšåã«åå²ããŸãã 次ã«ã2çªç®ã®èŠçŽ ïŒ[1]ïŒãååŸããevalïŒïŒã§å®è¡ããŸãã
å®è¡ãããã³ãŒããããŒãžèªäœã«è¡šç€ºããããã³ãŒãã匷å¶çã«åé€ã§ããããããã®ã¡ãœããã¯ããã»ã©æªããããŸããïŒ å®è£ äŸïŒ
<?php // JavaScript- + ( 123) setcookie('cook', '||alert(1);document.cookie="cook=123";||'); ?> <script> // . eval(unescape(document.cookie).split('||')[1]); </script>
åæ§ã«ãlocation.hrefãdocument.referrerãªã©ãJavaScriptãä»ããŠå©çšå¯èœãªä»ã®è¡ã䜿çšã§ããŸãã
Ajaxã³ãŒãã®é衚瀺
ãã®å Žåãã³ãŒãã¯å¥ã®ãã¡ã€ã«ã«ããããã®ãã¡ã€ã«ãèªã¿åãããã®å 容ãevalïŒïŒé¢æ°ã§å®è¡ããããšã«ãããã³ãŒããèµ·åãããŸãã
é衚瀺ã®ã³ãŒããå«ãããŒãžãšããã®ã³ãŒããå®è¡ããé¢æ°ãå«ãããŒãžãäœæããå¿ èŠããããŸãã
- é衚瀺ã«ããã³ãŒãã®ããããŒãžïŒãlããšããååïŒïŒ
alert(1);
- ã³ãŒãåŒã³åºãã®ããããŒãžïŒ
<script>function x(){try{return new XMLHttpRequest();}catch(e){try{return new ActiveXObject('Msxml2.XMLHTTP');}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP');}catch(e){return null;}}}};function y(){var z=x();if(z){z.open('get','./l');z.onreadystatechange=function(){if(z.readyState==4){ eval(z.responseText);}};z.send(null);}};y();</script>
ãã«ãã€ããOperaãæ»æ
ãã®æ¹æ³ã¯ã·ã³ãã«ã§éåžžã«å¹æçã§ãããæ®å¿µãªããOperaãã©ãŠã¶å°çšã«èšèšãããŠããŸãã ãã®ã¡ãœããã®æ¬è³ªã¯ãé衚瀺ã«ããã³ãŒãã®åã«ãããããã«ãã€ãã眮ãããšã§ãïŒãã«ãã€ããŸãã¯ãã«ãã€ãã¯ãASCIIã³ãŒãã0ãã®æåã§ãïŒã ãªãã§ïŒ ãã®å ŽåãOperaã¯ããã®èšå·ã®åŸã«ããã«ãã€ã³ãã¥ãŒã¢ãŒã«ã³ãŒãã衚瀺ããŸããã äŸïŒ
<html> - </html> <?php echo(chr(0)); ?> <script>alert(1); /* */</script>
ãã®äŸã§ã¯ãæåã«éåžžã®ã³ãŒãã衚瀺ãããŸãããé衚瀺ã«ããå¿ èŠã¯ãããŸããã 次ã«ãPHPã䜿çšããŠnullãã€ããæ¿å ¥ãããã®åŸã«é衚瀺ã®ã³ãŒããæ¿å ¥ããŸãã
HTMLã³ãŒããšã³ã¡ã³ãã®é衚瀺
ã³ãŒããHTMLã§ç°¡åã«é衚瀺ã«ããŠãããåŠçããŠå®è¡ã§ããŸãã ããšãã°ã次ã®ããã«ïŒ
<body><img src="./pict.jpg" a="al" b="er" c="t(1);"></body> <script>a = document.body.innerHTML; eval(a.split('a="')[1].split('"')[0]+a.split('b="')[1].split('"')[0]+a.split(' c="')[1].split('"')[0]);</script>
ãã®å Žåãimgã¿ã°ã®å±æ§ã«ã³ãŒããé ãããã®åŸãããŒãžå šäœã®ã³ãŒããåŠçããŠãæ£åšããæçãåéããŸããã åæ§ã«ãHTML / JavaScriptã³ã¡ã³ãå ã®ããã¹ããé衚瀺ã«ã§ããŸãã
HTML: <!-- alert(1); --> JavaScript: // alert(1); /* alert(1); */
ãããšã¯å¥ã«ãjQueryãmooToolsãªã©ã®äžè¬çãªãã¬ãŒã ã¯ãŒã¯å ã®ã³ãŒããéåžžã«å¹æçã«é衚瀺ã«ã§ããããšã«æ³šæããŠãã ããã ãããã®ãã¡ã€ã«ã¯çããããªãã調æ»ã«ã¯å€ãã®æéãããããŸãïŒãã ããå ã®ãã¡ã€ã«ãšå€æŽããããã¡ã€ã«ãèªåçã«æ¯èŒããå¯èœæ§ã¯åžžã«ãããŸãïŒã
ããã§ãæçµçã«ãã»ãã¥ãªãã£ã®å°é家ãèŠãŠãããã®ãããã³ãŠã€ã«ã¹å¯Ÿçãç 究ããŠããããšã«ã€ããŠè©±ãããšãã§ãããšæããŸãã JSã³ãŒããæå·åããã³é£èªåããæãäžè¬çãªæ¹æ³ã«ã€ããŠã¯ã以äžããèªã¿ãã ããã
æšæºã®JavaScripté¢æ°/ã¡ãœããã®çœ®æ
ãã®ã¡ãœããã¯ãæšæºã®JavaScripté¢æ°ãŸãã¯ã¡ãœããã®ä»£ããã«å€æ°ã眮æããããšã«çŠç¹ãåœãŠãŠããŸãã
: <script>document.getElementsByTagName("html")[0].innerHTML = document.getElementsByTagName("body")[0].length;</script> : <script>a=document;c='getElementsByTagName';a[c]("html").innerHTML = a[c]("body")[0].innerHTML.length;</script>
ãã®å Žåããdocumentããªããžã§ã¯ããå€æ°ãaãã«ãgetElementsByTagNameã¡ãœãããå€æ°ãcãã«çœ®ãæããŸããã ã¡ãœããïŒãã€ã³ããããšãã°.lengthãŸãã¯.getElementsByTagNameã§å§ãŸãïŒã¯ãé åå ã®ããŒãå®çŸ©ããããšã«ãã£ãŠçœ®ãæããããšãã§ããŸãïŒãªããžã§ã¯ããé åãšèŠãªãå ŽåïŒã ãããã¥ã¡ã³ãããªããžã§ã¯ããããããã®äžã«getElementsByTagNameèŠçŽ ãããå Žåãããã¯æ¬¡ã®2ã€ã®æ¹æ³ã§åŒã³åºãããšãã§ããããšãæå³ããŸãã
-
document.getElementsByTagName
-
document['getElementsByTagName']
眮æã¯ãåãæšæºãªããžã§ã¯ã/é¢æ°/å€æ°ãé »ç¹ã«äœ¿çšããå Žåã«åœ¹ç«ã¡ãŸãã ããã«ãããã³ãŒããå€§å¹ ã«å€æŽãããå§çž®ãããŸãã
措氎ã®ã³ã¡ã³ããšã³ãŒã
ãã®ã¡ãœããã¯ãé£èªåãããã³ãŒããã€ãŸãã¹ã¯ãªããã³ãŒãã®ã»ãã³ãã£ãã¯ããŒããæããªãã³ãŒãã«ãã©ãããæ¿å ¥ããããã«èšèšãããŠããŸãã ã³ãŒããšã³ã¡ã³ãã®äž¡æ¹ãããµããããããšãã§ããŸãïŒ
: <script>/* pOIEPGpmkG13Pg */ a /* PGpmkG13Pggweg */ = /* mkG13Pg */ 'hahaha' /* pOIE13Pg */ ; /* wegEGoh */ alert /* oiwboierhper */ ( /* igwepreorh */ a /* wbnponrhR */ ) /* inboierh */ ; /* roinero */</script> : <script> weoibog = 'gwrobgoerh'; a = 'hahaha'; bfionb = 'wgeogioweg'; alert(a);
ãã®å Žåãã³ã¡ã³ãã¹ã¬ããã¯å¯åºŠãé«ãããŸãããå®éã«ã¯ã³ãŒãã¯éåžžã«åçŽã§ãããã
a = "hahaha"; alert(a);
a = "hahaha"; alert(a);
ãã
ãã©ããã³ãŒãã¯ãã©ããã³ã¡ã³ãã«ãå¹²æžããå¯èœæ§ããããŸãã å¿ èŠã«å¿ããŠãJavaScriptã³ãŒãã«ãã©ãããè¿œå ããPHPé¢æ°ãäœæã§ããŸãã å人çã«ãç§ã¯è±èªã®ããã°ããããã€ãã®èšäºãåããåèªã解æããé¢æ°ã¯ãããã®åèªãã©ã³ãã ã«ã³ã¡ã³ãã«è¿œå ããŸããã
ãšããã§ããåœã®ééãã®åœ¢ã§è€æ°è¡ã®ã³ã¡ã³ãã䜿çšããããšããå§ãããŸãã
/*/ alert(1); /*/ alert(2); /*/ alert(3); /*/
ã©ã®æ°åãã¢ã©ãŒãã衚瀺ããŸããïŒ :)
é£èªåãããã¢ã©ãŒãäœæ¥
ããã¹ãã16é²ã³ãŒãã«çœ®ãæãã
ãã®ç¹ã«ã€ããŠã¯ãããã¹ããå€æããä»ã®æ¹æ³ãåç §ãããã£ãã®ã§ããã埩å·åã«ãã«ããŒé¢æ°ãå¿ èŠãšããªãå¯äžã®æå·åæ¹æ³ã§ããããããã®æ¹æ³ã®ã¿ãæ®ããŸããã
<script> alert(document["\x63\x6F\x6F\x6B\x69\x65"]); </script>
ãã®å Žåãæåã«ãããã¥ã¡ã³ããªããžã§ã¯ãã®å éšCookieå€æ°ãé åã®èŠçŽ ãšããŠäœ¿çšããŸããã 次ã«ã圌女ã®ååã16é²æ°ã«å€æããŸããã ããããä»ããŠãã€ãŸãdocument.cookieãšããŠcookieå€æ°ã䜿çšããå Žåã16é²åœ¢åŒã§åŒã³åºããå€æããããšã¯ã§ããŸãããããã¯æååïŒé åå ã®ããŒã¯æååïŒã«ã®ã¿é©çšãããŸãããããã¥ã¡ã³ãã«é©çšãããããã§ãã Cookieãªãã
16é²åœ¢åŒã«å€æããPHPé¢æ°ïŒ
<?php function cescape($s) { foreach (str_split($s,1) as $sym) { $d = dechex(ord($sym)); $c[] = (strlen($d) == 1) ? '0'.$d : $d; } return (''.'\\'.implode(''.'\\',$c)); } ?>
ååšããªãæ©èœã䜿çšããããªãã¯
äžèšã®èª¬æãããã§ã«ããã£ãŠããããã«ãJavaScriptã§ãªããžã§ã¯ãã®èŠçŽ ãšããŠã¡ãœãããåŒã³åºãããšãã§ããŸãïŒdocument.getElementByIdããã³document ['getElementById']ã äž¡æ¹ã®ãªãã·ã§ã³ã¯å®è³ªçã«åãã§ããéãã¯ã¬ã³ãŒãã®ã¿ã§ã-2çªç®ã®ãªãã·ã§ã³ã§ã¯æååã䜿çšããŸãã
ããå€ããããã®è¡ãååŸããéåžžã«èå³æ·±ãæ¹æ³ãæãã€ããŸããã ããšãã°ãäžèšã®ãgetElementByIdããæå·åããå¿ èŠããããŸãã ãã®äŸã䜿çšããŠããã®æ¹æ³ã®ç°¡åãªèª¬æãé¿ããŸãããã
<script> a = b(c(d())); </script>
é¢æ°bãcãdã¯ä»¥åã«å®£èšãããŠããªãããããã®ã¹ã¯ãªããã¯æ©èœããŸããã ããã§ã¯ããã®ã³ãŒããæ©èœãããŠã¿ãŸãããããã®ãããtry {} catchïŒïŒ{}ã³ã³ã¹ãã©ã¯ãã®ãµã³ãããã¯ã¹ã䜿çšããŸãã
<script> try{a = b(c(d()))}catch(e){alert(e);} </script>
éå§åŸããšã©ãŒã衚瀺ãããŸããã€ãŸããã³ãŒãã¯æ©èœããŠããŸããããæ®ãã®æ£ããéšåã®å®è¡ã¯åæ¢ããŠããŸããã
ãããŠä»ãç§ãã¡ã¯ãã®ãããªã¹ããŒã ãæååãgetElementByIdãã®æå·åã«ã©ã®ããã«é¢é£ä»ããããããèªåããŸããïŒ ãªã©ïŒ
<script>try{(getE(leme(ntB(yId()))))}catch(e){x = (e+'').split('(').slice(1,5).join('');}</script>
ãã®ã³ãŒããå®è¡ããåŸãå€æ°ãxãã«å«ãŸããæååãgetElementByIdããååŸããŸãã
ãã®æ¹æ³ã®å¡©ã¯äœã§ããïŒ äºå®ã¯ãæ©èœãèŠã€ãããšãã®ã¢ã³ããŠã€ã«ã¹ã®çºèŠçåæã¯ãããããååšããªãããšãèªãããšã§ãã ãããã£ãŠãããŸããŸãªæ¹æ³ã§æååãæå·åããã¬ãã«ã§ã¯ãªããJavaScriptèªäœãããããã®æååãåä¿¡ããã¬ãã«ã§ã³ãŒããé£èªåããŸãã
ãæŒç®åã䜿çšããæ°å€
æŒç®åãããïŒãã«ãïŒã¯ãããåŠå®ã§ããããalertïŒã13ïŒ;ãã®ããã«äœ¿çšãããŸãã ãã®ã³ãŒãã¯ã-14ããåºåããŸãã ãã®æŒç®åã¯ãã-ïŒnumber + 1ïŒãã®ååã«åºã¥ããŠåäœããŸãã
å€æ°ãaãã«äœããã®çªå·ãå²ãåœãŠããã®çªå·ãã©ãã«ãæžããªãããšãæ³åããŠãã ããããa =ã[]ã;
ãã®ã³ãŒãã¯ãå€æ°ãaãã«çªå·ã-1ããå²ãåœãŠãŸãã ãªãã§ïŒ é åã¯æ°å€ã0ãã®ãã¥ãŒãã©ã«èŠçŽ ã§ãããããã0ã¯ã-ïŒ0 + 1ïŒããã€ãŸã-1ãšåçã§ãã
ä»ã®å€æã®äŸïŒ
a = ~[]; // -1 a = -~[]; // 1 a = []^[]; // 0 a = ~~[]; // 0 a = ~true; // -2 a = ~false; // -1 a = -~[]*(""+-~[]+-~-~-~-~-~[]+-~-~true); // 153
æååããŒã¿ã®ãªãæåãšæåå
æå/èšå·ãŸãã¯ããã¹ããã€ã¥ããªãæ瀺çã«ååŸããå¿ èŠãããå ŽåããããŸãã ããã¯ã1ã€ã®JavaScriptæ©èœã§å®è¡ã§ããŸãã ãã®èšèªã«ã¯ãããã¹ãã«å€æããŠåŠçã§ããããŸããŸãªã·ã¹ãã å ã¡ãã»ãŒãžããããŸãã
ããšãã°ããã³ãŒãããšããããã¹ããååŸããå¿ èŠããããšããŸãã ãã®è¡ã¯ãcharCodeAtïŒïŒãfromCharCodeïŒïŒãªã©ã®ã¡ãœããã®ååã«å«ãŸããŠããŸãã 次ã®ããã«ããã¹ããååŸã§ããŸãã
a = (alert+'').split("ive ")[1].substr(0,4);
ãã®äŸã§ã¯ãå€æ°ãaãã«ã¯ããã¹ããcodeããå«ãŸããŸãã ããã«è©³çŽ°ã«åæããŸãã 次ã®ã³ãŒããå®è¡ããŠã¿ãŠãã ããïŒãalertïŒalert + ''ïŒ;ãã ãé¢æ°ã¢ã©ãŒãïŒïŒ{[ãã€ãã£ãã³ãŒã]}ãã®ãããªãã®ã衚瀺ãããŸãã ãããã£ãŠãalertïŒïŒé¢æ°ã®ã¿ã2å䜿çšãããšããŸã£ããç°ãªãæåãåŸãããŸããã
ããã§ã¯ããã¹ãŠã®ä»çµã¿ãç解ããŠã¿ãŸãããã JavaScriptã®ãã¹ãŠã®ãªããžã§ã¯ããé¢æ°ããã®ä»ãã¹ãŠã«ç¹å®ã®ã説æãããããšæ³åããŠãã ããã ããã«ã¢ã¯ã»ã¹ããã«ã¯ããã®ãªããžã§ã¯ããŸãã¯é¢æ°ã®ã¿ã€ããæ瀺çã«æååã«å€æŽããããšãã°ç©ºã®æååïŒ+ ""ïŒãè¿œå ããå¿ èŠããããŸãã
æååæå·å
JavaScriptã§æååãæå·å/埩å·åããããã®äŸ¿å©ãªæ©èœãããã€ããããŸãã ãããã®ããã€ããåæããŸãããïŒ
escape(); // URL unescape(); // URL- encodeURI(); // URI decodeURI(); // URI-
æåãASCIIã³ãŒãã«ããŸãã¯ãã®éã«å€æããããšã§æ©èœããStringãªããžã§ã¯ãã®2ã€ã®ã¡ãœããããããŸãã
a = String.fromCharCode(97); b = "b".charCodeAt();
æååã¯ã.matchããã³.replaceã¡ãœãããšçµã¿åãããŠæ£èŠè¡šçŸã§å€æããããšãã§ããŸãã ä»ã®ã¡ãœããã¯ãããããæååã§æ€çŽ¢ããããšã«èµ·å ããŸãã
ãªããžã§ã¯ã/å€æ°ã®å€æ
ãªããžã§ã¯ããšå€æ°ã®ååãæååã«å€æããããšãã§ããŸãïŒããšãã°ããã®æååãåŸã§æå·åããããïŒã å€æã¯ãã¡ãœããåã®å€æãšåãåçã«åŸã£ãŠãã€ãŸããããMethodãããã[Method]ããžã®ç§»è¡ã«ãã£ãŠè¡ãããŸãã æ£ããå€æãè¡ãã«ã¯ããªããžã§ã¯ãã®éå±€ã§ãããã¥ã¡ã³ãããšããåèªãå«ãŸããããã«äžäœã®èŠçŽ ãèŠã€ããå¿ èŠããããŸãã 圌ã«ãããååãä»ããŸãã JavaScriptæšæºã«ãããšãããã¯ãªããžã§ã¯ãã§ã¯ãªãããªããžã§ã¯ããžã®åç §ãè¿ãæŒç®åã§ãã ãã®çµæãgetElementByIdã次ã®ããã«å®å šã«äœ¿çšã§ããããã«ãªããŸããïŒ "this [" document "] [" getElementByIdâ]ã
ã³ãŒããã€ã³ãã£ã³ã°
ç¹å®ã®æ¡ä»¶ãæºããããåŸã«ã®ã¿å®è¡ãããããã«ã³ãŒããèšè¿°ããããšãå¿ èŠã«ãªãå ŽåããããŸãã ããšãã°ãJavaScriptã³ãŒããäœæããŠè²©å£²ãããã®ã§ãããä»ã®ãµã€ãã§å®è¡ã§ããªãããã«ãã¡ã€ã³ãžã®ãã€ã³ãã£ã³ã°ã§è²©å£²ããããšèããŠããŸãã
ç¹°ãè¿ããŸããã絶察çãªä¿è·ãèãåºãããšã¯ã§ããŸãããååãšããŠãã³ããŒ/ã¢ã³ãã¶ãŒããã»ã¹ãå°é£ã«ããæ¹æ³ã¯ããã€ããããŸãã
ãã®ãããªãã€ã³ãã£ã³ã°+äŸåããããŒã¿ã®ããã€ãã®ã¿ã€ãã以äžã«ç€ºããŸãã
- ãã¡ã€ã³ãžã®ãã€ã³ã// location.href.splitïŒ '/'ïŒ[2];
- ãã©ã¡ãŒã¿ãŒãžã®ãã€ã³ãïŒïŒïŒã®åŸã«ããŒãžã«æž¡ãããŸãïŒ// location.href.splitïŒ 'ïŒ'ïŒ[1]ãŸãã¯location.href.splitïŒ 'ïŒ'ïŒãsliceïŒ1ïŒ;
- æ¥ä»ãžã®ãã€ã³ã// a = new DateïŒïŒ;
- JavaScriptã³ãŒããžã®ãã€ã³ã//;
- ããŒãžå šäœã®ã³ãŒããžã®ãã€ã³ã// a = document.getElementsByTagNameïŒ 'html'ïŒ[0] .innerHTML;
- ãã©ãŠã¶ãã€ã³ãã£ã³ã°// a = navigator.userAgent;
- Cookieãžã®ãã€ã³ã// document.cookie;
- ããªããèããããšãã§ããä»ã®ãã€ã³ãã£ã³ã°ã
çãããæ©èœã®åé¿
ãŸããé¢æ°evalïŒïŒãdocument.writeïŒïŒãªã©ã®æ瀺çãªäœ¿çšãé¿ããããšããå§ãããŸãã å®éã®ã³ãŒããæ€çŽ¢ãããšããå€ãã®å Žåã人ã ã¯ãããã®é¢æ°ã®ä»£ããã«alertïŒïŒçœ®æã¡ãœããã䜿çšããŸãããã®åŸãæå·åãéå§ããæ¹æ³ã§ããã«ã³ãŒããèªã¿åãããšãã§ãããããé£èªåã®ãã€ã³ãããã¹ãŠæ¶ããŸãã evalïŒïŒã䜿çšããã«ã³ãŒããå®è¡ããæ¹æ³ã¯ïŒ
ããã®å é ã«thisæŒç®åãããããšãæãåºããŠãã ããã ããã䜿çšããŠãevalïŒïŒé¢æ°ã次ã®ã³ãŒãã«å€æã§ããŸãã
a = this["\x65\x76\x61\x6C"];
ãã®ãããªå€æåŸããevalïŒïŒãã®ä»£ããã«ãaïŒïŒããå®å šã«äœ¿çšã§ããŸãã
èªããªãè¡ã«å€æŽãã
é£èªåãããã³ãŒãã§ã¯ãèå¥åã瀺ãããã«æ¬¡ã®æåãšãã®çµã¿åããã䜿çšããå¿ èŠããããŸãã
-
"o", "O", "0"
-
"i", "I", "l", "1"
-
"_"
ïŒããã³ããªã¢ã³ã"__"
ã"___"
...ïŒ -
"$"
ïŒããã³"$$"
ã"$$$"
å€åœ¢...ïŒ
ã³ãŒãæå·å
ããã¹ããæå·åããæ¹æ³ã¯ç¡å¶éã«ãããŸããããããã¯ãã¹ãŠããã¹ã/æ°å€é¢æ°ã®äœ¿çšã«åºã¥ããŠããŸãã å€ãã®å Žåãã³ã³ã¹ãã©ã¯ãã¯æ©èœããŸãïŒevalïŒïŒ+ encryption_functionïŒïŒ+ encrypted_stringã ãããã®æ¹æ³ã®ãããããäœåãªæ°Žãªãã§èŠããããšããŸãã
æååãalertïŒ1ïŒ;ããæå·åããå¿ èŠããããšããŸãã ãããã2æåãåãåºããŠæ°åã«å€æãïŒASCIIã³ãŒãïŒãããããèªã¿ããã®é£ã®æåã®æåãããããªïŒç¿»èš³ãªãã®ïŒåœ¢åŒã«ããããšã«æãã€ããŸããã ã³ãŒãããã®ãããª2æåã®éšåã«åå²ãããšãå ã®ã³ãŒãã®çŽ2ãã2.5åã®ã³ãŒããåŸãããããšãèæ ®ããŠãã ããããã®ãããªãããã¯ãäœããã®æ¹æ³ã§ïŒé åèŠçŽ ãšããŠããŸãã¯ã»ãã¬ãŒã¿ãŒãä»ããŠïŒåé¢ããæ¹ãè¯ãããšãå¿ããŠã¯ãªããŸããã åºåãæåã«ã¯ãæå·åãããæååãURLæååã®ããã«èŠããããããïŒ ãèšå·ã䜿çšããŸãã ç°¡åãªPHPã¹ã¯ãªãããäœæããŸãããã
<?php $a = "alert(1);"; $a = str_split($a, 2); $e = ''; foreach ($a as $v) { $e .= '%' . $v[0] . (ord($v[0])+ord($v[1])); } echo($e); ?>
ååŸãããã®ã¯æ¬¡ã®ãšããã§ããã
%a205%e215%t156%190%;59
ãã
ãããŠããã®ã³ãŒãã®ãã³ãŒããŒãJavaScriptã§èšè¿°ããŸãã
function d(s) { s = s.split('%').slice(1); c = ''; for (i = 0; i < s.length; i++) { c += s[0] + String.fromCharCode(s.substr(1)-s[0].charCodeAt()); } return c; }
ãã®å Žåã®ã³ãŒãåŒã³åºãã¯ããevalïŒdïŒ 'ïŒ a205ïŒ e215ïŒ t156ïŒ 190ïŒ ; 59'ïŒïŒ;ãã®ããã«ãªããŸãã
ãã®ã¹ã¯ãªããå šäœãå°ãé£èªåããã ãã§ãã èšèŒãããŠãããã¹ãŠã®æ¹æ³ã䜿çšããããã§ã¯ãããŸãããããã®ãã¡ã®ããã€ãã«ã®ã¿è§ŠããŸãã
z = '73706C697421736C696365216C656E6774682166726F6D43686172436F6465217375627374722163686172436F64654174'; _=''; for(__=0;__<z.length/2;__++){_+=unescape('%'+z[__*2]+z[__*2+1]);} _=_[_[0]+_[1]+_[2]+_[3]+_[4]]('!');function ___(__){__ = __[_[0]]('\x25')[_[1]](-~[]); _I='';for (_l=0;_l<__[_[2]];_l++){_I+=__[_l][0]+String[_[3]](__[_l][_[4]](1)-__[_l][0][_[5]]());}return _I;} this['\x65\x76\x61\x6C'](___('%a205%e215%t156%190%;59'));
ãã®äžèŠèªããªãã³ãŒããåŠçããããã»ã¹ãããã«è©³ããèããŠã¿ãŸãããã
-
z = '....'
ããã§ã¯ãå€æ°ã«æååsplitïŒsliceïŒlengthïŒfromCharCodeïŒsubstrïŒcharCodeAtã16é²æ°åœ¢åŒïŒ\ x73 \ x70 \ x6C \ x69 \ x74 ...ïŒã§å€æããããã¹ããå²ãåœãŠãããŸãã x "; -
_='';for(...}
ããã§ã¯ãsplitïŒsliceïŒlengthïŒfromCharCodeïŒsubstrïŒcharCodeAtãå€æ° "_"ã«éå€æããŸãã -
_=_...('!');
èšå·ãïŒããããå Žæã§è¡ãåå²ããŸãã -
function ___(__){...}
äžèšã®é£èªåããã圢åŒã®é¢æ°dïŒïŒã -
this['\x65\x76\x61\x6C'](....);
æååã®ãã³ãŒããšã³ãŒãã®å®è¡ã
æåŸã«
èŠçŽãããšã ããããã¹ãŠã®æ¹æ³ãçµã¿åãããããšã§ãåçŽãªãŠãŒã¶ãŒã§ãæ®éã®ãŠãŒã¶ãŒã§ãã³ãŒããèªã¿åã£ãããèªåã«ã³ããŒãããããããšã¯ã§ããªããªããŸãã ããããã³ã³ãã¥ãŒã¿ãŒã»ãã¥ãªãã£ã®å°é家ã¯ãããã®ããªãã¯ã®å€§éšåãããç¥ã£ãŠããã®ã§ããã®æ å ±ãå ¬éããã®ã§ããããã®æ¹æ³ãããäžè¬çã«ãªããããç¥ãããããã«ãªããšæããŸãã æäŸãããæ å ±ãé©åãªç®çã«äœ¿çšã§ããããšãé¡ã£ãŠããŸãã
ã¹ã¯ãªãããèªã¿ããããã
ããã«ãŒãã¬ãžã³ã 9æïŒ09ïŒ152
| qbz | ïŒlopuxin.iv @ yandex.ruã httpïŒ //essenzo.netïŒ ã
ããã«ãŒã賌èªãã