grep表示在多个文件中匹配的模式
我正在使用grep分析攻击后的日志文件。 通常是这样grep表示在多个文件中匹配的模式,grep,access-log,Grep,Access Log,我正在使用grep分析攻击后的日志文件。 通常是这样 grep -F "POST /xxxxx.php" ./access-log 现在有人攻击了我的一些网站,但我不知道漏洞在哪里,也不知道攻击者的ip地址是什么。现在我想找到一个ip地址,他向我的多个网站发送了请求,如下所示: abcde.com-log:123.123.123.123 - - [12/Jan/2013:08:41:08 +0100] "POST /xxxxx.php HTTP/1.1" 200 1234 "-" "-" w
grep -F "POST /xxxxx.php" ./access-log
现在有人攻击了我的一些网站,但我不知道漏洞在哪里,也不知道攻击者的ip地址是什么。现在我想找到一个ip地址,他向我的多个网站发送了请求,如下所示:
abcde.com-log:123.123.123.123 - - [12/Jan/2013:08:41:08 +0100] "POST /xxxxx.php HTTP/1.1" 200 1234 "-" "-"
wxyz.com-log:123.123.123.123 - - [12/Jan/2013:08:41:08 +0100] "POST /xxxxx.php HTTP/1.1" 200 1234 "-" "-"
但是我不知道如何让grep或其他unix工具只提供匹配项,匹配者不止一个日志文件。假设您想要的IP地址是每个日志文件中显示为第一个字段的IP地址,请尝试以下操作:
awk '
/POST \/xxxxx\.php/ {
ip=$1
if ( !(ipFilePairs[ip,FILENAME]++) ) {
ipFileCnt[ip]++
ipFileList[ip] = ipFileList[ip] " " FILENAME
}
}
END {
for (ip in ipFileCnt)
if (ipFileCnt[ip] > 1)
print ip ":" ipFileList[ip]
}
' *.log
由于您不知道漏洞在哪里,您可以提供哪些特征来识别攻击请求?它总是一个POST请求吗?总是指向.php文件吗?如果没有这些数据,你也可以在你的两个站点的robots.txt中找到谷歌机器人。