[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