B / Y / U / S
HOME À¥ È£½ºÆà µµ¸ÞÀÎ ¸Å´º¾ó °í°´Áö¿ø ¼³Á¤Á¤º¸ °èÁ¤½Åû 2024-12-23 Monday 
À¥ È£½ºÆÃ
# °øÁö »çÇ×
# ÀÚÁÖ ¹¯´Â Áú¹®
# Áú¹®°ú ´äº¯
# °¡ÀÔ ¹®ÀÇ
Ä¿¹Â´ÏƼ
# ÀÚÀ¯°Ô½ÃÆÇ
# ¸®´ª½ºÆÁ
# ¾ÆÀÌÅ¥ Å×½ºÆ®
# ³»È¨ ¼Ò°³
# °Ö·¯¸®
# ÀÚ·á½Ç

  ¸®´ª½ºÆÁ  Go Unix Power Tools Online Book Go Bash Guide
Read No. 135 article 2002-03-30 09:12:32
NickName   Ç®ºñ´©
Subject   [¼Ò½º]PHP¿¡¼­ÀÇ ¿ÜºÎ ÇÁ·Î±×·¥ ½ÇÇà°ú °³³ä
http://211.110.17.28/bbs/view.html?
id=4962&code=tnt&start=30&mode=search&s_que=exec&field=body&operator=and


À¯¿ëÇÑ ÆÁÀÌ µÇ±æ ¹Ù¶ø´Ï´Ù..... 

ÁÖ·Î »ç¿ëµÇ´Â  ÇÔ¼ö 
system, exec 


passthru¿ÜºÎ ÇÁ·Î±×·¥À» ½ÇÇàÇϱâÀ§ÇØ  3°³ÀÇ ÇÔ¼ö°¡ ÁغñµÇ¾î ÀÖ½À´Ï´Ù. 
¼¼ ÇÔ¼öÀÇ ¼­·Î ´Ù¸¥ Á¡Àº ¸®ÅϵǴ °ªÀÔ´Ï´Ù. system ÇÔ¼ö´Â ÇÁ·Î±×·¥ 
½ÇÇà°á°ú¸¦ ¹®ÀÚ¿­·Î µÇµ¹·Á ÁÝ´Ï´Ù. exec´Â ÇÁ·Î±×·¥À» ½ÇÇà°á°ú¸¦ 
¸¶Áö¸· ÇÑÁÙ·Î ¸¶Âù°¡Áö·Î ¹®ÀÚ¿­·Î µÇµ¹·ÁÁÝ´Ï´Ù. passthru´Â ÇÁ·Î±×·¥ 
½ÇÇà °á°ú¸¦ ÀÖ´Â ±×´ë·ÎÀÇ ¹ÙÀ̳ʸ® µ¥ÀÌÅÍ·Î µÇµ¹·ÁÁÝ´Ï´Ù. 

´Ù½Ã ¸»Çؼ­ ½ÇÇà°á°ú°¡ ÇÊ¿äÇÑ °æ¿ì´Â exec, ÅؽºÆ®¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ 
½ÇÇà °á°ú°¡ ¸ðµÎ ÇÊ¿äÇÑ °æ¿ì¿¡´Â system, ¹ÙÀ̳ʸ®¸¦ Ãâ·ÂÇÒ ½ÇÇâ°á°ú°¡ 
ÇÊ¿äÇÑ °æ¿ì¿¡´Â passthru¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. 

