【问题标题】:how to use fiddler to debug ntlm protocol with chrome?如何使用 fiddler 用 chrome 调试 ntlm 协议?
【发布时间】:2015-03-03 06:38:15
【问题描述】:

这是一个与how to use express-ntlm to get windows user name without authentication using NODE.js?相关的问题

我正在尝试找到一种无需通过真正的 ntlm 身份验证即可获取访问者 Windows 用户名的方法,我只想使用 express-ntlm 从浏览器 http 响应中提取用户名。

我对流程的理解是:

  1. 浏览器向 node.js 发送请求而没有授权标头
  2. express-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,但没有成功)。

谢谢。

【问题讨论】:

  • 能否提取文本格式的 HTTP 标头?您对 NTLM 握手的描述是正确的,但在屏幕截图中很难看出实际问题。请注意,您需要将您的站点添加到受信任目标列表中以允许 NTLM(对于大多数浏览器)。
  • 哎呀,抱歉,屏幕截图太模糊,看不清。我将把文字写下来。谢谢。
  • 我将“localhost”和“*.domainName.com”放在“本地Intranet”列表中。这是正确的吗?
  • 对于“本地Intranet”的自定义级别,我选择了“使用当前用户名和密码自动登录”。
  • 有人使用提琴手吗?

标签: node.js google-chrome fiddler express-ntlm


【解决方案1】:

使用 Fiddler 遵循 Ntlm 挑战/响应流程是一件好事。在 Inspectors 选项卡上有一个包含大量信息的 Auth 部分。当客户端发送 Ntlm 类型 3 请求时,您将在那里找到用户名。它已编码,但 Fiddler 会为您解码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多