美文网首页
ArcGIS Server 标准化SQL查询、SQL注入问题的测

ArcGIS Server 标准化SQL查询、SQL注入问题的测

作者: 寒__ | 来源:发表于2019-07-30 14:18 被阅读0次

    问题描述

    在设置了standardizedQueries:true的属性之后,存放在 Oracle SDE 中的数据发布成的REST服务,仍然可以通过在 Where 语句中传入参数 USER like 'SD%' 执行查询,从而可以在有限的次数内暴力试探出 SDE 连接的用户名。其中 USER 不是数据表中包含的字段,是 Oracle 提供的 SQL 函数。SD% 是 SDE 连接用户名的部分字母。

    服务查询 设置标准化查询standardizedQueries属性

    测试用例

    GUID ArcGIS Server Oracle SDE standardizedQueries Result
    1 10.7 12c 10.6 TRUE 正常屏蔽
    2 10.7 12c 10.6 FALSE 成功执行
    3 10.7 11g 10.6 TRUE 正常屏蔽
    4 10.7 11g 10.6 FALSE 成功执行
    5 10.6.1 11g 10.5 TRUE 正常屏蔽
    6 10.6.1 11g 10.5 FALSE 成功执行
    7 10.6 12c 10.6 TRUE 成功执行
    8 10.6 12c 10.6 FALSE 成功执行
    9 10.6 11g 10.6 TRUE 成功执行
    10 10.6 11g 10.6 FALSE 成功执行
    11 10.5.1 11g 10.5 TRUE 成功执行
    12 10.5.1 11g 10.5 FALSE 成功执行
    13 10.5 11g 10.5 TRUE 成功执行
    14 10.5 11g 10.5 FALSE 成功执行

    结论

    通过对比分析,排除 Oracle 和 SDE 版本的影响,得出结论:

    • ArcGIS Server 10.6 及以前版本,无论 standardizedQueries 参数如何设置,都可以将 USER 作为 where 条件语句执行查询。
    • ArcGIS Server 10.6.1 和 10.7,强制执行标准化查询,在 standardizedQueries 参数设置为TRUE 时,将 USER 认定为无效。
    Unable to complete operation.
    An invalid where clause or definition expression has been requested: "user like 'SD%'"
    
    • 在ArcGIS Server 10.5.1的环境下,测试过安全补丁 ArcGIS-1051-S-SEC2018U2-Patch.msp ,问题依旧。
    • 目前方案:建议将 ArcGIS Server 升级到10.6.1或以上版本。

    参考

    相关文章

      网友评论

          本文标题:ArcGIS Server 标准化SQL查询、SQL注入问题的测

          本文链接:https://www.haomeiwen.com/subject/ldgnlctx.html