聯通校園寬帶簡介
通常情況下在學校聯通營業廳即可辦理,帶寬不同價格不同(30/40/50元分別對應2/4/10M帶寬,很多學校已經免費提速5倍,即相同的價格可以享受10/20/50M帶寬。)辦理時會給你開戶,並告知使用方法(有的學校會有人來安裝,有的學校是直接把網線插入宿舍網口就可以了),無線的話,需要自行購買無線路由器。
客戶端
開戶時聯通會給一個賬號密碼,上網必須使用聯通提供的客戶端,手機想上網也得用客戶端,且一個賬號最多只能登錄一台電腦和一部手機。客戶端會檢測電腦是否共享上網,檢測到共享的話會強制斷網。聯通這么做是為了杜絕寬帶共享使用,至於原因大家都懂。
解除限制
有人嘗試直接使用系統自帶的PPPoE撥號卻提示691,很明顯,聯通對賬號密碼進行了加密,給的賬號密碼還要經過特殊的算法加密以后才能使用。聯通客戶端會把用戶輸入的賬號密碼,通過他的算法加密后的再傳送到聯通,從而撥號成功。因此,如果我們想直接使用系統自帶的PPPoE撥號,就必須知道真實的賬號密碼,3.3版本的客戶端使用的是靜態加密,即賬號后+@wo201,密碼前+\001(\001指的是ASCII編碼為1的字符,代號為SOH,不可顯示),聯通肯定是發現了靜態密碼的弊端,所以在2017年暑假期間,對客戶端進行了升級,升級后的版本是3.7,更換了新的加密方式,所以只能重新分析客戶端。直接使用Fiddler2和Whireshark進行抓包(其他抓包工具亦可),發現客戶端每次撥號前都會發出一個Get請求,得到一個json格式的數據,請求地址是http://114.247.41.50:9343/aaa/get/pin?user=賬號,得到的內容中大致兩個內容:msg應該是請求狀態,成功顯示ok(沒遇到失敗的情況,所以不知道失敗的代碼是啥);pin是一個隨機數(每次請求都不相同,間隔時間在10秒以內可能相同)。同時發現Whireshark抓到一個PPPoE數據包。紅色位置是賬號,塗掉了~
Peer-ID就是PPPoE撥號的賬號了,和3.3版本的一樣,賬號后+@wo201
Password自然就是PPPoE撥號的密碼了,前邊一串內容和之前Fiddler2發出Get請求后得到的pin是一致的,所以可以發現密碼的算法換成了動態密碼,即pin值+密碼(好像也不能算是加密……)
知道了加密方式就可以自己用系統自帶的PPPoE進行撥號了,由於pin值最多10秒就會發生變化,變化后密碼自然就不對了,所以要拼手速,更穩妥的辦法就是寫一個軟件,代替聯通客戶端發送Get請求,解析json,得到pin,然后創建PPPoE連接進行撥號,本人的編程能力實在是菜(什么JAVA、C++完全不會)……只會用易語言,附上易語言寫的關鍵部分代碼,只能靠自己轉換為其他語言了。
我沒有直接給出成品,一方面是易語言寫的程序報毒很普遍,為了避免不必要的誤會,所以沒有直接給出編譯好的程序。另一方面我覺得授人以魚不如授人以漁,所以介紹了下分析的過程和方法,畢竟畢業以后就沒有這種環境進行測試了。一旦聯通再次更改加密方式,又會失效。