ITPub博客

首页 > 数据库 > Oracle > 反恐精英之动态SQL和SQL注入-SQL注入-SQL注入技术-语句注入

反恐精英之动态SQL和SQL注入-SQL注入-SQL注入技术-语句注入

原创 Oracle 作者:LuiseDalian 时间:2014-02-16 08:44:32 0 删除 编辑

语句注入是用户为SQL语句附加一条或多条SQL语句。匿名PL/SQL块容易受到这种技术的攻击。

CREATE OR REPLACE PROCEDURE p (user_name IN VARCHAR2, service_type IN  VARCHAR2)

IS

    block1 VARCHAR2(4000);

BEGIN

    -- 下面的块容易受到语句注入攻击,因为它是使用连接来构造的。

    -- 查看传递进来的参数

    DBMS_OUTPUT.PUT_LINE(' username: ' || user_name);

    DBMS_OUTPUT.PUT_LINE(' servicetype: ' || service_type);

    block1 :=

        'BEGIN

            DBMS_OUTPUT.PUT_LINE(''user_name: ' || user_name || ''');'

            || 'DBMS_OUTPUT.PUT_LINE(''service_type: ' || service_type || ''');

        END;';

    DBMS_OUTPUT.PUT_LINE('Block1: ' || block1); 

    EXECUTE IMMEDIATE block1;

END;

-- 11g12_07_10.tst

BEGIN

    --1次执行,没有SQL注入

    p('Andy', 'Waiter');

    --2次执行,语句注入

    --p('Anybody', 'Anything'');

--DELETE FROM secret_records WHERE service_type=INITCAP(''Merger');

--COMMIT;

END;

--查看数据已经被恶意删除了

hr@TESTDB11>select * from secret_records;

USER_NAME SERVICE_TYPE VALUE                          DATE_CREA

--------- ------------ ------------------------------ ---------

Andy      Waiter       Serve dinner at Cafe Pete      15-FEB-14

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1082018/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5642205