Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
*
HanIRCÀÇ #coffeenix ¹æ
[
Àåºñ ¹× ȸ¼± ÈÄ¿ø
]
> Forum <
IT ÀÏÁ¤
N
e
w
!
ÀÚµ¿È ÇÁ·ÎÁ§Æ®
HOME
>
µ¥ÀÌÅͺ£À̽º(database)
>
MySQL
µµ¿ò¸»
°Ë»ö :
»çÀÌÆ®
WHOIS
À¥¼¹ö Á¾·ù
MySQL¿¡¼ º¸¾ÈÀ§ÇØ load_file() °æ·Î Á¦ÇÑÇϱâ
ÀÛ¼ºÀÏ : 2010/05/27 21:02
±Û¾´ÀÌ : ÁÁÀºÁøÈ£ (
http://coffeenix.net/
)
Á¶È¸¼ö : 27224
[
ÀÌÀüȸé
/
¼öÁ¤
] ºñ¹Ð¹øÈ£ :
Á¦ ¸ñ : MySQL¿¡¼ º¸¾ÈÀ§ÇØ load_file() °æ·Î Á¦ÇÑÇϱâ
ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel,
http://coffeenix.net/
)
ÀÛ¼ºÀÏ : 2009.12.1(È)
Á¤¸®ÀÏ : 2010.5.14(±Ý)
1. SQL Injection¿¡¼ load_file() ÇÔ¼öÀÇ À§Çè
SQL Injection(SQL ÀÎÁ§¼Ç) °ø°Ý¿¡ ´ëóÇϱâ À§Çؼ´Â ´ÙÀ½°ú °°Àº Á¶Ä¡°¡ ÇÊ¿äÇÏ´Ù.
- SQL Injection°ø°Ý µî À¥Ãë¾à¼ºÀÌ ¾øµµ·Ï ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Â°Ô ¿ì¼±ÀÌ´Ù. (±×·¯³ª ¸¹Àº »çÀÌÆ®¿¡¼ À̺κÐÀº µÞÀüÀÌ´Ù.)
- ÁÖ±âÀûÀ¸·Î ¸ðÀÇ Å×½ºÆ®¸¦ ÇÑ´Ù.
- À¥¹æȺ®¿¡¼ UNION SELECT, UNION ALL SELECT, LOAD_FILE() µî ´Ù¾çÇÑ SQL Injection °ø°Ý À¯ÇüÀ» Â÷´ÜÇÑ´Ù.
- ±×¸®°í, load_file() ÇÔ¼öÀÇ °æ·Î Á¦Çѵµ °í·ÁÇÑ´Ù.
MySQLÀÇ SELECT LOAD_FILE() ÇÔ¼ö, LOAD DATA´Â ¼¹ö³»¿¡ ÀÖ´Â ÆÄÀÏÀ» ÀоîµéÀÌ´Â ¸í·ÉÀÌ´Ù. MySQL µ¥¸óÀÌ ÆÄÀÏÀ» ÀÐÀ» ±ÇÇÑÀÌ ÀÖ´Ù¸é, ¼¹ö³»ÀÇ °æ·Î¿Í »ó°ü¾øÀÌ ¾î¶°ÇÑ ÆÄÀÏÀÌ¶óµµ ÀÐÀ» ¼ö ÀÖ´Ù. À¥ÆäÀÌÁö°¡ SQL Injection °ø°ÝÀÇ Ãë¾àÁ¡ÀÌ ÀÖ´Ù°í ÇÒ ¶§ ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ½±°Ô À¥¿¡¼ ¼¹ö ³»ÀÇ ÆÄÀÏÀ» È®ÀÎÇÒ ¼ö ÀÖ´Â À§Ç輺ÀÌ Á¸ÀçÇÑ´Ù.
select ...»ý·«... from ...»ý·«...
UNION SELECT LOAD_FILE("/etc/passwd");
ÀÌ ÇÔ¼ö°¡ Æí¸®¼º, È°¿ë¼º Ãø¸é¿¡¼´Â ÁÁÀ» ¼ö ÀÖÁö¸¸, º¸¾È¿¡´Â Ãë¾àÇÑ Åë·Î¸¦ Á¦°øÇÏ´Â ¼ÀÀÌ´Ù.
ÃÖ±Ù(2009¿ù ¸») ·ç¸¶´Ï¾ÆÀÇ Unu ÇØÄ¿´Â ¼¼°è ÁÖ¿ä »çÀÌÆ®¿Í ±¹³» º¸¾È ¾÷ü »çÀÌÆ®¸¦ SQL Injection°ø°ÝÀ¸·Î ÇØÅ·À» Çß´Ù. ±×¸®°í, MySQLÀÇ load_file() ÇÔ¼ö·Î ¼¹öÀÇ /etc/ ÆÄÀϱîÁö ĸÃÄÇÏ¿© ºí·Î±×¿¡ °ø°³ÇÑ ÀûÀÌ ÀÖ´Ù. ÀÌ ±Û¿¡¼´Â ÀÛÀº ºÎºÐÀÎ load_file() ÇÔ¼öÀÇ °æ·Î Á¦ÇÑ¿¡ ´ëÇؼ ¾ê±âÇÒ °ÍÀÌ´Ù.
2. MySQL¼¹ö·Î Á÷Á¢Àû Á¢±ÙÀÌ ºÒ°¡´ÉÇصµ DB¼¹öÀÇ ÆÄÀÏÀ» º¼ ¼ö ÀÖ´Ù.
[ ±¸¼º ¿¹ ]
- A¼¹ö : À¥¼¹ö
- B¼¹ö : MySQL¼¹ö
À§Ã³·³ À¥¼¹ö¿Í MySQL¼¹ö°¡ ºÐ¸®µÇ¾î ÀÖÀ» ¶§, À¥¼¹ö¿¡¼ load_file("/etc/passwd") ÇÔ¼ö¸¦ È£ÃâÇß´Ù¸é ¾î¶² ¼¹öÀÇ ÆÄÀÏÀ» º¸¿©ÁÙ±î? MySQL µ¥¸óÀÌ local ÆÄÀÏ¿¡ Á¢±ÙÇÏ¿© º¸¿©ÁÖ´Â °ÍÀ̹ǷÎ, B¼¹öÀÇ ÆÄÀÏÀÌ µÈ´Ù. ±×·¯¹Ç·Î ¿ÜºÎ¿¡¼ MySQL¼¹ö·ÎÀÇ Á÷Á¢ÀûÀÎ Á¢±ÙÀÌ ºÒ°¡´ÉÇÏ´õ¶óµµ, load_file()ÇÔ¼ö¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù¸é DB¼¹ö ³»ºÎÀÇ ÆÄÀÏÀ» º¼ ¼ö ÀÖ´Ù.
3. MySQL¿¡¼ load_file() ÇÔ¼öÀÇ °æ·Î¸¦ Á¦ÇÑÇÏ´Â ¹æ¹ý
MySQL ¸Å´º¾óÀ» »ìÆ캸ÀÚ.
--secure-file-priv=path
ÀÌ ¿É¼ÇÀº LOAD_FILE() ÇÔ¼ö ¹× LOAD DATA ¿Í SELECT ... INTO OUTFILE ¸í·É¹®ÀÌ Æ¯Á¤ µð·ºÅ丮¿¡ ÀÖ´Â ÆÄÀÏ¿¡¼¸¸ µ¿ÀÛÀ» Çϵµ·Ï ÇÑÁ¤ÇÑ´Ù. ÀÌ ¿É¼ÇÀº MySQL 5.1.17¿¡¼ Ãß°¡µÇ¾ú´Ù.
À§Ã³·³ MySQL 5.1.17ºÎÅÍ´Â LOAD_FILE() ÇÔ¼ö, LOAD DATA, SELECT ... OUTFILEÀ» ƯÁ¤ µð·ºÅ丮³»ÀÇ ÆÄÀϸ¸ Çã¿ëÇϵµ·Ï ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. --secure-file-priv ¿É¼ÇÀº µ¿ÀûÀ¸·Î´Â ¼³Á¤°ªÀ» º¯°æÇÒ ¼ö°¡ ¾ø´Ù. my.conf ÀÇ '[mysqld]' ¼½¼Ç¿¡ ´ÙÀ½°ú °°Àº ¼³Á¤À» ÇÑ´Ù. (°æ·Î´Â ¿î¿µ ȯ°æ¿¡ ¸Â°Ô ÇÒ °Í)
[mysqld]
secure-file-priv=/var/tmp
À§Ã³·³ ¼³Á¤ÇÏ°í MySQL µ¥¸óÀ» ½ÇÇàÇϸé load_file()À» »ç¿ëÇÒ ¼ö ÀÖ´Â °æ·Î°¡ /var/tmpÀ¸·Î Á¦ÇÑÀÌ µÈ´Ù.
4. secure-file-priv ¼³Á¤ Àû¿ë Àü/ÈÄ ºñ±³
1) secure-file-priv= Àû¿ëÀü
¨ç SELECT °á°ú¸¦ /tmp/result.txt ÆÄÀÏ·Î ÀúÀå
mysql>
select * from log into outfile "/tmp/result.txt";
Query OK, 151 rows affected (0.00 sec)
¨è ±ÇÇÑÀÌ ÀÖ´Â ÆÄÀÏÀ» load_file()·Î ÀÐÀ¸¸é ȸ鿡 ÆÄÀÏ ³»¿ëÀÌ ±×´ë·Î Ãâ·ÂµÈ´Ù. (°á°ú ȸéÀº »ý·«)
¨é ±ÇÇÑÀÌ ¾ø´Â ÆÄÀÏÀ» load_file()·Î ÀÐÀ» ¸é NULL¸¸ Ç¥½ÃµÈ´Ù.
1) ÆÄÀÏ ±ÇÇÑ
#
ls -al syslog.conf protocols
-rw-r--r-- 1 root root 6108 Oct 12 2006 protocols
-rw-r----- 1 root root 734 Jul 2 2009 syslog.conf
2) load_file() ÇÔ¼ö »ç¿ë
mysql>
select load_file("/etc/syslog.conf");
+-------------------------------+
| load_file("/etc/syslog.conf") |
+-------------------------------+
| NULL |
+-------------------------------+
1 row in set (0.00 sec)
2) secure-file-priv= Àû¿ëÈÄ
¨ç ¼³Á¤°ª È®ÀÎ
mysql>
show variables like 'secure%';
+------------------+-----------+
| Variable_name | Value |
+------------------+-----------+
| secure_auth | OFF |
| secure_file_priv | /var/tmp/ |
+------------------+-----------+
2 rows in set (0.00 sec)
¨è °æ·Î¸¦ /var/tmp/ ·Î Á¦ÇÑÇßÀ¸¹Ç·Î, /etc/ ¾Æ·¡ ÆÄÀÏÀº NULL·Î Ç¥½ÃµÈ´Ù. (/etc/protocols ÆÄÀÏÀº ´©±¸³ª Àб⠱ÇÇÑÀÌ ÀÖÀ½)
mysql>
select load_file("/etc/protocols");
+-----------------------------+
| load_file("/etc/protocols") |
+-----------------------------+
| NULL |
+-----------------------------+
1 row in set (0.00 sec)
¨é SELECT ... INTO OUTFILE »ç¿ëÇÒ ¶§ ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.
1) MySQLµ¥¸óÀÌ ¾²±â ±ÇÇÑÀÌ ¾ø¾î¼ ¿¡·¯°¡ ¹ß»ý
mysql>
select * from myfile into outfile "/var/log/result.txt";
ERROR 1 (HY000): Can't create/write to file '/var/log/result.txt' (Errcode: 13)
2) MySQLµ¥¸óÀÌ ¾²±â ±ÇÇÑÀº ÀÖÁö¸¸, --secure-file-priv ¼³Á¤À¸·Î °æ·Î Á¦ÇÑµÇ¾î ³ª¿À´Â ¿¡·¯
mysql>
select * from myfile into outfile "/tmp/result.txt";
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
5. Âü°í ÀÚ·á
1) MySQL °ü·Ã
*
MySQL »ç¿ëÀڸŴº¾ó - ¸í·É¾î ¿É¼Ç
http://www.mysqlkorea.co.kr/sub.html?mcode=manual&scode=user&m_no=23109&cat1=&cat2=&cat3=〈=k&ver_name=USER
*
MYSQL 5.1 ¸Å´º¾ó - 5.1.2. Server Command Options ( --secure-file-priv=path )
http://dev.mysql.com/doc/refman/5.1/en/server-options.html
*
MYSQL LOAD_FILE SQL Injection
http://www.tullyrankin.com/mysql-load_file-sql-injection
LOAD_FILE ÇÔ¼ö´Â 16Áø¼ö ¹®ÀÚ¿·Î ÆÄÀÏÀ» ÀÐÀ» ¼öµµ ÀÖ´Ù.
(¿¹) /etc/passwd ´Â 0x2f6574632f706173737764.
LOAD_FILE(0x2f6574632f706173737764)
¡Ø ÀÌ URL¿¡ ¼Ò°³µÈ perl½ºÅ©¸³Æ® 4¹ø° ÁÙÀÇ 0x$encn"; Àº 0x$enc\n"; ¸¦ Àß ¸ø Ç¥±âÇÑ °ÍÀÓ
2) SQL Injection °ü·Ã
*
SQL Injection Cheat Sheet
http://michaeldaw.org/sql-injection-cheat-sheet
*
Backdoor webserver using MySQL SQL Injection
http://www.greensql.net/publications/backdoor-webserver-using-mysql-sql-injection
*
12.22~23 Ä¿ÇǴнº À̾߱â (Intel»çÀÌÆ® SQL Injectionµî)
(2009.12.24)
http://coffeenix.net/bbs/viewtopic.php?p=5988#5988
*
´ë·® SQL Injection °ø°Ý ÁÖÀÇ (2009.12.11)
http://coffeenix.net/bbs/viewtopic.php?p=5978#5978
*
nProtect À¥»çÀÌÆ®, SQL Injection°ø°Ý ´çÇØ
(2009.11.30)
http://truefeel.tistory.com/171
Ä¿ÇǴнº Ä«Æä ÃÖ±Ù ±Û
[03/21]
¸ð¹Ù
[03/21]
±¹°¡
[03/21]
¿µ»ó
[03/21]
¸ð¹Ù
[03/20]
Àνº
[03/20]
±¹°¡
[03/20]
´õºÒ
[03/20]
Àú³á
[03/18]
¿ÃÇØ
[10/20]
Cross Compiler ±ò
[07/14]
SSL ¬¡¬°
[04/26]
Re: µµ½ºÈ¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
[04/25]
µµ½ºÈ¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
[10/30]
Cshell¿¡¼ ³¼ö ¼³Á¤
[10/23]
°øÇ×öµµÁÖ½Äȸ»ç SE ±¸ÀÎ Ëì
N
e
w
! ÃÖ±Ù¿¡ µî·ÏÇÑ ÆäÀÌÁö
KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
¿ÀÇÂij½ºÄÉÀ̵å ijµå (OpenCASCADE CAD)
QCad for Windows --- GNU GPL (Free Software)
The Hello World Collection
IPMI¸¦ È°¿ëÇÑ ¸®´ª½º ¼¹ö°ü¸®
DNS ¼³Á¤ °Ë»ç
nagiosgraph ¼³Ä¡ ¹æ¹ý
Slony-I ¼³Ä¡ ¹æ¹ý (postgresql replication tool)
Qmail±â¹ÝÀÇ Anti spam ½Ã½ºÅÛ ±¸ÃàÇϱâ
clusterssh
[ ÇÔ²²ÇÏ´Â »çÀÌÆ® ]
¿î¿µÁø :
ÁÁÀºÁøÈ£(truefeel)
, ¾ß¼ö(yasu), ¹ü³ÃÀÌ, sCag
2003³â 8¿ù 4ÀÏ~