По сути, я пытаюсь найти жестко закодированный закрытый ключ в тысячах файлов, чтобы найти вредоносные файлы и пропустить законные, которые определяют эту строку как переменную. .
Поэтому я хочу сопоставить все файлы, которые имеют «BEGIN PRIVATE KEY -----», 1x или 0x CR и конец строки. поэтому я перепробовал все виды grep, но ничего не помогло. Я ожидал, что это сработает
Код: Выделить всё
# grep -iIREn "BEGIN PRIVATE KEY-----\r" /tmp/hck-bck/
grep: warning: stray \ before r
# grep -iIREn "BEGIN PRIVATE KEY-----" /tmp/hck-bck/
/tmp/hck-bck/style.php:123:$privateKey = '-----BEGIN PRIVATE KEY-----
# grep -iIREn "BEGIN PRIVATE KEY-----(\r)" /tmp/hck-bck/
grep: warning: stray \ before r
# grep -iIREn "BEGIN PRIVATE KEY-----[[:cntrl:]]" /tmp/hck-bck/
# grep -iIREn "BEGIN PRIVATE KEY-----[[:cntrl:]]?$" /tmp/hck-bck/
# grep -iIREn "BEGIN PRIVATE KEY-----.$" /tmp/hck-bck/
# grep -iIREn "BEGIN PRIVATE KEY-----$" /tmp/hck-bck/
# grep -iIREn 'BEGIN PRIVATE KEY-----[\r]' /tmp/hck-bck/
# grep -iIREn 'BEGIN PRIVATE KEY-----[[:cntrl:]]?$' /tmp/hck-bck/
# grep -iIREn "BEGIN PRIVATE KEY-----\\r" /tmp/hck-bck/
grep: warning: stray \ before r
#
Using[:
cntrl:] действительно соответствует, но ничего не выводит, поэтому я не могу сказать в журнале, какой это был файл. Использование '\r', которое должно работать для вывода предупреждения CR и отсутствия совпадения. Я пробовал одинарные и двойные кавычки. Если я использую -P вместо -E, тоже никакой разницы. Использование '\r' фактически соответствует литералу \r как части строки, определенной в некоторых файлах php.
Код: Выделить всё
#cat -A style.php
....
}^M$
$privateKey = '-----BEGIN PRIVATE KEY-----^M$
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC30w49ItOfldQ6^M$
dB+0gEbeeW6BEClcx+NZzmpX2YcRHFV80BurCWBavPFehV8Sy9yL2u/y3mv3QJJ+^M$
x2kKvly8zKx4GbXPbsWJk6Ho0Rxq49oXkBarQBOqROZeaFF3Mzpd/PdLSsxEvG1M^M$
tQd2wOx5r6XD86jyfN7LAJUUVvbJvn1CHo03nFH12k1KYwLnQfzQI5nX7yQLa0jt^M$
fG5TA34Fm0EMbFdHWjAN/VdEjoJI6it4PCQP5wk4ga2BvVquQkuPbsbr8364d3I6^M$
GuGAKDR0wfkT20n0E6kAmDI3ol2bfa0rQncqUS3OU3INpxOZS8eKCIgC3bM81mdi^M$
MQ6TsAQ9AgMBAAECggEAJLGSlA2RpLdpx8lKUuOQQfSHZGfveb/E2DZl7+dSGM5J^M$
.............
Почему использование [:cntrl:] не показывает соответствующего вывода? И как правильно указать CR после последнего тире, чтобы получить совпадение?
Подробнее здесь: https://stackoverflow.com/questions/793 ... -with-grep
Мобильная версия