2013-01-17 108 views
1

我使用grep分析我的日誌文件後,發作的攻擊。 通常這樣的grep模式,匹配多個文件

grep -F "POST /xxxxx.php" ./access-log 

現在有人攻擊我的一些網站,但我不知道在哪裏的漏洞,而且沒有,攻擊者的IP地址是什麼。現在,我想找到一個IP地址,誰sended請求我的網站不止一個,這樣的:

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工具,只給我匹配,誰匹配是多個日誌文件。

+0

既然你不知道哪裏有漏洞,你可以提供什麼樣的特點確定攻擊請求?它總是一個POST請求?總是對.php文件?如果沒有這些數據,您還可以與Google-Bot相匹配,例如,從您的兩個站點請求robots.txt。 – Perleone

回答

0

假設你想要的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