天天看點

網站伺服器記錄攻擊日志ctf,通過網站日志分析sql注入攻擊的痕迹

一次偶然的機會,我的朋友給我發了一個日志檔案,讓我看一下伺服器access.log檔案,說是CTF的題目,給了它這樣一個access檔案,随後要了flag。因為我是專業劃水的,CTF基本上不碰它,我也不知道怎麼做,是以我試着分析了一下下。打開網站日志檔案。檔案裡的内容基本都很長。浏覽完日志檔案,發現CTF這麼直接,沒有幹擾流量,整個檔案隻有一個訪客。是以,不需要找到攻擊者的位址。在實際的安全事件分析過程中會有大量的正常流量,是以我會按照正常的分析過程來解釋,避免任何遺漏。

我在做日志分析的時候,主要會開展404統計定位攻擊者,500統計,目錄周遊定位攻擊者,200統計評估攻擊的影響。(需要注意的是,這裡的攻擊驗證不是司法驗證,司法驗證有一套完美的程式和常見注意事項。有興趣的可以探讨一下下。)要是日志分析師經常推薦采用專業的日志分析軟體開展更好的檢索,要是日志檔案較為小,可以直接采用notepad++開展分析。由于樣本檔案比較小,我在這裡直接用notepad++開展分析。

首先我喜歡統計404響應的數量,因為它最能直接反映攻擊流量情況。要是這種方法沒有明顯的效果,可以用其他方法來判斷。如果有很多404狀态的統計結果,利用顯示所有404記錄,看看404的頁面(如果你不能了解404,很抱歉這裡不會解釋得這麼詳細。可以看看百度百科的“HTTP響應頭404”)。這個樣本日志可以清楚的看到,404流量大部分是掃描器生成的,是以可以斷定這個位址非常可疑,至少在一段時間内,他在不斷的試圖攻擊我們的伺服器。由于樣本檔案比較容易送出,都是掃描器生成的,是以沒有500态流量,這裡就不開展分析了。在分析過程中,我們記錄了發現的異常IP,并從異常IP中提取出攻擊流量。在這裡,我們采用了notepad++正規表達式來檢索全文。至于正規表達式的具體用法,請參考正規表達式的基本文法。本文主要是找192.168.8.254開頭的行,傳回狀态是404,可以全部搜尋。利用這種方法,基本上可以利用周遊500、301、302來檢索攻擊者的所有攻擊行為。經過以上過程,我們基本可以鎖定攻擊者以及攻擊者發起的攻擊行為。這個階段需要做的工作是評估攻擊行為對目标的影響。

采用上述驗證方法,找出攻擊者的所有200個狀态請求。這裡日志裡沒有其他内容。從日志中可以直接看到,攻擊者正在采用SQLMAP開展注入攻擊,攻擊成功。

易受攻擊的頁面是:/index.php參數是:id。為了便于分析,我先解碼檔案的url。有許多方法可以解碼網址。例如檔案比較小,可以利用軟體網站線上直接解碼URL解碼軟體,也可以利用腳本處理直接解碼。利用上述分析項目,我們可以确定攻擊者在服務中發現了sql注入漏洞,并成功觸發和驗證了sql漏洞可以被利用。随後,攻擊者利用該漏洞執行其他操作。要是攻擊者利用了該漏洞,影響範圍涉及哪些表?我們繼續分析。我在這裡掙紮了3分鐘。是否需要補充一些sql注入的基礎知識來提高文章的完整性,我最後決定簡單說一下,由于大部分人都想看這篇文章,要是還是覺得不完美對想看的人不好。利用分析,可以确定系統中存在sql注入漏洞,是以需要評估攻擊者利用該漏洞讀取了什麼。借助mysql的特性,攻擊者的閱讀資訊可以利用搜尋fromINFORMATION_SCHEMA來依次分析。讀取資料庫資訊,判斷資料庫名稱的第一個字元,用這種方法依次枚舉資料庫名稱,随後按照讀取表的順序依次分析攻擊者得到的表名、列名和記錄号。