HTTP 401 Unauthorized错误--路由器页面获取
来源:互联网 发布:ubuntu安装新立得 编辑:程序博客网 时间:2024/05/16 00:30
想抓取TP-Link等路由器的页面源码发现返回[HTTP 401 Unauthorized]错误,经过对HTTP协议文档[RFC-2616]的查找在10.4.2节发现了相关描述,意思就是说如果返回了401错误就表明链接WEB服务器需要HTTP简单认证,而且在服务器的Response中一定[MUST]有WWW-Authenticate头域,客户端应该[SHOULD]重新链接WEB服务器,但在Request的头域中要有HTTP access authentication(描述于[RFC-2617]中)
HTTP access authentication描述
其中的描述是这样的:如果收到401错误,客户端必须将用户名密码以如下格式(basic-credentials)放在 Authorization头域中
basic-credentials = base64-user-pass base64-user-pass = <base64 [4] encoding of user-pass, except not limited to 76 char/line> user-pass = userid ":" password userid = *<TEXT excluding ":"> password = *TEXT比如想将用户名为"Aladdin"密码为"open sesame"作为验证发送的WEB服务器,HTTP HEADER中应该是这样的:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==其中Basic后面的字符串就是"Aladdin:open sesame"经过base64算法产生的字符,综合起来你应该这样发送HPPT Request:
GET / HTTP/1.1[\r\n] Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==[\r\n] [Other Header Field]
用Python实现的HTTP Request
import socket, sys, base64host = sys.argv[1]port = int(sys.argv[2])user = 'admin'password = 'admin's = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((host, port))credent = base64.b64encode('%s:%s' % (user, password))s.sendall("GET / HTTP/1.1\r\nAuthorization: Basic %s\r\n\r\n" % credent)while True:data = s.recv(2048)sys.stdout.write(data)
需要说明的是,许多路由器的认证都是用户名admin密码admin,在python中有base64算法库只需要调用base64.b64encode(str)就可以得到base64算法处理过的字符串了
0 0
- HTTP 401 Unauthorized错误--路由器页面获取
- HTTP 401 错误 - 未授权: (Unauthorized)
- HTTP 错误 401.2 - Unauthorized
- 关于报urllib2.HTTPError: HTTP Error 401: Unauthorized错误问题
- Python模拟HTTPS请求返回HTTP 401 unauthorized错误
- Python模拟HTTPS请求返回HTTP 401 unauthorized错误
- HTTP Error 401.2 - Unauthorized iis7 错误
- win7 iis7 HTTP 错误 401.3 - Unauthorized
- HTTP 错误 401.0 - Unauthorized 的解决方案
- win7 iis7 HTTP 错误 401.3 - Unauthorized
- HTTP 错误 401.0 - Unauthorized 的解决方案
- SSRS:部署错误之“请求因 HTTP 状态 401 失败: Unauthorized。”
- SSRS:部署错误之“请求因 HTTP 状态 401 失败: Unauthorized。”
- IIS 8.0~10.0 详细错误 - HTTP 错误 401.2 - Unauthorized 解决方法
- 请求因 HTTP 状态 401 失败:Unauthorized
- 请求因 HTTP 状态 401 失败:Unauthorized
- WebService 401 unauthorized 授权认证错误
- 引用部署在IIS里的WebService时,解决“请求因 HTTP 状态 401 失败: Unauthorized。”的错误
- 使用Objective-C的文档生成工具:appledoc
- Android.mk的用法和基础
- lua学习网址
- 最少操作次数
- C++ Primer, 5th Edition Exercise CH1
- HTTP 401 Unauthorized错误--路由器页面获取
- leetcode Candy
- apahce安全配置
- Longest Palindromic Substring
- 快速排序 quick sort
- Java应用级产品开发平台APDPlat
- Powerdesigner与数据库同步(比较新旧数据库的架构)
- android之对话框的使用
- Appledoc 安装