[工具-006] C#如何模拟发包登录
2015-07-06 21:45
771 查看
最近接到一个任务,就是模拟某个贴吧的登录发帖功能,我的思路是通过IE浏览器的工具对登陆操作进行抓包,记录登录时候请求的URL,请求方式,请求正文等信息进行模拟的发包。
1.首先我们要到登陆页面,以摇篮网为例子,用IE打开。http://user.yaolan.com/Login.aspx,我们按F12,然后选择网络,点击三角形进行开始监控,然后我们在登陆页面开始操作。接着我们就可以获得到下图的信息。
2.我们抓取到登录的链接,然后点击详细信息,我们可以得到下图
3.有了标头,我们也需要请求的正文
4.根据以上的信息,我们可以进行编码实现模拟发包
根据以上几步,我们就可以轻松模拟论坛登陆了,其实发帖也是一个道理,就是要填充cookie
结语
受益,掌握了模拟发包
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: /article/6669106.html
1.首先我们要到登陆页面,以摇篮网为例子,用IE打开。http://user.yaolan.com/Login.aspx,我们按F12,然后选择网络,点击三角形进行开始监控,然后我们在登陆页面开始操作。接着我们就可以获得到下图的信息。
2.我们抓取到登录的链接,然后点击详细信息,我们可以得到下图
3.有了标头,我们也需要请求的正文
4.根据以上的信息,我们可以进行编码实现模拟发包
/// <summary> /// 自动登录 /// </summary> public static bool MaliciousLogin( string username, string password) { // 线程停止,放置切换账号导致错误 System.Threading.Thread.Sleep(5000); // 登陆的URL string loginUrl = LOGIN_URL; // 是否登陆成功 bool result = false; // 返回的HTML string responseHTML = string.Empty; // post的正文 string loginstr = string.Format("__EVENTTARGET=btnLogin&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUJNDQ0NjMxMDM4DxYCHgx1cmxfcmVmZXJyZXIoKVVTeXN0ZW0uVXJpLCBTeXN0ZW0sIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5Fmh0dHA6Ly93d3cueWFvbGFuLmNvbS9kGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQtjaGtSZW1lbWJlcv8bMzMumb%2FnRN0yh9bsCJyzxPq8&__EVENTVALIDATION=%2FwEWBQKuscygCwKl1bKzCQK1qbSRCwLR55GJDgKC3IeGDP1i0PaxIyWOZCrxXwv1DyNWzvS5&txtUserName={0}&txtPassword={1}", username, Util.GetMd5Str(password)); // 转成指定的UTF-8编码 byte[] replybyte = Encoding.UTF8.GetBytes(loginstr); try { // 空的cookie m_Cookie = new CookieContainer(); // 创建request HTTPRequest = (HttpWebRequest)WebRequest.Create(loginUrl); HTTPRequest.CookieContainer = m_Cookie; HTTPRequest.ContentType = "application/x-www-form-urlencoded"; HTTPRequest.Method = "POST"; //post 开始 HTTPRequest.ContentLength = replybyte.Length; Stream newStream = HTTPRequest.GetRequestStream(); newStream.Write(replybyte, 0, replybyte.Length); newStream.Close(); //post 结束 //返回HTML HTTPResponse = (HttpWebResponse)HTTPRequest.GetResponse(); Stream dataStream = HTTPResponse.GetResponseStream(); StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("utf-8")); responseHTML = reader.ReadToEnd(); loginCookie = HTTPRequest.CookieContainer.GetCookies(new Uri(HOMEPAGEURL)); m_Cookie = HTTPRequest.CookieContainer; if (!String.IsNullOrEmpty(loginCookie["user_name"].ToString())) { result = true; } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } return result; }
根据以上几步,我们就可以轻松模拟论坛登陆了,其实发帖也是一个道理,就是要填充cookie
结语
受益,掌握了模拟发包
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: /article/6669106.html
相关文章推荐
- 学习笔记--委托,Lambda表达式和事件(1)
- C#第六次作业 猜猜看游戏
- C# WinForm开发系列 - ADO.NET
- C#高级编程三十七天----结构比较
- 【c#第7次作业】学习体会
- .NET C# 创建WebService服务简单的例子
- C#基础总结
- C#接口实例详解
- C#高级编程三十六天----元组
- C#学习笔记(五):泛型
- 多目标进化问题,根据PCI进行小区的聚类,Kmeans算法的改进:二次聚类
- C# WebProxy POST 或者 GET
- C#基础学习第二天(.net菜鸟的成长之路-零基础到精通)
- C#高级编程三十五天----foreach和yield
- C# 重命名文件 (正宗的方法)
- C# VS 2010创建、安装、调试 Windows服务(Windows Service)
- c# 导出Excel
- C#生成DLL文件的方法
- C#实现TIF图像转PDF文件的方法
- C#文件分割的方法