2015-03-03 99 views
0

這是關係到how to use express-ntlm to get windows user name without authentication using NODE.js?如何使用fiddler用chrome調試ntlm協議?

我試圖找到一種方法來抓住遊客的Windows用戶名沒有通過真正的NTLM身份驗證要去一個問題,我只是想提取瀏覽器的HTTP響應的用戶名使用快遞,NTLM 。

我的有關過程的理解是:

  1. 瀏覽器將請求發送到的node.js擅自頭
  2. 明示-NTLM使得401答覆
  3. 瀏覽器發送具有到Node.js的一個請求授權標頭
  4. express-ntlm對挑戰作出401回覆
  5. 瀏覽器將發送包含用戶名信息的回覆

我被卡在上面的步驟4)。 我剛安裝了Fiddler來記錄頁面加載的通信跟蹤。

第一次握手:

GET http://localhost:3000/search HTTP/1.1 
Host: localhost:3000 
Connection: keep-alive 
Cache-Control: max-age=0 
Accept:  
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,  
like Gecko) Chrome/40.0.2214.115 Safari/537.36 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4 
If-None-Match: "1085683586" 

==== response ==== 
HTTP/1.1 401 Unauthorized 
X-Powered-By: Express 
WWW-Authenticate: NTLM 
Date: Wed, 04 Mar 2015 01:48:10 GMT 
Connection: keep-alive 
Proxy-Support: Session-Based-Authentication 
Content-Length: 0 

第二次握手:

GET http://localhost:3000/search HTTP/1.1 
Host: localhost:3000 
Connection: keep-alive 
Cache-Control: max-age=0 
Authorization: NTLM  
TlRMTVNTUAABAAAAB7IIogQABAA0AAAADAAMACgAAAAGAbEdAAAAD1hBUEVOR0xJQU4zMFhMTlg= 
Accept: 
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, 
like Gecko) Chrome/40.0.2214.115 Safari/537.36 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4 
If-None-Match: "1085683586" 

=== response ==== 
HTTP/1.1 401 Unauthorized 
X-Powered-By: Express 
WWW-Authenticate: NTLM 
TlRMTVNTUAACAAAAAAAAAAAoAAABggAAASNFZ4mrze8AAAAAAAAAAA== 
Date: Wed, 04 Mar 2015 01:48:10 GMT 
Connection: keep-alive 
Proxy-Support: Session-Based-Authentication 
Content-Length: 0 

有什麼我需要在小提琴手跟蹤關注?

我正在使用win7 + chrome。 (我也試過IE和Firefox,但沒有運氣)。

謝謝。

+1

你能提取文本格式的HTTP頭文件嗎?您對NTLM握手的描述是正確的,但很難在截圖中看到實際問題。 請注意,您需要將您的站點添加到受信任的目標列表中以允許NTLM(適用於大多數瀏覽器)。 – RomanK 2015-03-03 06:57:51

+0

哎呀,我的道歉,屏幕截圖太模糊,看不到。我會放下文字。謝謝。 – sqr 2015-03-04 01:37:14

+0

我把「localhost」和「* .domainName.com」放在「本地Intranet」列表中。它是否正確? – sqr 2015-03-04 02:06:31

回答

0

您使用Fiddler來跟蹤Ntlm挑戰/響應流程是一件好事。在檢查員選項卡有一個驗證部分與廣泛的信息。當客戶端發送Ntlm類型3請求時,您將在其中找到用戶名。它被編碼,但Fiddler會爲你解碼。

相關問題