Web安全实践(11)用户名枚举

简介:

本系列导航http://www.cnblogs.com/xuanhun/archive/2008/10/25/1319523.html

安全技术区http://space.cnblogs.com/group/group_detail.aspx?gid=100566 

前言

(作者:玄魂)   

哎呀,好久没上博客园来了,先前的计划也搁浅了一段时间。考试,课程设计,找工作,上不了网,各种问题。今天忙里偷闲,写点东西。

用户名枚举和密码猜测是攻击web验证两个核心部分。这篇文章只探讨用户名枚举的一些常见情况。

正文

11.1从网站的用户标识获取用户名

对于博客,论坛,交友网这样的网站,对于不同的用户的标识有用户名,ID号,昵称等级种形式,很多时候会很明显的暴露用户登录用的用户名。

以博客园为例,访问每个人的空间都会得到类似的链接:http://www.cnblogs.com/tintown/。tintown就 是用户名。010209_0657_Web111.png

用这样的方法我们可以获得博客园所有用户的登录用户名。再比如百度空间,也有类似的情况。

010209_0657_Web112.png

上面的xuanhun就是登录用户名。不过最近百度对你访问的其他人的空间做了加密处理。但是很容易被还原。

010209_0657_Web113.png

比较好的办法是登录名和网站的功能操作的用户标识区分开。下面看校内网的一个例子。

 

010209_0657_Web114.png

校内网的用户ID是程序自动和用户名绑定的,而操作的过程用的是ID而不是用户名,用户登录的时候用的是用户名而不是ID,这在一定程度上给用户名枚举造成了困难。

11.2内容信息

很多网站是以邮箱登陆的,但个人信息也有Email选项,如果该用户填写了,很有可能就是暴露了他的登录用户名。

填写了可以暴露他的用户名的间接信息。比如在XX网站填写了博客园的空间链接,那么博客园的登录用户名很可能就是他在XX网站的用户名。因为很少有人不断的更换自己的用户名和密码。

其他的一些敏感信息。页面内的username,uid等关键字。

11.3暴力登录探测

(1)登录界面

这是很多软件常用的方法,利用已有的字典不断做登录尝试,根据返回的信息判断是否成功。

仍以博客园为例:

我先在登录界面输入用户名dudu,密码123,返回密码错误信息。

010209_0657_Web115.png

我再输入dudu123456,密码123,返回用户名不存在信息。

010209_0657_Web116.png

根据返回信息的不同,我们可以确定用户名的存在与否。

(2)注册信息

以百度注册为例

我输入一个已经存在的用户名,会返回用户名已存在的信息。这样就获得了用户名。

010209_0657_Web117.png

(3)找回密码信息

刚才我们说了校内网在防止用户名枚举的安全策略,下面我们再看看它的找回密码界面。

010209_0657_Web118.png

把我们要探测的帐号输入,如果错误就会返回这样的错误信息。如果正确呢?

010209_0657_Web119.png

看,连邮箱都给我们显示出来了。

这里需要说的是,对于具体的攻击细节和防护细节我们留在下一篇文章中具体探讨。

(5)账户锁定

对于返回错误信息不明显的页面我们也可以利用它的账户锁定机制。原因很简单,账户锁定仅仅针对已经存在的用户,而对不存在的用户是不锁定的。比如126邮箱。但是账户锁定很容易被暴力程序造成拒绝服务攻击。010209_0657_Web1110.png

11.4 阻止暴力探测的一些方法的探讨

(1)账户锁定

账户锁定是很有效的方法,因为暴力破解程序在5-6次的探测中猜出密码的可能性很小。但是同时也拒绝了正常用户的使用。如果攻击者的探测是建立在用户名探测成功之后的行为,那么会造成严重的拒绝服务攻击。对于对大量用户名只用一个密码的探测攻击账户锁定无效。

如果对已经锁定的账户并不返回任何信息,可能迷惑攻击者。

(2)返回信息

如果不管结果如何都返回成功的信息,破解软件就会停止攻击。但是对人来说很快就会被识破。

(3)页面跳转

