³¯Â¥: 1996-06-05 | ±Û¾´ÀÌ: µµ¾Æ | 7511 ¹ø | ÇÁ¸°Æ® | ¸ÞÀϷκ¸³»±â

Á¦ 5°­ - CERT ±Ç°í


¹®Á¦ÀÇ Á¤ÀÇ

°ø°ÝÀÚ°¡ À¯È¿ÇÑ ÇÁ·Î¼¼½º UID ȯ°æ¿¡¼­ CGI¸¦ ÀÌ¿ë, WWW ¼­¹ö¿¡ ÀÓÀÇÀÇ ¸í·ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ´ëºÎºÐÀÇ ½ºÅ©¸³Æ® ÀúÀÚ°¡ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ÃæºÐÈ÷ °Ë»ç, "»ì±Õ"ÇÏÁö ¸øÇ߱⠶§¹®¿¡ ¹ß»ýÇÑ´Ù. »ì±ÕÀÇ Á¤ÀÇ

CGI ½ºÅ©¸³Æ®°¡ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¾îµð¿¡¼­ ¹Þ¾ÆµéÀÌÁö¸¦ °í·ÁÇÏÀÚ. ½ÇÁ¦·Î ÀÌ·¯ÇÑ µ¥ÀÌŸ´Â »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¸¹Àº ¼öÀÇ ¼Ò½º·ÎºÎÅÍ ³ª¿Â´Ù. ±×·¯³ª ÀÌ ¿¹ÀÇ°æ¿ì QUERY_STRINGÀ̶ó´Â ȯ°æº¯¼ö¿¡¼­ ¿Â´Ù°í ÇÏÀÚ. µ¥ÀÌŸ°¡ º¯¼ö·Î º¯È¯µÇ´Â °úÁ¤Àº Áß¿äÇÏÁö ¾Ê´Ù. ¿©±â¼­ Áß¿äÇÑ Á¡Àº QUERY_STRING³»¿¡ µ¥ÀÌŸ¸¦ °Ë»ç, Á¶Á¤ÇÑ ÈÄ, ´ÙÀ½ 󸮸¦ ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ÀÌ·¸°Ô Á¶Á¤ ÇÏ´Â °ÍÀ» µ¥ÀÌŸ¸¦ "»ì±Õ"ÇÑ´Ù°í ÇÑ´Ù. ÀϹÝÀûÀÎ ¹æ¹ý(±Ç°íÇÏÁö ¾ÊÀ½)

µ¥ÀÌŸ¸¦ »ì±ÕÇÒ Çʿ伺À» ÀνÄÇÑ ½ºÅ©¸³Æ® ÀúÀÚ´Â ½ºÅ©¸³Æ®¿¡¼­ Àß ¾Ë·ÁÁø ¸¹Àº ¼öÀÇ ¸ÞŸ¹®ÀÚ¸¦ Á¦°ÅÇÏ°í À̵éÀ» ¹ØÁÙ·Î ±³Ã¼ÇÏ·ÁÇÒ °ÍÀÌ´Ù. ÀÌ·¸°Ô ÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÌÁö¸¸ ¹Ù¶÷Á÷ÇÑ ¹æ¹ýÀº ¾Æ´Ï´Ù. ¿Ö³ÄÇϸé ÀÌ ¹æ¹ýÀº Ư¼ö¹®Àڵ鵵 Á¦°ÅÇϱ⠶§¹®ÀÌ´Ù.

¿¹¸¦µé¾î ÆÞ¿¡¼­:

#!/usr/local/bin/perl
$user_data = $ENV{'QUERY_STRING'};	# µ¥ÀÌŸ¸¦ °¡Á®¿Â´Ù.
print "$user_data\n";
$user_data =~ s/[\/ ;\[\]\<\>&\t]/_/g;	# À߸øµÈ ¹®ÀÚµéÀ» Á¦°ÅÇÑ´Ù. 
					# À߸øµÈ ¹æ¹ýÀÓ!!!
print "$user_data\n";
exit(0);

ÀÌ ¹æ¹ýÀº ÇÁ·Î±×·¡¸Ó°¡ »ç¿ëÀÚ°¡ ÀÔ·ÂÇؼ­´Â ¾ÈµÇ´Â ¹®ÀÚ¸¦ °áÁ¤Çؼ­ ÀÌ·¯ÇÑ ¹®ÀÚ¸¦ Á¦°ÅÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ Á¢±Ù¹ýÀÇ ¹®Á¦´Â ÇÁ·Î±×·¡¸Ó°¡ ¸ðµç °¡´ÉÇÑ ÀÔ·ÂÀ» ¿¹ÃøÇÒ ÇÊ¿ä°¡ ÀÖ´Ù´Â °ÍÀÌ´Ù. ¸¸¾à »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ÇÁ·Î±×·¡¸Ó°¡ ¿¹ÃøÇÏÁö ¸øÇß´Ù¸é ÀÌ ½ºÅ©¸³Æ®´Â ÇÁ·Î±×·¡¸Ó°¡ ÀǵµÇÏÁö ¾ÊÀº ¹æ¹ýÀ¸·Î »ç¿ëµÉ °¡´É¼ºÀÌÀÖ´Ù. ±Ç°íÇÏ´Â ¹æ¹ý

