[工具-006] C#如何模拟发包登录
最近接到一个任务,就是模拟某个贴吧的登录发帖功能,我的思路是通过IE浏览器的工具对登陆操作进行抓包,记录登录时候请求的URL,请求方式,请求正文等信息进行模拟的发包。
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团队】 原文链接: http://www.cnblogs.com/superdo/p/4625511.html
[工具-006] C#如何模拟发包登录的更多相关文章
- QQ模拟自动登录实现
QQ模拟自动登录实现 本篇文章主要介绍"QQ模拟自动登录实现(带验证码)",主要涉及到java 实现QQ自动登录(带验证码)方面的内容,对于java 实现QQ自动登录(带验证码)感 ...
- cookielib和urllib2模块相结合模拟网站登录
1.cookielib模块 cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源.例如可以利用 本模块的CookieJar类的对 ...
- POST模拟百度登录和自动发帖
这里用HttpClient发包模拟百度登录和发帖,验证码部分采用机器下载人工识别. 登陆百度的原理:1. 访问https://passport.baidu.com/v2/api/?getapi& ...
- jdbc封装模拟用户登录
dao层 接口 package com.qu.dao; public interface ILoginDAO { /** * 模拟用户登录 * 验证用户名 密码是否正确 * select * from ...
- C#使用HttpWebRequest与HttpWebResponse模拟用户登录
模拟艺龙旅游网登录 想模拟登录,首先整理一下流程 1.通过360浏览器(IE,火狐等等)F12开发人员工具抓到相关数据 2.获取验证码(拿到cookie),登录时也需要使用 3.登录 -------- ...
- 利用Python模拟GitHub登录
最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fiddler抓包分析 首先,我们想要模拟一 ...
- python爬虫--模拟12306登录
模拟12306登录 超级鹰: #!/usr/bin/env python # coding:utf-8 import requests from hashlib import md5 class Ch ...
- 运用String类实现一个模拟用户登录程序
package Test; import java.util.Scanner; // 模拟用户登录程序 // 思路: // 1.用两个String类分别接收用户名和密码 // 2.判断输入的用户名和密 ...
- java.net.URL 模拟用户登录网页并维持session
java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStream ...
随机推荐
- RocketMQ搭建全过程
RocketMQ下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.3.0/rocketmq-all-4.3.0-bin-relea ...
- Java并发编程实战 03互斥锁 解决原子性问题
文章系列 Java并发编程实战 01并发编程的Bug源头 Java并发编程实战 02Java如何解决可见性和有序性问题 摘要 在上一篇文章02Java如何解决可见性和有序性问题当中,我们解决了可见性和 ...
- Java种sleep和wait的区别
1,sleep方法是Thread类的静态方法,wait()是Object超类的成员方法 2,sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时 ...
- Linux下3种常用的网络测速工具
大家好,我是良许. 不管你用的是什么操作系统,网速都是你非常关心的一个性能指标,毕竟,谁都不想看个视频结果网速卡到你怀疑人生.本文介绍三个 Linux 命令行下的网络测速工具,让你随时随地知道你的网络 ...
- Programmatically add an application to Windows Firewall
Programmatically add an application to Windows Firewall 回答1 Not sure if this is the best way, but ...
- 【Linux基础总结】Linux基本命令
Linux基本命令 Linux系统下的文件类型.权限.所属用户与组 文件类型 - (文件) d(目录) ->类似windows系统下的文件夹 l (链接) ->类似windows系统下的快 ...
- VA01信贷使用
1业务场景 业务在正式机中发现,当使用VA01输入客户编号回车后会报错 2解决方法 1. SE24进入CL_IM_UKM_SD_FSCM_INTEGR1 2. 双击方法IF_EX_BADI_SD_CM ...
- [hdu5593 ZYB's Tree] 树上统计
题意:给1棵N(≤500,000)个节点的树,每条边边权为1,求距离每个点距离不超过K(K≤10)的点的个数的xor和. 思路:由于K很小,可以考虑把距离作为状态的一部分,然后研究父子之间状态的联系. ...
- [coj 1353 Guessing the Number]kmp,字符串最小表示法
题意:给一个字符串,求它的最小子串,使得原串是通过它重复得到的字符串的一个子串. 思路:先求最小长度,最小循环长度可以利用kmp的next数组快速得到,求出长度后然后利用字符串最小表示法求循环节的最小 ...
- Java设计模式之建造者模式(Builder Pattern)
前言 这篇文章主要向大家讲解什么是建造者模式,建造者模式的实例讲解及应用场景等知识点. 一.建造者介绍 用户可以不知道产品的构建细节直接可以创建复杂的对象,主要是分离了产品的构建和装配,这样就实现 ...