開啟電腦,無線網每次連線校園網(i-nuist)的時候都會跳出乙個認證介面,認證完才能上網,我的電腦有時候還抽風跳不出來這個網頁,於是我就想做個登陸的指令碼,連線上無線網直接手動雙擊登陸就好了。
工具:
1.python3.6過程:我試了幾下登陸,發現那就是個post過程。2.requests模組 和 base64模組
3.google chrome瀏覽器
開啟谷歌瀏覽器
輸入**:
輸入校園網賬號密碼,按下f12開始抓包咯。。
就抓到了一條post包,還是jquery的。。。。
既然是post的包,當然要看它傳的data了。。
傳送的資料:
post最關鍵的就是data包了,這個包也就password是加密的,其他還好,接下來就搞一下這個加密吧。。
先看一下它的長度,8位的,猜了乙個md5加密,試了一下,發現不是。。
接下來怎麼辦呢。。。。
只能從他的js裡面找它的加密方法,當然不是一行一行的分析它的原始碼,這樣會累死的
開啟f12裡面的search,尋找關鍵字password
很明顯是在login.js裡面
於是,開啟這個檔案,找啊找啊(此處省略過程),發現了點頭緒。
還好我暑假看過一點jquery的基礎,看得懂他的ajax 跨域請求
看他的data項,找到了base64的加密,然後後面測試了一下也是正確的。
post請求的data應該可以構造了。
接下來看看,它要不要加什麼協議頭 ,cookie什麼的。。。
檢視它的 請求頭
其他都好構造,好像需要cookie
看了一下這兩個cookie,應該是進入網頁的時候生成的。
所以這個模擬登陸的正確流程應該是
開啟網頁 a.nuist.edu.cn 獲得cookie
向 a.nuist.edu.cn/index.php/index/login 攜帶cookie傳送post請求
我試了試,好像直接post 是可以的,不需要獲取cookie,我想多了。
傳送post後 他會返回乙個json格式的資訊,來告知你是否登陸成功
接下來是python**
登陸函式:
需要requests 模組 和 base64模組
def login(username='賬號',password='密碼',domain='unicom'): #要輸入賬號密碼啊。。。
password = base64.b64encode(password.encode()).decode() #base64加密。。
url="/index.php/index/login"
dv=try: #用try來防止未知錯誤。
r = requests.post(url,data=dv) #傳送post
r.raise_for_status() #錯誤丟擲異常
return r.json() 返回json格式的資料
except:
print('error')
完整**:
import requests #導入庫
import base64
def login(username='賬號',password='密碼',domain='unicom'): #要輸入賬號密碼啊。。。
password = base64.b64encode(password.encode()).decode() #base64加密。。
url="/index.php/index/login"
dv=try: #用try來防止未知錯誤。
r = requests.post(url,data=dv) #傳送post
r.raise_for_status() #錯誤丟擲異常
return r.json() 返回json格式的資料
except:
print('error')
#下面輸入你的賬號密碼,運營商:移動cmcc 聯通unicom 電信chinanet
dic=login('你的賬號','密碼','運營商')
for i in list(dic.keys()):
if dic[i]:
print(i+":"+str(dic[i])) #輸出登陸資訊,成功與否
input()
登出的**也放上來:
比較簡單
import requests
def logout():
url = '/index.php/index/logout'
try:
r = requests.post(url,timeout=30)
r.raise_for_status()
return r.json()['info']
except:
print('error')
#def main():
print(logout())
input()
此外,如果你不想連線上無線網就彈出登陸網頁的話,那就要手動修改一下登錄檔了。
開啟登錄檔
hkey_local_machine\system\currentcontrolset\services\nlasvc\parameters\internet 中enableactiveprobing 調成0就行了
校園網試煉 登出
今天就是小雪了,淮河以北已經開始降溫,宿舍6個人的熱氣加上暖氣,實在是不能再舒服,宿舍裡頭穿一件,出宿舍門穿兩件,出宿舍樓穿羽絨服,出學校 哦不這學期學校都不會解封。回到正題,在校園網不收錢的時候就已經嘗試過對校園網自動登入 佔線 登出等功能。用python實現起來也簡單,簡單的指令碼無非就是發包。...
校園網資訊收集
訪問連線 仔細觀察url wlanuserip 10.133.243.201 使用者的ip,連線校園網後會通過dhcp分配乙個ip位址 在我們登入之後的時候再次觀察url 注 返回2.htm是認證失敗 返回3.htm是認證成功 wlanuserip 10.133.243.201 wlanacname...
校園網arp病毒防範
學校裡arp欺騙很嚴重,網路中心貼出了幾個解決方法,其中乙個如下 解決辦法 1 在dos介面下輸入 arp d 清除本機的arp表,arp表被清除後系統會自動重建新的arp表,獲取到正確閘道器後重新嘗試上網,arp d 命令並不能抵禦arp欺騙。2 開機自動繫結閘道器 新建記事本檔案,內容如下 以四...