´õ ³ªÀº ¹æ¹ýÀº ¹Þ¾ÆµéÀÏ ¹®ÀÚÀÇ ¸ñ·ÏÀ» Á¤ÀÇÇÏ°í ¹Þ¾ÆµéÀÏ ¼ö ¾ø´Â ÀÓÀÇÀÇ ¹®ÀÚ¸¦ ¹ØÁÙ·Î ´ëÄ¡ÇÏ´Â °ÍÀÌ´Ù. Ÿ´çÇÑ ÀÔ·Â °ªÀÇ ¸ñ·ÏÀº ÀüÇüÀûÀ¸·Î ¿¹Ãø°¡´ÉÇϸç, 󸮰¡´ÉÇÑ Å©±â¸¦ °®´Â´Ù.

ÀÌ Á¢±Ù¹ýÀÇ ÀÕÁ¡Àº ÇÁ·Î±×·¡¸Ó°¡ ¸®ÅϵǴ ¹®ÀÚ¿­ÀÌ ¹«¾ùÀΰ¡ È®½ÇÈ÷ ¾Ë ¼öÀÖ´Ù´Â °ÍÀÌ´Ù. ¸®ÅϵǴ ¹®ÀÚ¿­Àº ÇÁ·Î±×·¡¸Ó ÀÚ½ÅÀÌ Á¦¾îÇÒ ¼ö ÀÖ´Â ¹®ÀÚ¸¸ Æ÷ÇÔÇÑ´Ù.

ÀÌ Á¢±Ù¹ýÀº ¾Õ¼­ ³íÀÇÇÑ Á¢±Ù¹ý°ú´Â ´ëÁ¶µÈ´Ù. ¾Õ¼­ÀÇ Á¢±Ù¹ý(±Ç°íÇÏÁö´Â ¾Ê´Â´Ù)¿¡¼­ ÇÁ·Î±×·¡¸Ó´Â ¹Þ¾ÆµéÀÏ ¼ö ¾ø´Â ¸ðµç ¹®ÀÚ¸¦ ¿¹ÃøÇؾßÇϹǷΠ¿À·ù¿¡´ëÇÑ ¾î¶°ÇÑ ¿©À¯µµ ³²°Ü¼­´Â ¾ÈµÈ´Ù. ±Ç°íÇÏ´Â Á¢±Ù¹ý¿¡¼­´Â ÇÁ·Î±×·¡¸Ó´Â ÁÖÀǸ¦ ±â¿ï¿© ¹Þ¾ÆµéÀÏ ¼ö ÀÖ´Â ¹®Àڵ鸸 È®½ÇÈ÷ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. µû¶ó¼­ ÇÁ·Î±×·¡¸Ó´Â °ø°ÝÀÚ°¡ º¸¾È°Ë»ç¸¦ ¿ìȸÇϱâÀ§ÇØ ½ÃµµÇÏ´Â ¹®ÀÚ°¡ ¹«¾ùÀÌÁö Å©°Ô °ü½ÉÀ» °¡Áú ÇÊ¿ä°¡ ¾ø´Ù.

ÀÌ·¯ÇÑ »ý°¢À» ±¸ÇöÇϱâÀ§ÇØ À§¿¡¼­ Á¦½ÃÇÑ ÆÞ ÇÁ·Î±×·¥Àº ´ÜÁö Çã¿ëµÇ´Â ¹®ÀÚ¸¸ Æ÷ÇÔÇϵµ·Ï »ì±ÕµÉ ¼ö ÀÖ´Ù. ¿¹:

#!/usr/local/bin/perl
$_ = $user_data = $ENV{'QUERY_STRING'};	# µ¥ÀÌŸ ¾ò±â
print "$user_data\n";
$OK_CHARS='-a-zA-Z0-9_.@';	# Àû´çÇÑ RFC¿Í ÀÏÄ¡Çϵµ·Ï º¯°æµÈ
				# Á¦ÇÑ ¸ñ·Ï
s/[^$OK_CHARS]/_/go;
$user_data = $_;
print "$user_data\n";
exit(0);
±Ç°í

