diff --git a/checks/default.list b/checks/default.list index 30f845f..7cd9259 100644 --- a/checks/default.list +++ b/checks/default.list @@ -1,5 +1,5 @@ # RFC 1918 Checks (Approximation) -(127\.([0-9\.]{1,3}){3}|10\.([0-9\.]{1,3}){3}|172\.[123][0-9]\.([0-9\.]{1,3}){2}|192\.168\.([0-9\.]{1,3}){2}) +(127\.([0-9]{1,3}\.){2}[0-9]{1,3}|10\.([0-9]{1,3}\.){2}[0-9]{1,3}|172\.[123][0-9]\.[0-9]{1,3}\.[0-9]{1,3}|192\.168\.[0-9]{1,3}\.[0-9]{1,3}) # Keywords (?i)(secret) diff --git a/gitgot.py b/gitgot.py index 56a5a64..3ec5d8c 100755 --- a/gitgot.py +++ b/gitgot.py @@ -16,6 +16,9 @@ import urllib.parse SIMILARITY_THRESHOLD = 65 ACCESS_TOKEN = "" +GITHUB_WHITESPACE = "\\.|,|:|;|/|\\\\|`|'|\"|=|\\*|!|\\?" \ + "|\\#|\\$|\\&|\\+|\\^|\\||\\~|<|>|\\(" \ + "|\\)|\\{|\\}|\\[|\\]| " class bcolors: @@ -390,9 +393,16 @@ def regex_validator(args, state): "a capture group for matches:\n\t" + str(e)) sys.exit(-1) state.checks.append(line) - for part in [state.query] + state.query.split(): - escaped_query = part.replace("(", "\\(").replace(")", "\\)") - state.checks.append("(?i)(" + escaped_query + ")") + + split = [] + if not (state.query[0] == "\"" and state.query[-1] == "\""): + split = re.split(GITHUB_WHITESPACE, state.query) + + for part in [state.query] + split: + if part: + escaped_query = re.escape(part) if split else \ + part.replace("\"", "") + state.checks.append("(?i)(" + escaped_query + ")") return state