博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web安全实践(12)密码探测
阅读量:6463 次
发布时间:2019-06-23

本文共 3324 字,大约阅读时间需要 11 分钟。

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

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

前言

(作者:玄魂)

 

接着上一篇的用户名枚举的话题接下来简单的探讨一下常见的密码探测。

园友Hunts.C昨天留言谈到了校内网,他说"就是个用户ID和邮箱,实际上这里的用户ID就是用户名的作用啊。 只不过它的登录是使用邮箱登录",其实校内网支持的登录方式为用户名登录和邮箱登陆两种方式,另外对每个用户都分配了唯一的IDHunts.C说的对,ID和用户名的作用是相同的,但是对于用户名枚举来说,ID是对用户名的隐藏,因为用ID是不能登陆的。

这一次要 说的内容比较少。

正文

12.1自动化密码探测

所谓自动化密码探测就是利用探测软件不断的向目标发出请求,根据响应来判断探测成功与否。

自动化探测一般有两种方式。 一是对同一用户名尝试不同的密码,二是对不同的用户尝试相同的密码。第二种方法更能有效的防止账户锁定。

对于用户名和密码生成有两种方式,一是使用既存的字典,二是程序根据使用者给定的用户名或密码组合规则不断生成。

对于自动化密码探测最大的障碍是验证码和人机区分测试(简单的问题)。

12.2社会工程学

"社会工程学"这个词我不知道是怎么产生的,一开始觉得叫行为心理学似乎更合适。后来才知道社会工程学其实就是间谍活动。

(1)推测法。根据相关信息,常见的如生日,姓名,电话号码,常用的数字组合(1213456等),字母组合,邮箱,父母的名字等等。

(2)欺骗。你可以根据他给你的QQ等信息,通过聊天逐步得到他的相关信息。

(3)利用客服。比如你可以冒充邮箱用户本人给客服打电话说密码丢失。以前听说QQ可以,前天园友告诉我yahoo的信箱也可以,真是不可思议。

(4)"社会工程"允许你以接近目标本人或他的家人,朋友的方式来获得你想要的信息,当然这个web攻击本身关系不紧密,但是却是黑客攻击的手段之一。

 

12.3 Post用户名,密码

目前也有很多现成的软件可供选择,用来破解web登录密码。关于工具的使用不是我们要讨论的重点,我们看一下它的工作原理。

下面是我登录校内网的时候一段POST数据(实际分析过程中应是全过程数据分析,这只是局部):

POST /Login.do HTTP/1.1

Host: login.xiaonei.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-cn,zh;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Referer: http://www.xiaonei.com/SysHome.do

Cookie: syshomeforreg=1; isnewreg=1; XNESSESSIONID=abc_7S1cRa2rw8aernG6r; ick=abc_7S1cRa2rw8aernG6rheifer.xiaonei.com; __utma=204579609.1392121359.1231048483.1231048483.1231048483.1; __utmb=204579609; __utmc=204579609; __utmz=204579609.1231048483.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none); _de=8EAD38BFFD04FDBE; userid=201573034; univid=5426; gender=1; univyear=2005; hostid=201573034; BIGipServerpool_profile=3737916938.20480.0000; xn_app_histo_201573034=6-35-17954-4-8-16555-12012-3-2-13496-19; mop_uniq_ckid=123.189.16.137_1231047874_1991448146

Content-Type: application/x-www-form-urlencoded

Content-Length: 83

email=xuanhun&password=xuanhun521&origURL=http%3A%2F%2Fwww.xiaonei.com%2FSysHome.do

这是一个常规的Post请求数据段,最后的部分传送的是用户名和密码,这些数据在网络上传输的时候应该是被加密的,因为采用了https连接。暴力探测也就是不断的向目标服务器发送类似的请求,根据响应来判断是否成功。

12.4关于程序设计

具体的暴力破解程序的设计不是几句话就能说清楚的,希望有机会把具体的程序展示出来。

下面是一段自动登录的代码,展示了暴力破解的一个横断面。具体可参HttpWebRequest和HttpWebResponse的相关介绍。

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetURL);

request.Method = "POST"; //post

 

request.ContentType = "application/x-www-form-urlencoded";

request.ContentLength = data.Length;

request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 2.0.1124)";

Stream newStream = request.GetRequestStream();

newStream.Write(data, 0, data.Length);

newStream.Close();

request.CookieContainer = cc;

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

cc.Add(response.Cookies);

Stream stream = response.GetResponseStream();

string result = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();

return result;

如果你理解了如何发送登录信息,那么再结合多线程和字典攻击就可以写出自己的web密码探测工具了。

当然我们没处理验证码的情形,如果它的验证码存储在cookie中或者隐藏字段中那是十分可笑的事情,我们可以直接用程序读取。验证码一般存储在服务器端,一般我们可以将随机生成的验证码的内容放入Session中,用户提交的时候将提交的内容与Session中的验证码进行比较判断。关于验证码的具体内容我想在后面的绕过验证一节中继续讨论。

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

你可能感兴趣的文章
Samba日志分析
查看>>
【Android 基础】Android中全屏或者取消标题栏
查看>>
R语言学习笔记:分析学生的考试成绩
查看>>
uploadfy 常见问题收集
查看>>
[转]OllyDBG 入门系列(三)-函数参考
查看>>
EXTJS学习系列提高篇:第二十篇(转载)作者殷良胜,ext2.2打造全新功能grid系列--批量删除篇...
查看>>
Gradle动态配置项目
查看>>
VUE2.0从零开始 学习路线
查看>>
Slog61_NodejsGUI之Electron模块的安装和测试
查看>>
phoneGap iOS插件开发(二)插件自动安装配置
查看>>
撩课大前端-面试宝典-第十五篇
查看>>
Kitty猫 vs. 百度狗,区块链动物大战,谁将下一个入局?
查看>>
程序员如何让自己 Be Cloud Native - 配置篇
查看>>
快速入门PyTorch(3)--训练一个图片分类器和多 GPUs 训练
查看>>
Python 深copy和浅copy
查看>>
Linux环境下的vim编译器的相关配置
查看>>
字符串及使用方法修改字符串的大小写
查看>>
安装sql 2008 r2(工作组下)
查看>>
【转】铁道部关于火车票电话订票、网络购票及预售期调整的最新通知(注释版)...
查看>>
Redis安装部署
查看>>