¶Ç backtick¿¬»êÀÚ¶ó´Â ±â°­ÀÌ ÁغñµÇ¾î Àִµ¥ °ÅÀÇ system°ú µ¿µîÇÑ 
±â°­ÀÔ´Ï´Ù(system¿¡¼­´Â ÇÁ·Î±×·¥ Á¾·á ½ºÅ×ÀÌÅͽº¸¦ ¾òÀ» ¼ö°¡ ÀÖÁö¸¸ 
backtick ¿¬»êÀÚ¿¡¼­´Â±×·² ¼ö°¡ ¾ø½À´Ï´Ù.). ¹éÄõÅÍ(`)·Î µÑ·¯½Ñ ³»¿ëÀ» 
½©¿¡ ³Ñ°Ü ½ÇÇà½ÃÅ°°í Ãâ·Â °á°ú¸¦ µÇµ¹·ÁÁÝ´Ï´Ù. 

backtick ¿¬»êÀÚ »ç¿ë¿¹ 

1: $str = `/bin/ls -l /tmp`; 

À̶ó´Â Çü½ÄÀ¸·Î ls °á°ú°ªÀÌ $str¿¡ µé¾î°©´Ï´Ù. 

####ÁÖÀÇÁ¡(½ÃÄí¸°³ð°ü·Ã)#### 

systemµîÀÇ ¿ÜºÎ ÇÁ·Î±×·¥°ü¼ö¸¦ »ç¿ëÇÏ´Â ½ºÅ©¸³À» ÀÛ¼ºÇÒ¶§ ÁÖÀÇ 
ÇÏÁö ¾ÊÀ¸¸é ¾ÈµÇ´Â Á¡ÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î Æû¿¡¼­ ¹Þ¾Æ µéÀÎ °ªÀÇ 
ÀϺΰ¡ systemµî¿¡ ¿ÜºÎ ÇÁ·Î±×·¥ÀÇ ÀμöÀÇ ÀϺηΠ°Ç³×ÁÙ °æ¿ì °£´ÜÈ÷ 
ÀÓÀÇÀÇ ¸í·É (rm À̳ª cat /etc/passwd µîÀÇ À§ÇèÇÑ Äڸǵå)¸¦ ¹ßÇàÇÏ¿© 
½ÇÇà ½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù. 

¿¹¸¦ µé¾î $fFilename ¶ó´Â º¯¼öÀÇ Æû¿¡¼­ °Ç³×ÁØ °ªÀ̶ó°í ÇÏ°í 

1: $str = system("/bin/ls /tmp/$fFilename"); 

¶ó´Â ½ºÅ©¸³ÀÌ ½ÇÇà µÇ¾úÀ» °æ¿ì $fFilename ¿¡ [; /bin/rm -rf /] ¶ó°í 
±â¼úÇÏ¸é ½©¿¡ ´ëÇÏ¿© [/bin/ls /tmp/; /bin/rm -rf /]¶ó´Â ¸í·ÉÀ» °Ç³× 
ÁÝ´Ï´Ù. [;]´Â ÄÚ¸Çµå ±¸ºÐÀÚ·Î ÀνÄÀÌ µÇ¾î ls µµ rm µµ ½ÇÇàÀÌ µÇ´Â 
°ÍÀÔ´Ï´Ù. 

ÀÌ·± ¹®Á¦Á¡À» ¹æÁöÇϱâÀ§ÇØ escapeshellcmd ¶ó´Â ÇÔ¼ö°¡ Áغñ µÇ¾î 
ÀÖ½À´Ï´Ù. [;]¸¦ Æ÷ÇÔÇÑ ½©¿¡ ´ëÇÏ¿© Ưº°ÇÑ Àǹ̸¦ °¡Áø ¹®ÀÚ¸¦ 
¿¡½ºÄÉÀÌÇÁÇؼ­ Ãâ·Â ÇØÁÝ´Ï´Ù. 

ÀÌÇÔ¼ö¸¦ »ç¿ëÇÏ¿© 

1: $fFilename = escapeshellcmd($fFilename); 
2: $str = system("/bin/ls /tmp/$fFilename"); 

¿Í°°ÀÌ ÇØÁÖ¸é ¸ÕÀú ÇÁ·Î±×·¥Àº (´Ù¼Ò) ¾ÈÀüÇØÁý´Ï´Ù. 


½Ã°£ÀÌ °É¸®´Â ÇÁ·Î±×·¥À» ¹é±×¶ó¿îµå¿¡¼­ ½ÇÇà 


½Ã°£ÀÌ °É¸®´Â ó¸®(´ë·® ¸ÞÀÏ ¼Û½ÅÀ̳ª µ¥ÀÌÅÍ º£À̽º Àüü »èÁ¦µî)¸¦ 
ºê¶ó¿ìÀú¿¡¼­ ½ÇÇâÇÏ°í ½ÍÀ» ¶§³ª Çʿ伺ÀÌ ÀÖÀ» °Ì´Ï´Ù. ±×·² °æ¿ì¿¡ 
ÀϹÝÀûÀÎ ¹æ¹ýÀ¸·Î ó¸®Çϸé ÀÌ Ã³¸®°¡ Á¾·áµÉ ¶§±îÁö À¯Àú°¡ ºê¶ó¿ìÀú¸¦ 
»ç¿ëÇÒ ¼ö ¾ø°Ô µË´Ï´Ù(IE ÀÇ Áö±¸¸¶Å©°¡ °è¼Ó µ¹¾Æ°¡´Â »óÅÂ). 
ÀÌ ¶§¿¡´Â À¯Àú°¡ ºê¶ó¿ìÀú¿¡ ´ëÇÏ¿© ¾î¶² Á¶ÀÛÀ» ÇÏ¿´À» °æ¿ìÀÇ ÀÛµ¿¿¡ 
´ëÇؼ­ º¸ÀåÀÌ µÇÁö ¾Ê½À´Ï´Ù. ¶Ç, ÀÏÁ¤ÇÑ ½Ã°£ÀÌ °æ°úÇϸé Á¢¼Ó(·±) 
ŸÀӾƿôÀÌ µÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. 

ÀÌ·¯ÇÑ »óŸ¦ ÇÇÇϱâ À§ÇØ ºê¶ó¿ìÀú¸¦ ¹Ù·Î Ç®¾îÁÖ°í ½Ã°£ÀÌ °É¸®´Â 
󸮴 ¹é±×¶ó¿îµå¿¡¼­ ó¸®(µÞ±¸¸Û¿¡¼­ È£¹Ú¾¾±î±â »óÅÂ)ÇØÁÖ´Â ¹æ¹ýÀÌ 
ÇÊ¿äÇÏ°Ô µË´Ï´Ù. ÁÖ·Î ´ë·® ¸ÞÀÏÀ» ¼Û½ÅÇÏ´Â °æ¿ì¿¡ ¸¹ÀÌ »ç¿ëµÇ¸®¶ó°í 
»ý°¢µË´Ï´Ù. 

Perl ¿¡¼­´Â fork ÇÔ¼ö¸¦ »ç¿ëÇؼ­ °°Àº ÇÁ·Î±×·¥¾È¿¡ ¹é±×¶ó¿îµå¿¡¼­ 
ó¸®ÇÒ ºÎºÐÀ» ±â¼úÇÒ ¼ö ÀÖÁö¸¸ PHP ÀÇ °æ¿ì¿¡´Â fork ÇÔ¼ö°¡ ¾øÀ¸¹Ç·Î 
¹é±×¶ó¿îµåó¸®ÇÏ°Ô ÇÒ¶§ ¸ÕÀú º°µµÀÇ ÇÁ·Î±×·¥À» ¸¸µé¾î ³õ°í, system 
ÇÔ¼ö ȤÀº exec ÇÔ¼ö¸¦ ºÒ·¯³»´Â Çü½ÄÀÌ µË´Ï´Ù. ´ç¿¬ÇÑ À̾߱â ÀÌÁö¸¸ 
¹é±×¶ó¿îµå¿¡¼­ ó¸®µÈ °á°ú¸¦ ¾ò´Â °ÍÀº ºÒ°¡´ÉÇÕ´Ï´Ù(¸ÞÀΠ󸮴 
¹é±×¶ó¿îµå ó¸® Àü¿¡ ¸ÕÀú Á¾·á µÇ¾ú±â ¶§¹®¿¡). ±×·¡¼­ °á°úÀûÀ¸·Î 
exec ¸¦ »ç¿ëÇصµ system À» »ç¿ëÇصµ ¶È °°Àº °á°ú°¡ µË´Ï´Ù. 

system ÇÔ¼ö³ª exec ÇÔ¼öÀÇ ¸®ÆÛ·±½º¸¦ º¸¸é ´ÙÀ½°ú °°Àº ³»¿ëÀÌ ÀÖ½À´Ï´Ù. 

(ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÇÁ·Î±×·¥½ÇÇàÀ» Çؼ­ ¹é±×¶ó¿îµå¿¡¼­ ½ÇÇàÇÑ »óÅ·Π
µÎ°í ½ÍÀ» ¶§¿¡´Â ÇÁ·Î±×·¥ÀÇ Ãâ·ÂÀ» ÆÄÀÏ È¤Àº ´Ù¸¥ Ãâ·Â ½ºÆ®¸²¿¡ 
¸®´ÙÀÌ·ºÆ®ÇØÁÙ ÇÊ¿ä°¡ ÀÖ´Â Á¡¿¡µµ ÃßÀÇÇØ¾ß µË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é 
PHP´Â ±× ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀÌ Á¾·áµÉ ¶§±îÁö Ç®¾îÁÖÁö ¾Ê°í ºÙµé°í ÀÖÀ» 
°ÍÀÔ´Ï´Ù(Hang).) 

ÀÌ ¹®ÀåÀÇ Àǹ̴ ´ÙÀ½°ú °°ÀÌ ±â¼úÇ϶ó´Â ÀǹÌÀÔ´Ï´Ù. 

system("/home/your/bgprog $arg1 $arg2 > /dev/null &"); 

¿©±â¿¡¼­ bgprog Àº ¹é±×¶ó¿îµå¿¡¼­ ½ÇÇàÇÏ°íÀÚ ÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. 
¾î¶² ¾ð¾î·Î ±â¼úµÇ¾îµµ »ó°üÀÌ ¾ø½À´Ï´Ù. ȤÀº À§ÀÇ ¿¹¿Í °°ÀÌ ¸ÞÀÎ 
󸮿¡¼­ Àμö¸¦ °Ç³× ÁÖ°í ½ÍÀº °æ¿ì¿¡´Â bgprog ÂÊ¿¡¼­ Á¤È®ÇÏ°Ô ¹Þ¾Æ 
ó¸®ÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. 

[> /dev/null] °¡ [¸®´ÙÀÌ·ºÆ®] ¿¡ ÇØ´çÇÏ´Â ±â¼úÀÔ´Ï´Ù. /dev/null 
¶ó°í ÇÏ´Â °ÍÀº [¾²·¹±âÅë] À¸·Î »ý°¢ÇÏ¸é µË´Ï´Ù. ¸ðµç Ãâ·Â°á°ú¸¦ 
¹ö¸³´Ï´Ù. ¸¶Áö¸·ÀÇ & ´Â ¹é±×¶ó¿îµå¿¡¼­ ½ÇÇàÀ» Ç϶ó´Â ÀǹÌÀÔ´Ï´Ù. 
ÀÌ ÁÖº¯ÀÇ ÀÚ¼¼ÇÑ ³»¿ëÀº UNIX ½© °ü·Ã Âü°í¼­¸¦ º¸¸é ÀÖ½À´Ï´Ù. 
[PHP´Â ±× ÇÁ·Î±×·¥ÀÌ Á¾·á µÉ¶§±îÁö HangµË´Ï´Ù] ¶ó´Â Àǹ̴ IE ÀÇ 
Áö±¸ ¸¶Å©°¡ °Ô¼Ó µ¹°í ÀÖ´Â »óŸ¦ ÀǹÌÇÕ´Ï´Ù. 

±×·³ ½ÇÇèÀ» Çغ¸°Ú½À´Ï´Ù. ºê¶ó¿ìÀúÀÇ »óÅ¿¡ ÁÖÀÇÇؼ­ º¾½Ã´Ù. 
bgprog ¿¡ ÇØ´çÇÏ´Â ÇÁ·Î±×·¥À» ´ÙÀ½°ú °°Àº ³»¿ëÀ¸·Î ¸¸µé¾î º¸°Ú½À´Ï´Ù. 
°£´ÜÈ÷ ¼ö¸éÁ¦ ¸è¿©¼­ 10 Ãʵ¿¾È ÀáÀç¿ì´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. 
¿©±â¿¡¼­´Â ½©½ºÅ©¸³À¸·Î ¸¸µé°Ú½À´Ï´Ù. 

sleep.sh 


sleep 10 


´ÙÀ½Àº À§ÀÇ ÇÁ·Î±×·¥À» ºÒ·¯³¾ PHP ½ºÅ©¸³À» ¸¸µé°Ú½À´Ï´Ù. 


<? 
  system("/bin/sh /home/your/sleep.sh > /dev/null &"); 
  echo "OK."; 
?> 


À§ÀÇ ÆäÀÌÁö¸¦ Ãâ·ÂÇÏ¸é ¼ø°£ÀûÀ¸·Î OK °¡ Ãâ·ÂÀÌ µË´Ï´Ù. 
10ÃÊ À̳»¿¡ ps Äڸǵ带 È®ÀÎÇϸé OK°¡ Ãâ·ÂÀÌ µÈÈÄ¿¡µµ 
sleep.sh °¡ ½ÇÇàÀÌ µÇ°í ÀÖ´Â »óÅ°¡ µË´Ï´Ù. 

±×·³ ¾Æ·¡¿Í °°ÀÌ ÀϹÝÀûÀÎ ¹æ¹ýÀ¸·Î º¯°æÇÏ¸é ¾î¶»°Ô µÉ±î¿ä? 


<? 
  system("/bin/sh /home/your/sleep.sh &"); 
  echo "OK."; 
?> 
   




10ÃÊ°¡ Áö³­ ÈÄ¿¡ OK°¡ Ãâ·ÂÀÌ µÉ °ÍÀÔ´Ï´Ù. 
±× µ¿¾È¿¡ ºê¶ó¿ìÀú´Â ¸ñºüÁö°Ô ó¸® °á°ú¸¦ ±â´Ù¸®°í ÀÖ´Â 
»óÅ·ΠÀÖ´Ù´Â °ÍÀ» È®ÀÎ ÇÒ ¼ö ÀÖÀ» °Ì´Ï´Ù.
Regist Addr [ 192.168.0.2 ] ¸ñ·Ïº¸±â À­±Û ¾Æ·§±Û
Á¤±ÔÇ¥Çö½Ä [ »ó¼¼ °Ë»ö ]
Page Loading [ 0.03 Sec ] SQL Time [ 0 Sec ]

Copyleft 1999-2024 by JSBoard Open Project
Theme Designed by IDOO And follow GPL2

°³ÀÎÁ¤º¸ Ãë±Þ¹æħ ÀÌ¿ë ¾à°ü »çÀÌÆ® ¸Ê ¾îµå¹Î °ü¸®