我想了解某人如何攻擊我客戶的網站。我正在使用^(?!.*404).*194\.226.*$
搜索日誌文件,嘗試在日誌文件中找到一行,其中IP地址以194.226開頭的某人正在訪問未導致404結果的服務器。正則表達式包含字符串的一部分,但不包括strig的另一部分
日誌文件中的典型行是194.226.xx.xx - - [18/Feb/2014:01:45:10 +0100] "GET /tikiwiki/tiki-graph_formula.php?w=1&h=1&s=1&min=1&max=2&f[]=x.tan.phpinfo()&t=png&title=http://www.google.com/humans.txt? HTTP/1.0" 404 84403 "-" "-" 163 84852
我假設接近行尾的404是404,因爲它遵循HTTP/1.0響應。
重要的是194.226 IS在行中,但404不在行中。從這裏的研究RegExp Look for part but exclude If,我想出了上述路線。它要麼沒有工作,要麼找不到。我無法知道哪一個,因爲日誌文件的大小是2188MB。
我的問題:正則表達式是否正確?
什麼工具/語言是您使用? '^ $'表示* string *的開始和結束。您可能想使用'm'修飾符將其「轉換」爲*行*的開始和結尾。但這取決於你使用的工具/語言。 – HamZa
嗨HamZa,我使用UltraEdit,它使用Perl兼容的正則表達式。然而,自從這篇文章以來,我已經下載了另一個大日誌文件,並且確實發現它確實有效。因此 - 對於那些感興趣的人,我在查詢中發現了這一點,顯示黑客竊取密碼的一種可能方式:'194.226.xx.xx - - [18/Feb/2014:01:34:03 +0100]「GET/index .php?page = ../../../../../../../../etc/passwd%00 HTTP/1.0「200 83670」 - 「」 - 「97 84112' –
在網站上自己運行該URL並不會向我返回任何錯誤信息,但情況並非如此,但它可能是:-) –