用php的CURL模拟登录正方教务系统

作者:Matrix 被围观: 8,982 次 发布时间:2014-05-12 分类:零零星星 | 20 条评论 »

NOTICE:这是一个创建于 938 天前的主题,其中的信息可能已经有所发展或是发生改变。

学校用的是正方教务系统,这玩意做的太恶心了。

php模拟登录前进行fiddler软件抓包。

每个学校的正方教务系统略有不同,这里仅仅是个样本。
fiddler抓包

根据抓包结果找到提交所需的post数据

__VIEWSTATE=内容&tbYHM=内容&tbPSW=内容&ddlSF=%D1%A7%C9%FA&imgDL.x=39&imgDL.y=13
说明:第一个内容是登录页面里找到的,第二、三个内容是用户名和密码

判断是否登录成功

成功登录后页面会302跳转到/xsmainfs.aspx?xh=XXX的URL

php代码参考:

  1. <?php
  2. $url = '';//正方教务系统登录地址
  3. $ID = ''
  4. $PA = '';
  5. $cookieid = Get_SessionId($url);//获取登录页面的会话ID
  6. /*
  7.  is_login()函数判断是否登录成功
  8. */
  9.     function is_login()
  10.     {
  11.         global $url,$ID,$PA,$cookieid;
  12.         preg_match('#value="([^"]+)"#', curl_get($url), $vi);
  13.         $p = '__VIEWSTATE=' . urlencode($vi[1]) . '&tbYHM=' . $ID . '&tbPSW=' . $PA . '&ddlSF=%D1%A7%C9%FA&imgDL.x=39&imgDL.y=13'; //默认学生
  14.         $co = curl_get($url, $p, 0, 0, 0, array('Cookie: ASP.NET_SessionId=' . $cookieid));
  15.         //curl_get('地址/xsleft.aspx?flag=grxx',  array('Cookie: ASP.NET_SessionId=' . $cookieid)); //获取基本信息以前必须访问这个地址
  16.         return strpos($co, "/xsmainfs.aspx?xh=" . $ID)? true : false ;
  17.     }
  18.     function curl_get($url$add_arry_header = 0)
  19.     {
  20.         $ch = curl_init($url);
  21.         curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16'));
  22.         if ($add_arry_header)
  23.         {
  24.             curl_setopt($ch, CURLOPT_HTTPHEADER, $add_arry_header);
  25.         }
  26.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  27.         $get_url = curl_exec($ch);
  28.         curl_close($ch);
  29.         return $get_url;
  30.     }
  31. function Get_SessionId($u// 获取aspx的会话ID
  32.     {
  33.         $a = get_headers($u);
  34.         $a = str_replace(array(';', ':'), '&', $a[6]);
  35.         parse_str($a$aa);
  36.         return $aa['ASP_NET_SessionId'] ;
  37.     }
  38. ?>

说明:代码不完全可用,只是参考,记录。

ps:

正方教务系统的登录地址还有default4.aspx的精简登录框,模拟这个的话应该更简单。

 

 

本文固定链接:http://www.hhtjim.com/login-using-php-curl-simulation-for-educational-administration-system.html
Matrix
本文章由 Matrix 于2014年05月12日发布在零零星星分类下,目前没有通告,你可以至底部留下评论。
转载请注明:用php的CURL模拟登录正方教务系统-HHTjim'S 部落格
关键字:, ,

有20 条评论 »

  1. cjoke cjoke 2015-4-12 22:23:28 +0800#10

    只能跳转到修改密码的界面,到课表那里就出现object moved to here 而且我们学校的正方不需要cookie 求破

    • Matrix Matrix Moderator 2015-4-13 20:02:44 +0800

      只能祝你好运了~ 我已经不需要再看正方教务系统了。。。

  2. HW HW 2014-8-25 23:06:35 +0800#9

    现在弄好了,万分感谢,

    • Caryl Caryl 2014-10-15 1:25:39 +0800

      请问下你是如何解决Object moved to here.的问题的,我也卡在这里了,希望你可以联系下我Q43459635

  3. HW HW 2014-8-24 20:12:26 +0800#8

    对php不太懂,,自己琢磨登陆成功了,可不会跳转到/xsmainfs.aspx?xh=***,重定向Object moved to here.,查了下,here的地址是127.0.0.1/登录后跳转的地址,求解决方法,可以不让他跳吗,既然成功了,自已指定个页面访问不就行了?我试了下,还是不行,求大神指导,

    • Matrix Matrix Moderator 2014-8-25 13:14:21 +0800

      版本不同他跳转的也不一样吧,php模拟的话主要是用验证成功后的cookies访问页面,也就能达到效果

  4. hw hw 2014-8-21 20:15:22 +0800#7

    求帮助,我学校和你的一样,模拟登陆空白,求解决

    • Matrix Matrix Moderator 2014-8-24 12:41:28 +0800

      我们学校的改版了需要输入验证码登录,方法都是一样的,用fiddler嗅探。

  5. 小菜 小菜 2014-5-23 0:41:58 +0800#6

    我们学校不是方正的,有些限定要校内IP才能登入

    • Matrix Matrix Moderator 2014-5-23 10:29:49 +0800

      的确,不过我们学校开了外网

  6. 创意驴 创意驴 2014-5-22 12:44:55 +0800#5

    正想知道 curl

  7. qq小清新头像 qq小清新头像 2014-5-14 16:31:24 +0800#4

    关注下,我的wordpress都呗报告有漏洞了-

    • Matrix Matrix Moderator 2014-5-14 22:28:49 +0800

      有详细报告的吧,里面应该有解决办法

  8. 西门 西门 2014-5-12 20:43:29 +0800#3

    网页错位了。。。

    • Matrix Matrix Moderator 2014-5-12 21:01:13 +0800

      求截图,我改改。
      我这里没看到错位的啊,chrome版本 34.0

  9. xilouqingzhu xilouqingzhu 2014-5-12 16:52:32 +0800#2

    学院暴露了

  10. 不认识 不认识 2014-5-12 16:36:02 +0800#1

    好多高校用的都是他家的管理系统……
    蛋疼得很。。。

    • Matrix Matrix Moderator 2014-5-12 16:40:03 +0800

      😆 的确很蛋疼

添加新评论 »

 😛 Sad 忧伤 👿 Smile 笑脸 😳 😀 😯 😮 😕 😎 😆 😡 😈 Roll Eyes 转眼珠 😉 💡 😐 😥 Mr Green 绿脸先生

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!