#7750·nuclei

[BUG] 无效的 XPath 提取器表达式成功编译,并被默默地跳过

作者: james-yusuke创建于 2026年9月16日更新于 2026年9月16日
  • 这个问题存在吗?

  • 我搜索了公开和关闭的问题 并拉 请求 XPath 和提取器验证。 #7604涉及缺失/空值;本报告涉及非空但无效的XPath表达.

当前的行为

extractor. computers ()'接受/a['和未知功能()'等无效的XPath表达式. 当取出时,htmlquery。 查询A/Xmlquery。 QueryAll 返回一个错误, 提取器默默地跳过表达式 。 与无效的 regex, JSON 或 DSL 表达式不同,作者不会得到识别错误的编译错误.

• 预期行为

在提取器编译过程中拒绝无效的 XPath 表达式, 包括诊断中的违法表达式和解析错误 。 有效的 HTML 和 XML 提取应该继续工作.

在核子舱内,构造一个取出器并编译:

开始 e:= 摘录器。 提取器{ 类型:取出器. ExtractorTypeHolder{ ExtractorType:取出器. XPathExtractor}, , XPath: [] string{"/a["], {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? fmt.Println( e. CompileExtractors ()) // 目前为<无> fmt.Println(e.extractXPath (<html><-body><a>link </a></body></html>)) //地圖 []


当一个无效的表达式跟随一个有效的表达式时,例如‘[]string{'/a","//p["}`.

环境

- 操作系统:macOS/arm64
- 核:在66068分贝
- 去,去,1.26.5号

还有别的吗?

我用回归测试复制了缺失的验证:所有三起无效表达案都因编译返回为零而未修改执行. 该固定使用现有的"GitHub.com/antchfx/xpath"依赖"编译器,不会改变提取行为.

内容来源: projectdiscovery/nuclei