Con grep -w
, le está pidiendo a grep
que solo devuelva coincidencias que estén inmediatamente precedidas o seguidas por una nueva línea (al principio o al final de una línea )o una palabra que no sea -carácter (un carácter de palabra es una letra, un dígito o un guión bajo ).
Esto significa que el texto this is flag{a}
no coincidirá con grep -w 'flag{
', ya que el carácter que sigue a {
en el texto es un carácter de palabra.
Del mismo modo, this is theflag{
no coincidiría con grep -w 'flag{'
.
Puede deshacerse de la opción -w
y, en su lugar, usar un patrón de límite de palabra de ancho cero -explícito, por ejemplo al principio, de modo que pueda hacer coincidir flag{a}
pero no theflag{
. Con GNU grep
, esto se puede hacer usando
grep -rn '\<flag{' Downloads
o
grep -rn '\bflag{' Downloads
El patrón \<
coincide con un límite de palabra al comienzo de una palabra (y \>
coincide con el final ), mientras que \b
coincide tanto al principio como al final. \<
y \>
se heredaron originalmente de los editores ex
y vi
y son más portátiles que \b
.
GNU grep
no es compatible con [[:<:]]
y [[:>:]]
(, que funcionan de la misma manera que \<
y\>
)para coincidir al principio o al final de las palabras, pero BSD grep
sí. BSD grep
no admite \b
.
Насколько мне известно, они не зарегистрированы. Если кто-то еще не докажет, что я ошибаюсь, вот альтернативный метод.
Вместо этого вы можете выполнить шаги 1+2 или 1+3 ниже:
полностью отключитьrp _фильтр .
используйте модуль соответствия iptablesrpfilter , один раз с целью LOG для простого журнала, илиNFLOG(или дажеNFQUEUE , хотя это не предполагаемое использование )для полного дампа пакетов, а один раз с целью DROP для фактической фильтрации.
Правильное использование NFLOG , вероятно, потребовало бы отдельного вопроса, но я могу сказать, что даже без специального инструмента tcpdump
может прослушивать сокет nflog netlink как если бы это был интерфейс. Обычно делается сначала с помощью:
# tcpdump -D
для получения правильного индекса интерфейса. Например:
[...]
12.nflog (Linux netfilter log (NFLOG) interface)
13.nfqueue (Linux netfilter queue (NFQUEUE) interface)
[...]
# tcpdump -n -i 12
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on nflog, link-type NFLOG (Linux netfilter log messages), capture size 262144 bytes
Вы также можете записать их в файл(-w dump.cap
)
или используйтеnft'sfibдля эквивалентного метода, используя (достаточно недавний)nftablesвместо iptables , с некоторый эквивалентныйлогарифмическийметод.
Использование уровня брандмауэра netfilter является единственным методом для IPv6, в котором отсутствует прямая поддержка rp _filter в стеке маршрутизации в Linux.
Некоторые критические ситуации, связанные с ARP или маршрутизацией политик, могут вести себя не на 100% идентично, поскольку фильтрация, вероятно, выполняется позже.