Как сопоставить CR или конец строки с помощью grep?Linux

Ответить
Anonymous
 Как сопоставить CR или конец строки с помощью grep?

Сообщение Anonymous »

Я видел много подобных вопросов, но не получил ответа.

По сути, я пытаюсь найти жестко закодированный закрытый ключ в тысячах файлов, чтобы найти вредоносные файлы и пропустить законные, которые определяют эту строку как переменную. .
Поэтому я хочу сопоставить все файлы, которые имеют «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$
.............
Итак, в файле есть CR и конец строки.
Почему использование [:cntrl:] не показывает соответствующего вывода? И как правильно указать CR после последнего тире, чтобы получить совпадение?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -with-grep
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»