<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    如何使用WebScarab測試會話標識符強度

    目的

    收集并檢查相當大的會話標識符樣本,以確定它們是否容易受到預測或暴力攻擊。

    方法

    標識生成適當會話標識符的請求。例如,如果標識符在cookie中提供,請查找包含Set-Cookie標頭的響應,然后重復使用該請求以獲取更多會話標識符。然后,我們將對所得的一系列標識符進行一些分析。WebScarab SessionID分析插件當前使用每個位置的基本轉換算法將會話標識符轉換為大整數。

    收集會話標識符

    可以從Set-Cookie標頭和響應主體中收集會話標識符。如果單選按鈕設置為“ Cookies”,WebScarab將從所有cookie中收集所有標識符。無需提供會話標識符的名稱,因為WebScarab將使用站點名稱,路徑和cookie名稱來構造唯一標識符。如果選擇從響應的主體中提取會話標識符,則必須為其賦予唯一的名稱,并提供一個正則表達式來定義將響應主體的哪一部分視為標識符。通常,使用“.* ”表示導致某些獨特周圍文本的所有字符,然后是該獨特文本,然后用正則表達式組包圍的模式(例如 “(….)”將采用4個字符)來完成此操作),

    對于一個更具體的示例,讓我們假設標識符在正文中的URL查詢參數中,而url參數稱為“ id”。

    合適的正則表達式可能是: .* loggedin.aspx \?id =(.{10}).*

    為了檢查您的正則表達式實際上與響應中的文本正確匹配,請使用“測試”按鈕顯示要提取的內容。測試結果不會存儲以備后用。

    對配置滿意后,只需輸入所需的樣本數量,然后按“開始”即可。如果您決定中斷收集過程,可以通過請求0個樣本,然后再次按“獲取”來中斷。

    分析結果

    如前所述,WebScarab使用逐位置的基轉換算法將字符串轉換為數字。這真正的意思是字符串轉換為數字的方法與將一種基數(例如十六進制16)轉換為另一種基數(例如十進制10)的方法是一樣的。主要的區別是,根據在整個采樣序列中在該位置實際觀察到的字符,基底可以根據每個位置/索引改變。這意味著,如果在級數中間有一個常量字符,那么基數最終是“1”,在一個以1為基數的數字系統中,唯一可能的值是0,因此常量字符在實際計算總數的數值中沒有任何作用。

    這是一個小規模的例子。

    假設我們有以下會話ID:

    AAAA
    AAAC
    ABAB
    ABAD

    從最左邊的列(MSB)開始,我們觀察到以下字符集:

    1: "A"
    2: "A", "B"
    3: "A"
    4: "A", "B", "C", "D"

    因此,我們的基礎是依次(1,2,1,4)。

    讓我們計算每個id的值。為了將每個字符轉換為數字,我們在排序的字符集中使用其從零開始的位置:

    AAAA = 0 * (2*1*4) + 0 * (1*4) + 0 * (4) + 0 = 0
    AAAC = 0 * (2*1*4) + 0 * (1*4) + 0 * (4) + 2 = 2
    ABAB = 0 * (2*1*4) + 1 * (1*4) + 0 * (4) + 1 = 5
    ABAD = 0 * (2*1*4) + 1 * (1*4) + 0 * (4) + 3 = 7

    看圖

    然后計算出的值根據時間繪制在圖表上。這個想法是,人類的眼睛非常擅長視覺識別模式,這在一串數字中可能不太明顯。最可能看到的模式是線或條帶(可能中斷/斷裂),或散布在圖形上的點。第一個表示可預測性,而第二個表示隨機性。

    在外部程序中繪制結果

    WebScarab可以以逗號分隔的格式導出結果,適合使用您喜歡的繪圖程序(例如Excel或gnuplot)進行繪圖。在某些情況下(例如,編寫正式報告),您可能會發現將結果繪制在功能更全的程序中看起來更好。

    在“分析”頁面上,單擊“導出”按鈕。將輸出保存到文件。在Windows下,您可能應該繼續將文件命名為.CSV或.TXT。下面顯示了幾個示例行:

    1162494041997,11826346672417325953,6c30d8130bc05b6ec381 1162494042104,4008986413070164165,6c3053d2a0cb7e2a20c5 1162494042224,11293771226654801443,6c30cf10801d38497e23

    盡管精確度很有用,但數字并不是大多數制圖程序可以使用的格式。問題是Excel無法解析第一列時間戳。更糟糕的是,它甚至不是Unix時間戳。傳統的Unix時間戳以自1970年1月1日00:00以來的秒數為單位。例如,該數字1162494041997實際上是自1970年1月1日以來的毫秒數

    沒有恐懼。在perl的一行中,您可以將所有時間戳轉換為Excel可以查看的格式。類似于:11/02/2006 14:00:41.997,這實際上是1162494041997。

    這是perl的一行。假定從WebScarab導出的數據已保存到名為JSESSIONID.txt的文件中:

    perl -pi -e 'use POSIX qw(strftime); s/^(\d+)/strftime("%m\/%d\/%Y %H:%M:%S", localtime($1\/1000)) . "." . ($1 % 1000)/e;' JSESSIONID.txt

    這是該行關鍵組成部分的說明。您不需要了解這一點即可使用此Perl代碼。但是,如果您想知道它的作用,這將有助于您理解。

    / ^(\ d +)/

    匹配從行首開始的一些數字。

    strftime(“%m \ /%d \ /%Y%H:%M:%S”,

    這是時間的格式。請注意以下幾點:它沒有幾分之一秒的時間(單獨完成),并且具有反斜杠以避開日期中的正斜杠。否則,這些正斜杠會混淆正則表達式解析器。

    localtime($ 1 \ / 1000)

    也就是取直線開始的數除以1000。這樣,我們就得到了localtime所需要的Unix秒數。

    .“.” .($ 1%1000)

    獲取strftime()調用的輸出,并在末尾添加一些內容。也就是說,一個文字”.”,然后是時間的毫秒值。

    這不是一件容易的事,但是卻非常有效。

    上面的三行變成:

     11/02/2006 14:00:41.997,11826346672417325953,6c30d8130bc05b6ec381
     11/02/2006 14:00:42.104,4008986413070164165,6c3053d2a0cb7e2a20c5
     11/02/2006 14:00:42.224,11293771226654801443,6c30cf10801d38497e23

    如果您熟悉Excel,您將認識到Excel可以很好地處理這些日期格式。現在您可以在Excel中繪制數據,這比WebScarab直接給我的控制更多。

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类