與網(wǎng)上大多數(shù)關(guān)于這套教務(wù)管理系統(tǒng)的登錄一樣,通過(guò)查看網(wǎng)頁(yè)的源文件可以發(fā)現(xiàn)在點(diǎn)擊登錄按鈕的時(shí)候會(huì)分別對(duì)驗(yàn)證碼和密碼各進(jìn)行一次加密
其加密函數(shù)為:
function chkpwd(obj)
{
? ? ? if(schoolcode != \"10203\")
? ? ? ? ? ? ? {if (obj.value != '')
? ? ? ? ? ? ? ? ? ? {var s = md5(document.getElementById(\"txt_asmcdefsddsd\").value +md5(obj.value).substring(0, 30).toUpperCase() + schoolcode).substring(0,30).toUpperCase();document.getElementById(\"dsdsdsdsdxcxdfgfg\").value = s;
? ? ? ? ? ? ? ? ? ? }else { document.getElementById(\"dsdsdsdsdxcxdfgfg\").value =obj.value; }
? ? ? ? ? ? ? }
? ? ? ? ? ? ? else
? ? ? ? ? ? ? {
? ? ? ? ? ? ? document.all.dsdsdsdsdxcxdfgfg.value= obj.value;
? ? ? ? ? ? ? }
}
主要流程
1.對(duì)obj的值計(jì)算md5取前30位全部轉(zhuǎn)換為大寫
2. txt_asmcdefsddsd(學(xué)號(hào))的值加上上一步的值加上schoolcode再次計(jì)算md5
3.取前30位并全部轉(zhuǎn)換為大寫
4.賦值給dsdsdsdsdxcxdfgfg
和
function chkyzm(obj)
{ showvc(); if (schoolcode !=\"10203\")
? ? ? if(obj.value != '')
? ? ? {var s = md5(md5(obj.value.toUpperCase()).substring(0, 30).toUpperCase() +schoolcode).substring(0, 30).toUpperCase();document.getElementById(\"fgfggfdgtyuuyyuuckjg\").value = s; }
? ? ? else
? ? ? {? ? ? document.getElementById(\"fgfggfdgtyuuyyuuckjg\").value =obj.value.toUpperCase();
? ? ? }
}
else
{document.all.fgfggfdgtyuuyyuuckjg.value = obj.value.toUpperCase();
}
主要流程:
1,把obj的值全部變?yōu)榇髮懖⒂?jì)算md5,取前30位
2,再次全部轉(zhuǎn)換為大寫并加上schoolcode再次計(jì)算md5并取前30位
3,最后再次全部轉(zhuǎn)換為大寫
4.賦值給fgfggfdgtyuuyyuuckjg
其中的schoolcode為學(xué)校代碼
但是在搞定這兩個(gè)加密以后我卻發(fā)現(xiàn)了一點(diǎn)不一樣的東西
登錄后直接get訪問(wèn)地址即可獲得成績(jī)圖片
http://jwc.xxxxx.cn/xscj/Stu_MyScore_Drawimg.aspx?x=1&h=2&w=930&xnxq=20181&xn=2018&xq=1&rpt=0&rad=2&zfx=0
地址中的x參數(shù)和h參數(shù)更改以后并不會(huì)改變結(jié)果霜运,其中rpt為0時(shí)表示原始成績(jī)弦赖,為1時(shí)表示有效成績(jī)
但是在實(shí)際進(jìn)行post登錄的時(shí)候
需附加協(xié)議頭及cookies,其中cookies為了傳遞ASP.NET_SessionId,若SessionId錯(cuò)誤仔雷,則會(huì)返回權(quán)限錯(cuò)誤水醋,重新登陸
登錄時(shí)post的表單中的dsdsdsdsdxcxdfgfg和fgfggfdgtyuuyyuuckjg分別為密碼及驗(yàn)證碼的加密值
這個(gè)并不是絕對(duì)的,不同的學(xué)校不同的網(wǎng)站設(shè)置的可能都不一樣,這里你要根據(jù)自己的網(wǎng)站的源文件進(jìn)行具體的判斷
驗(yàn)證碼以及密碼經(jīng)加密后結(jié)果均正確,但是未發(fā)現(xiàn)其他疑似作為已登錄證據(jù)的值
并且,不同的瀏覽器獲取到的SessionID值不同,目前懷疑為已登錄的SessionID作為cookie即可正常獲取數(shù)據(jù)(經(jīng)登錄后的SessionID可以直接通過(guò)get獲取成績(jī)圖片)
實(shí)驗(yàn)表明登錄成功的SessionID才可以進(jìn)行獲取成績(jī)等下一步操作
最后的最后,明明已經(jīng)進(jìn)行了各種加密以及函數(shù)傳遞但是卻不知道為什么post登錄卻還是失敗了,同樣的環(huán)境和同樣的SessionID在瀏覽器中點(diǎn)擊登錄和自己手動(dòng)post的返回結(jié)果卻不一樣
最后經(jīng)過(guò)數(shù)次試驗(yàn)證明SessionID的確是識(shí)別用戶的憑證,且是唯一憑證.而關(guān)于登錄失敗的問(wèn)題也并非是編碼原因而是驗(yàn)證碼錯(cuò)誤.具體的登錄后續(xù)請(qǐng)看下文