LDAP注入的介绍与代码防御

来源:互联网 发布:金宝贝和美吉姆知乎 编辑:程序博客网 时间:2024/04/29 23:12

0x01 介绍

       该软件使用受外部影响的输入来构造 LDAP 查询的全部或一部分,而未能对可能用于修改 LDAP 查询的元素进行无害化处理。
如果在用户可控制的输入中没有对 LDAP 语法进行除去或引用,那么生成的 LDAP 查询可能会导致将这些输入解释为 LDAP 而不是普通用户数据。这可用于修改查询逻辑以绕过安全性检查,或者插入其他用于修改后端数据库的语句,可能包括执行系统命令。

0x02 威胁影响

①可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
②可能会绕开 Web 应用程序的认证机制
产生原因:未对用户输入正确执行危险字符清理

0x03 修复思路

[1] 策略:库或框架
      使用不允许此弱点出现的经过审核的库或框架,或提供更容易避免此弱点的构造。
[2] 策略:参数化
      如果可用,使用自动实施数据和代码之间的分离的结构化机制。这些机制也许能够自动提供相关引用、编码和验证,而不是依赖于开发者在生成输出的每一处提供此能力。
[3] 策略:环境固化
      使用完成必要任务所需的最低特权来运行代码。
[4] 策略:输出编码
      如果在有风险的情况下仍需要使用动态生成的查询字符串或命令,请对参数正确地加引号并将这些参数中的任何特殊字符转义。

[5] 策略:输入验证假定所有输入都是恶意的。

      使用“接受已知善意”输入验证策略:严格遵守规范的可接受输入的白名单。拒绝没有严格遵守规范的任何输入,或者将其变换为严格遵守规范的内容。不要完全依赖于通过黑名单检测恶意或格式错误的输入。但是,黑名单可帮助检测潜在攻击,或者确定哪些输入由于格式严重错误而应直接拒绝。


欢迎大家分享更好的思路,热切期待^^_^^ !

0 0
原创粉丝点击