产生登录错的的时候就跳到另一个页面要求重新登录。比如126和校内网都是这样做的。局限性在于不能总是跳转页面,一般只在第一次错误的时候跳转,但是第一次之后又可以继续暴力探测了。

(4)适当的延时

检查密码的时候适当的插入一些暂停,可以减缓攻击,但是可能对用户造成一定的影响。

(5)封锁多次登录的IP地址

这种方法也是有缺点的,因为攻击者可以定时更换自己的IP。

(6)验证码

刚才Mien Ng给我说了验证码的问题,本来打算在下次说的,既然提了,也感觉该在这里说一下比较好。验证码确实是阻止暴力攻击的好方法,但设计不好的验证码是可以绕过的,这里也不详细说。对于特定目标的手工探测来说验证码是没有作用的。


作者:玄魂 



本文转自悬魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/archive/2009/01/02/1366962.html,如需转载请自行联系原作者

相关文章
|
4天前
|
人工智能 前端开发 开发工具
NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践
.NET技术自2000年推出以来,在软件开发领域扮演着关键角色。本文从核心优势出发,探讨其统一多语言平台、强大工具集、跨平台能力及丰富生态系统的价值;随后介绍.NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践;最后分析性能优化、容器化、AI集成等方面的挑战与机遇,展望.NET技术的未来发展与潜力。
13 2
|
19天前
|
存储 JavaScript 安全
Web安全之XSS跨站脚本攻击
XSS(跨站脚本攻击)
49 7
|
21天前
|
安全 Unix Shell
web安全之命令执行
应用未对用户输入做严格得检查过滤,导致用户输入得参数被当成命令来执行。
37 4
|
23天前
|
存储 监控 安全
如何构建安全的Web应用程序:全方位指南
【7月更文挑战第28天】构建安全的Web应用程序是一个持续的过程,需要贯穿于整个应用程序的生命周期中。通过规划阶段的安全设计、开发阶段的安全措施实施、测试阶段的漏洞发现与修复以及部署与运维阶段的持续监控与维护,可以显著提高Web应用程序的安全性。希望本文的全方位指南能够为您在构建安全的Web应用程序方面提供有益的参考。
|
24天前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
【7月更文挑战第27天】在 Web 开发中,Python 面临着如 SQL 注入、XSS 和 CSRF 等安全威胁。
46 0
|
11天前
|
存储 移动开发 JavaScript
html5手机Web单页应用实践--起点移动阅读
html5手机Web单页应用实践--起点移动阅读
|
24天前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【7月更文挑战第27天】在 Web 开发中,安全漏洞如同暗礁,其中 SQL 注入、XSS 和 CSRF 尤为棘手。本文通过实战案例展示如何使用 Python 抵御这些威胁。
44 0
|
24天前
|
SQL 安全 数据库
守护Web世界的和平使者:Python Web安全基础,从认识SQL注入、XSS、CSRF开始!
【7月更文挑战第27天】在数字世界里,Web应用如星辰照亮信息交流,但也潜藏安全隐患:SQL注入、XSS与CSRF。SQL注入让攻击者操控数据库;通过参数化查询可防御。XSS允许执行恶意脚本;确保输出编码至关重要。CSRF诱骗用户发送恶意请求;使用CSRF令牌能有效防护。作为开发者,掌握Python Web安全基础,如Flask和Django的安全特性,能帮助我们守护这片数字天地的和平与繁荣。
25 0
|
19天前
|
开发框架 缓存 前端开发
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求
|
21天前
|
安全 IDE 编译器
深入理解PHP 7的新特性及其对现代Web开发的影响
【7月更文挑战第30天】本文将深入探索PHP 7版本中引入的关键新特性,并分析这些改进如何优化现代Web开发实践。通过对比PHP 5和PHP 7的性能差异,我们将揭示PHP 7如何提升应用响应速度和资源利用效率。此外,本文还将讨论PHP 7对开发者工作流程的影响,包括新的语言特性、错误处理机制以及内置函数的增强,旨在为读者提供全面了解PHP 7所带来的变革性影响。