OWASP Top10 系列之 XPath 注入

OWASP Top10 系列 - 注入 - XPath

原理

XPath 注入发生在当站点使用用户输入的信息来构造请求以获取 XML 数据的时候。

一句话描述

  • 甲方:未经过滤,直接使用用户提供的信息来获取、查询 XML 数据,导致其中恶意的 XPath 被执行,返回非预期的数据。
  • 乙方:破坏原有的 XPath,插入恶意的 XPath,最后闭合原 XPath 的攻击方式。

利用

攻击点:任何使用 XPath 查询 XML 的地方。

组件

XML、XPath

类型

只有一种:https://www.tr0y.wang/2019/05/11/XPath注入指北/

工具

xcat:https://github.com/orf/xcat

防御

  • 过滤字符是必须的,比如[]、转义 'andor等等。
  • 过滤不需要的函数:name()count() 等等。
  • 加密/Hash:既然 XPath 注入会导致 XML 数据泄露,所以对敏感信息的加密是必须的。这个方法还有一个额外的好处:使得恶意的字符失效。比如对密码 MD5 的话,就意味着密码这个点没法插入单引号来破坏语句了,因为单引号会进入md5()函数计算。
  • 屏蔽错误信息。
  • 参数化 XPath 查询。这个因编程语言而异。

    来呀快活呀


OWASP Top10 系列之 XPath 注入
https://www.tr0y.wang/2019/05/11/OWASP-Top10-系列之XPath注入/
作者
Tr0y
发布于
2019年5月11日
更新于
2024年4月19日
许可协议