暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle DBMS_XMLPARSER.parseClob是否容易受到面向XML的攻击

ASKTOM 2019-07-30
695

问题描述

我被要求审查我的PLSQL应用程序的安全清单,该应用程序利用DBMS_XMLPARSER.parseClob解析XML请求,从Oracle获取数据并返回响应XML文档。

安全要求是这样的:
https://www.stigviewer.com/stig/application_security_and_development/2017-12-18/finding/V-70269

Oracle内置的DBMS_XMLPARSER包是否内置了安全性,以防止面向XML的攻击,还是我需要自己检查输入数据?

面向XML的攻击的一个示例是XML炸弹,如以下链接所示:
https://www.soapui.org/security-testing/security-scans/xml-bomb.html

我还没有尝试使用面向XML的攻击来调用DBMS_XMLPARSER.parseClob,因为我不想被解雇。我希望您可以在受控环境中进行测试。

专家解答

我们将返回一个错误,以确保您不能消耗所有资源,例如

SQL> create table t ( c clob );

Table created.

SQL> declare
  2    v clob :=
  3  '
  4  
  6   
  7   
  8   
  9   
 10   
 11   
 12   
 13   
 14   
 15   
 16  ]>
 17  &lol9;';
 18  begin
 19    insert into t values (v);
 20    commit;
 21  end;
 22  /

PL/SQL procedure successfully completed.

SQL>
SQL> DECLARE
  2   l_clob CLOB;
  3   l_parser dbms_xmlparser.Parser;
  4   l_doc dbms_xmldom.DOMDocument;
  5  BEGIN
  6      select c into l_clob from t;
  7      l_parser := dbms_xmlparser.newParser;
  8      dbms_xmlparser.parseClob(l_parser, l_clob);
  9      l_doc := dbms_xmlparser.getDocument(l_parser);
 10      dbms_xmlparser.freeParser(l_parser);
 11  END;
 12  /
DECLARE
*
ERROR at line 1:
ORA-31011: XML parsing failed
ORA-06512: at "XDB.DBMS_XMLPARSER", line 191
ORA-19213: error occurred in XML processing at lines 15, 1, 1, 1, 1, 1, 1, 1, 1
LPX-00286: Exceeded max depth for recursion
ORA-06512: at "XDB.DBMS_XMLPARSER", line 164
ORA-06512: at "XDB.DBMS_XMLPARSER", line 183
ORA-06512: at line 8


文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论