Wazuh 도구의 PCRE2 정규식에서 둘러보기 요소를 사용하려고 합니다. 문자열을 큰따옴표로 묶고 아래 정규식을 만들어야 하지만 정규식 요소를 닫지 않고 "<" 문자를 선택하는 것처럼 보입니다.
<regex type="pcre2">(?<=").*?(?=")</regex>
오류: (1226): XML 파일 'etc/decoders/local_decoder.xml'을 읽는 동안 오류가 발생했습니다. XMLERR: 요소 '=").?(?=")</regex'는 닫혀 있지 않습니다. (라인 33).*
탈출을 시도(?)<=") 하지만 작동하지 않는 것 같습니다. 요소가 올바르게 구문 분석되도록 이스케이프하는 방법에 대한 아이디어가 있습니까?
답변1
PCRE2 정규식 구문을 사용하면 다양한 동등한 방법으로 어설션을 작성할 수 있습니다.
(?<=
다음 중 하나와 동일합니다.(*plb:
(*positive_lookbehind:
(?=
다음 중 하나와 동일합니다.(*pla:
(*positive_lookahead:
(이것은 PRCE2 라이브러리에서 가져온 것입니다.pcre2pattern
수동.)
<
이는 XML의 특수 문자( 이 경우) 를 사용하지 않고도 정규식을 더 표현력 있는 문자로 다시 작성할 수 있음을 의미합니다.
<regex type="pcre2">(*positive_lookbehind:").*?(*positive_lookahead:")</regex>
또는 간결하다
<regex type="pcre2">(*plb:").*?(*pla:")</regex>
답변2
<
XML 메타 문자이므로 <
이와 유사하게 인코딩되어야 합니다.
또한 >
is >
및 리터럴은 다음 &
과 같습니다.&
하지만,사용 중인 도구에 이 부분에 버그가 있는 것 같으므로 이를 해결하는 방법을 알아내야 합니다.https://github.com/wazuh/wazuh/issues/14261