程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> 遠程登錄正方教務系統(繞過驗證碼篇)

遠程登錄正方教務系統(繞過驗證碼篇)

編輯:PHP基礎知識
 

我都不想說什麼,我研究了半年的驗證碼識別,最後發現,原來正方教務系統登錄方式可以繞過驗證碼,,簡直吐血

開始打算做一個采集教務系統成績和課表的功能,但驗證碼成了攔路虎。

我“機智”用獲取驗證碼,然後cookies記錄驗證碼,再跟正方服務器對比來完成驗證碼登錄,,最後發現這步可以直接跳過去。

正方有一個功能:後台開啟驗證碼,就是他的驗證碼功能是可選的。說不白了,就是你不請求服務器就不會生成驗證碼。

然後,你只需要幾行代碼就是完成遠程登錄教務系統,主要隱藏域


public function login(){
$url = C('School_url')."default2.aspx";
$post['__VIEWSTATE'] = 'dDwyODE2NTM0OTg7Oz69gdYBizSXHwj9xCoAQeszC5eGfw==';
$post['__VIEWSTATEGENERATOR'] = '92719903';
$post['txtUserName'] = '學號';
$post['TextBox2'] = '密碼';
$post['txtSecretCode'] = '';
$post['lbLanguage'] = '';
$post['RadioButtonList1'] = iconv('utf-8', 'gb2312', '學生');
$post['Button1'] = iconv('utf-8', 'gb2312', '登錄');
$result = $this->curl_Login($url,$post);
print_r($result);
return $result;
}

然後是CURL請求的代碼,,記得cookies這個東西是必須要有的,PHP開啟的curl跟游覽器不是一個進程,不共用cookies

所以要用CURL的抓取cookies的方法


curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //在CURL請求中發送cookies值

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //在CURL請求中,把head頭的cooked存入到指定的文件中

使用這兩個方法就能操作curl中的cookies。

然後,,你就會發現,你沒有輸入驗證碼通過學號和密碼就已經登錄到教務系統了。然後怎麼回去成績和課表呢?

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved