攻擊取證之日志分析(一)

在當下的CTF大賽中,多以流量分析的形式出現,但是在個別比賽中依然會出現關于日志分析類的題目。

概念:

首先,咱們還是老規矩,先介紹一下什么是日志分析。

日志分析—-計算機、網絡和其他IT系統生成審計跟蹤記錄或記錄系統活動的日志。日志分析是對這些記錄的評估,幫助公司緩解各種風險并滿足合規性法規。

在當下的CTF大賽中,多以流量分析的形式出現,但是在個別比賽中依然會出現一題關于日志分析類的題目,一般的題目都是會讓我們通過日志找線索,不會將flag寫在日志,因此我們需要通過分析日志來判斷,flag可能存在的位置,再通過類似的方式獲取flag。

日志分析主要分成兩種:

●Web日志分析

●系統日志分析

本期主要給大家帶來Web日志分析。

日志格式類型:

既然要進行分析日志,首先我們得先了解一下日志的格式到底有哪些?

目前在比賽中比較常見的WEB日志格式主要有兩類:

●Apache的NCSA日志格式,NCSA格式分為:

NCSA普通日志格式(CLF)

NCSA擴展日志格式(ECLF)

●IIS的W3C日志格式

除了格式不同之外,一般的分析方法基本相似,因此接下來以NCSA普通日志格式進行演示。

為了可以更好的演示,這邊使用的是NCSA普通日志格式,它的格式如下:

如下.webp.jpg

常用日志分析方法:

常見的日志分析方法有兩種:

1.特征字符分析

2.訪問頻率分析

特征字符分析:

特征字符分析法:顧名思義,就是根據攻擊者利用的漏洞特征,進行判斷攻擊者使用的是哪一種攻擊。

常見的類型有以下:SQL注入、XSS跨站腳本攻擊、惡意文件上傳、一句話木馬連接等。

SQL注入:

漏洞特征:存在SQL注入語句

常見的SQL注入語句有:

●通過報錯注入、布爾盲注、時間盲注判斷是否存在注入:

⊙字符型

 ■ 參數后加單引號,報錯:sql1.php?name=admin’

 ■ 參數后加’ and ’1′=’2和’ and ’1′=’2,訪問正常:sql1.php?name=admin’ and ’1′=’1       /sql1.php?name=admin’ and ’1′=’2

■  參數后加’ and sleep(3)  –,是否延遲3秒打開:sql1.php?name=admin’ and/or sleep(3)–

⊙數字型

■  參數后加單引號,報錯:sql2.php?id=1′

■  參數后加and 1=1和and 1=2,訪問正常:sql2.php?id=1 and 1=1/sql2.php?id=1 and 1=2

■  參數后加and sleep(5),是否延遲3秒打開:sql2.php?id=1 and sleep(5)

● 通過各種注入語句進行SQL注入攻擊:

☉聯合查詢注入

■ union select

■ order by

☉報錯注入(常見報錯注入函數)

■ floor()

■ extractvalue()

■ updatexml()

■ geometrycollection()

■ multipoint()

■ polygon()

■ multipolygon()

■ linestring()

■ multilinestring()

■ exp()

⊙常見數據庫類型判斷

■ ACCESS

and (select count (*) from sysobjects)>0返回異常

and (select count (*) from msysobjects)>0返回異常

■ SQLSERVER

and (select count (*) from sysobjects)>0返回正常

and (select count (*) from msysobjects)>0返回異常

and left(version(),1)=5%23參數5也可能是4

■ MYSQL

id=2 and version()>0返回正常

id=2 and length(user())>0返回正常

id=2 CHAR(97, 110, 100, 32, 49, 61, 49)返回正常

■ Oracle

and length (select user from dual)>0返回正常

由于文章長度有限,只列舉部分,一般出現有上述內容,則可判斷此處可能存在SQL注入。

可能.webp.jpg

如圖,可以很明顯地發現紅色框中有很明顯的SQL注入語句,如布爾盲注、union select聯合注入。

XSS跨站腳本攻擊:

漏洞特征:明顯的js惡意執行代碼

常見的XSS跨站腳本攻擊中存在的一些代碼:

● 標簽

■ <script>

■<body>

■<input>

■<img>

■<a>

■<svg>

■<BGSOUND>

■<LINK>

■<META>

■<TABLE>

■<DIV>

■<IFRAME>

■<FRAMESET>

■<STYLE>

■<OBJECT>

■ ……

● 常用觸發事件

■ oninput

■ onload

■ oncut

■ onclick

■ onerror

■ onmouseover

■ onfocus

■ onblur

■ poster

■ onscroll

■……

● 常用惡意代碼

■ prompt

■ confirm

■ alert

■ javascript

■ eval

■ expression

■ window.location

■……

斗哥只給出部分常見的js代碼,有興趣的同學,自行查閱資料,將其補全,因為比賽是瞬息萬變的,偶爾也會出現一些比較偏門的也不一定。

不一定.webp.jpg

如圖,可以很明顯地發現紅色框中有很明顯的js惡意執行代碼,如<script>標簽、alert語句,但是由于apache日志的特性,如果是通過Post請求,則無法準確判斷出是否存在XSS跨站腳本攻擊

惡意文件上傳:

通常存在于upload、file等出現類似字樣的文件,均可能存在惡意文件上傳,具體還需結合日志進行判斷,一般是判斷后續是否有出現Webshell等一些可以的web操作,可通過查看下圖,發現在file.php頁面的前后日志中,有存在一個帶著日期的php頁面,很可能就是利用file.php上傳的文件,服務器自動生成名字,因此判斷此處可能存在惡意文件上傳。

因此.webp.jpg

一般地,如果Post請求的數據未被顯示出來,則需要我們通過訪問的鏈接以及上下文的訪問詳情確認此處是否存在惡意文件上傳

一句話木馬(Webshell):

一般名字可疑的文件,如帶日期字樣的頁面(.php、.asp、.aspx、.ash、.jsp等)、一串隨機值的頁面等,并且是通過Post請求,同時會返回一定的數據,此時可判斷可能存在一句話木馬、webshell等惡意文件,有些日志可能還有post請求參數,可結合參數,更準確地判斷出是否存在一句話木馬、webshell等惡意文件。

惡意.webp.jpg

訪問頻率分析:

訪問頻率分析:不難理解,就是通過查看攻擊者訪問的頻率來判斷攻擊者使用的是哪一種攻擊。

常見的類型有有以下:SQL盲注、敏感目錄爆破、賬號爆破、Web掃描。

SQL盲注:

一般訪問比較有規律,基本都包含SQL語句,并且大體都相似,有個別字符不同,具體情況可參考下圖:

盲注.webp.jpg

不難發現,上圖中語句中除了包含SQL語句外,并且最后幾個字符不同,其他都是一致的,因此可推測出此處為SQL盲注。

敏感目錄爆破:

一般會有大量的探測目錄,一般以Head方法為主進行探測,具體情況可參考下圖:

大量.webp.jpg

發現在上圖中,存在大量的HEAD請求方法,并且基本訪問的頁面返回的狀態碼為404。

賬號爆破:

通常都是對一個登錄頁面進行大量post請求,并且返回值基本相似,具體情況可參考下圖:

通常.webp.jpg

從上圖可以很容易看出,明顯是個登錄頁面,并且訪問頻率較高,都是通過post方法進行請求,訪問值均一樣,幸運的是此處出現了一個302狀態碼,說明攻擊者已經爆破到賬號密碼了,故可判斷此處應該為賬號爆破。

Web掃描:

一般來說,訪問的目標比較離散,并且來源地址相對固定,同時訪問的結果大多數也都是失敗的,并且在參數中有比較明顯的掃描器特征字段

常見掃描器在url上的特征:

● AWVS 10.5或11

acunetix-wvs-test-for-some-inexistent-file

by_wvs

acunetix_wvs_security_test

acunetix

acunetix_wvs

acunetix_test

wvs_test

● Netsparker

netsparker

Netsparker

ns: netsparker

●Appscan

Appscan

● Webinspect

HP404

● Rsas

nsfocus

● Nessus

nessus

Nessus

● Sqlmap

sqlmap

此處借鑒了FREEBUFF上yiran4827大佬的文章常見掃描器或者自動化工具的特征(指紋),具體內容可以點進去詳看。

如下圖:

根據.webp.jpg

根據之前講到的條件,發現上圖滿足訪問目標比較離散、并且源地址是固定,而且其中還帶有wvstest字樣。

總結:

現在CTF比賽中,單純日志分析的題目會比較少,但也不可以說明它不重要,我們仍需要去學習它,去熟悉它。在本期中,大致給大家講解了一些日志分析的方法,以及一些常見漏洞特征,這不僅可以用于CTF比賽中,也可以使用到日常的網站攻擊溯源中的日志分析階段。同時,也希望廣大社區的小伙伴積極評論,因為斗哥的這份日志分析可能還不是很完整,還需要大家一起來完善它。最后,預告一下在本章之后還有一個章節,在下個章節中,會有系統的日志分析以及如何使用日志分析工具進行日志分析,敬請期待喲。

3

發表評論

已有 1 條評論

取消
Loading...

填寫個人信息

姓名
電話
郵箱
公司
行業
職位
css.php jizzz