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
防御
- 过滤字符是必须的,比如
[
、]
、转义'
、and
、or
等等。 - 过滤不需要的函数:
name()
、count()
等等。 - 加密/Hash:既然 XPath 注入会导致 XML 数据泄露,所以对敏感信息的加密是必须的。这个方法还有一个额外的好处:使得恶意的字符失效。比如对密码 MD5 的话,就意味着密码这个点没法插入单引号来破坏语句了,因为单引号会进入
md5()
函数计算。 - 屏蔽错误信息。
- 参数化 XPath 查询。这个因编程语言而异。
来呀快活呀
OWASP Top10 系列之 XPath 注入
https://www.tr0y.wang/2019/05/11/OWASP-Top10-系列之XPath注入/