大话数据库SQL注入的N种姿势

作者: 云计算机网 分类: 云安全 发布时间: 2015-02-16 22:10

一. 背景

数据库凭借其强大的数据存储能力和卓越的数据处理性能,在各行各业的信息化建设中发挥着关键的作用。随着数据库在各行业的大规模应用,数据泄露事件也频繁发生,这就使数据库安全问题也日益凸显,逐渐变成用户越来越担心的问题。虽然数据库厂商已经做了许多有效的措施来尽量解决数据库存在的安全问题,但至今为止数据库的安全漏洞仍然不断增加。下图为近5年数据库漏洞数量图。

在数据库漏洞中最为常见的漏洞类型是SQL注入漏洞。数据库安全专家结合多年的实践结果总结出了数据库注入的分类分享给大家,以便大家对SQL注入型漏洞有一个更加全面的了解。

SQL注入漏洞不仅出现在WEB端,也出现在数据库的自定义或标准库的存储过程、函数、触发器中。数据库自身的SQL注入漏洞比WEB端的注入漏洞对数据库的威胁性更大。本文对SQL注入的分类是从数据库的角度来划分,不考虑WEB端的角度,这两者在分类上有着不同的角度。

首先在解释不同的数据库SQL注入漏洞之前先简要说明一下数据库攻击者能够进行SQL注入的主要原理:SQL注入漏洞是用户在输入中混入了程序命令。最直接的例子就是攻击者在正常的 Web 页面中把自己的 SQL 代码通过用户输入传输到相应的应用程序中,从而执行一些非授权的 SQL 代码,以达到修改、窃取或者破坏数据库信息的目的。SQL 注入攻击甚至可以帮组攻击者绕过用户认证机制,使其可以完全的操控远程服务器上的数据库。如果应用程序使用一些用户输入的数据来构造动态的SQL语句去访问数据库,将可能遭受到 SQL 注入攻击。同样的如果在代码中使用了存储过程,并且这些存储过程缺乏对用户输入的合理限制也很容易发生 SQL 注入。

二. SQL注入分类

1) 注入途径分类

SQL注入漏洞按照注入的物理途径可以分成两大类:通过WEB端对数据库进行注入攻击和直接访问数据库进行注入攻击。

直接访问数据库进行注入攻击是以数据库用户的身份直接连接数据库进行SQL注入攻击。在这种攻击方式中,攻击者可以通过SQL注入来执行SQL语句从而提高用户权限或者越权执行。而那些在PL/SQL程序中在给用户授权的时候没有使用authid current_user进行定义的存储过程、函数、触发器、程序块将更容易受到SQL注入攻击。

  • MySQL5.7.17在cmake的时候报错如下:

    CMake Error at cmake/boost.cmake:81 (MESSAGE):
    You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=
    This CMake script will look for boost in . If it is not there,
    it will download and unpack it (in that directory) for you.

    If you are inside a firewall, you may need to use an http proxy:
    export http_proxy=http://example.com:80
    Call Stack (most recent call first):
    cmake/boost.cmake:238 (COULD_NOT_FIND_BOOST)
    CMakeLists.txt:455 (INCLUDE)
    -- Configuring incomplete, errors occurred!
    See also "/root/mysqlsoftware/mysql-5.7.17/CMakeFiles/CMakeOutput.log".
    See also "/root/mysqlsoftware/mysql-5.7.17/CMakeFiles/CMakeError.log".

    解决办法是:

    1.在/usr/local下创建一个名为boost的文件夹
    mkdir -p /usr/local/boost

    2.进入这个新创建的文件夹然后下载boost
    wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

    3.解压
    tar -xvzf boost_1_59_0.tar.gz

    4.继续cmake,添加上红色部分

    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DENABLED_LOCAL_INFILE=ON \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    -DCOMPILATION_COMMENT='Mysqlma' \
    -DWITH_READLINE=ON \

  • 相关推荐:

  • MySQL5.7.19执行cmake时报错
  • MySQL中索引优缺点、分类
  • Oracle中print
  • Linux下MySQLshell脚本执行错
  • 关系型数据库中常用的表
  • MySQL表结构变更,不可不
  • 关于SQL优化这些你了解吗
  • MySQL存储引擎MyISAM介绍
  • MySQL索引的设计和使用
  • 用简单程序协助MySQL实现
  • 网站内容禁止违规转载,转载授权联系中国云计算网