ÀüÀý¿¡¼­ ¼³¸íÇÑ Á¢±Ù¹ýÀ¸·Î »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» »ì±ÕÇß´ÂÁö È®½ÇÈ÷ ÇϱâÀ§ÇØ, À¥ ¼­¹ö¸¦ ÅëÇØ »ç¿ë °¡´ÉÇÑ ¸ðµç ½ºÅ©¸³¸¦ Á¶»çÇÒ °ÍÀ» °­·ÂÇÏ°Ô ±Ç°íÇÑ´Ù. Ãß°¡ÀûÀÎ ÆÁ

¸ðµç »çÀÌÆ®´Â Àüü httpd ¼³Á¤À» °Ë»çÇغÁ¾ß ÇÑ´Ù. ƯÈ÷ ÇÊ¿äÇÏÁö ¾ÊÀº ¸ðµç CGI ÇÁ·Î±×·¥Àº Á¦°ÅÇÏ°í ³²¾ÆÀÖ´Â ¸ðµç CGI´Â °¡´ÉÇÑ º¸¾È»ó Ãë¾àÁ¡À» Á¶»çÇØ¾ß ÇÑ´Ù.

¶ÇÇÑ ¸ðµç httpdÀÇ ÀÚ½Ä ÇÁ·Î¼¼½ºµéÀº Ư±ÇÀÌ ¾ø´Â »ç¿ëÀÚ·Î ½ÇÇàµÇ´ÂÁö È®½ÇÈ÷ ÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù. ÀÌ °ÍÀº Á¾Á¾ ¼³Á¤°¡´ÉÇÑ ¿É¼ÇÀÌ´Ù. º¸´Ù ÀÚ¼¼ÇÑ °ÍÀº »ç¿ëÇÏ°íÀÖ´Â httpd ¹èÆ÷º»ÀÇ ¹®¼­¸¦ º»´Ù.

WWW º¸¾È¿¡°ü·ÃµÈ ¸¹Àº ÀÚ¿øÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ÆäÀÌÁö´Â À¯¿ëÇÑ ½ÃÀÛÁ¡À» Á¦°øÇÑ´Ù. À̵éÀº ÀϹÝÀûÀÎ WWW º¸¾È, º¸¾È httpd ¼³Á¤°ú º¸¾È CGI ÇÁ·Î±×·¡¹ÖÀ» ¼³¸íÇÏ´Â ¸µÅ©¸¦ Æ÷ÇÔÇÑ´Ù.

World Wide Web º¸¾È FAQ: http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq.html

´ÙÀ½ Ã¥Àº º¸¾È ÇÁ·Î±×·¡¹Ö ±â¹ýµî À¯¿ëÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù.

Practical Unix & Internet Security
Simson Garfinkel¿Í Gene Spafford
2nd edition
O'Reilly and Associates, 1996.

CERT/CC¿Í AUSCERT´Â À§ÀÇ URLÀÌ È®½ÇÈ÷ Á¸ÀçÇÑ´Ù°í ¾à¼ÓÇÒ ¼ö ¾ø´Ù. ÀÌ »çÀÌÆ®¿¡¼­ ¾î¶°ÇÑ ¹®Á¦¸¦ Á¢ÇÏ°ÔµÇ¸é »çÀÌÆ® °ü¸®ÀÚ¿¡°Ô ¿¬¶ôÇϱ⠹ٶõ´Ù.

¶ÇÇϳª °í·ÁÇÒ ¼ö ÀÖ´Â ¶Ç´Ù¸¥ ÀÚ¿øÀº CGI.pm ¸ðµâÀÌ´Ù.

ÀÌ ¸ðµâÀº Æû¹®¼­¿Í ´Ù¸¥ À¥À» ±âÃÊ·ÎÇÑ ÇÁ·Î±×·¥À» ¸¸µå´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ±×·¯³ª À§¿¡¼­ ³íÀÇÇÑ ¹®Á¦¿¡¼­ ÇÁ·Î±×·¡¸Ó¸¦ Çعæ½ÃÅ°´Â °ÍÀº ¾Æ´Ï´Ù.



´ÙÀ½±Û: ÆÞ¿ë CGI ¶óÀ̺귯¸® CGI.pm (8285)1996-06-30
ÀÌÀü±Û: Á¦ 4°­ - ÆÞ ¾ð¾î·Î ¾ÈÀüÇÑ ½ºÅ©¸³Æ® ÀÛ¼ºÇϱâ (10068)1996-06-04

¼¼»ó»ç´Â À̾߱â



RSS ±¸µ¶ (À͸í | ȸ¿ø | °­Á | Æ÷·³)
(C) 1996 ~ 2017 QAOS.com All rights reserved.