跳至主要内容

在臺中科技大學學生系統快速登記工讀時數

最近有用到學校工讀生的時數登記系統登錄自己的工讀時數,今天要用的網站在 eportal 登入後的學生管理系統>外部連結 - 其他服務>工讀金申請 這個網站,點進去是長這樣的...

nutc StudentAffair website(FireFox)

nutc StudentAffair website (Chrome)

啊這個網站沒有 https 所以瀏覽器跳出警告了,想當然我的工讀時數用明文傳輸絕對不會怎樣,就按繼續吧!

選擇課指組的工讀作業>工讀紀錄表每日登錄作業

select working-log

接著會跳出這個規則要你讀,這幾項都蠻重要的,尤其是那個必須以小時為單位的規則,登記的時候一定要湊成整點或多一點。要是登記開始和結束時間只有間隔 59 分鐘,系統會當成你沒做。讀懂規則後點選下面的工讀金申請按鈕。

working-log-notice

這就是這個工讀金登入系統的本體了,我們要根據實際狀況把工作的開始和結束時間輸入進對應的日期,操作起來非常「直覺」,就是用下拉選單選開始和結束時間,但設計系統的人看起來是把可選項用小時(7點~22 點)和一小時的 60 個數字用卡式積生成,一小時就產生了 60 個選項,我都在下午工讀我的滾輪怕不是要壞掉,這太可怕了。於是我默默打開了 burp suite ,我合理推斷都用表格這樣生成的話大概只是一直重複把當天的工讀時間和結束時間塞在 post 傳給後端, payload 格式絕對不會很複雜……。 log table

正式操作

用 burp suite 打開 proxy 瀏覽器到輸入時數的系統開啟 intercept 攔截請求,我先隨便編輯某一欄滑到底除存工讀紀錄表的編輯

burp suite open browser

攔截到的 POST 請求有很多條的 StartTime 和 EndTime ,推測後面的 AX 的數字就是幾號的日期,一開始從 Func 到 ApplyType 基本上可以不用動,原本長什麼樣子就維持原狀,也不用抄我的,每個人的應該會有些微的不同,對我們來說比較重要的是 WorkYM 這個欄位,這是要輸入的時數所在的年和月份,每個月都不一樣,要把輸入 113 年 12 月的工讀時數就要寫 11312,依此類推。

look post payload

一天可以輸入兩個時段,分別紀錄開始和結束時間和一筆文字註記,每個參數用 & 隔開,假設我在這個月 3 號早上 9 點 10 分~ 10 點和下午 3 點~4 點工讀,那 3 號的欄位就要這樣寫:

&StartTimeA3=0910&EndTimeA3=1000
&StartTimeB3=1500&EndTimeB3=1600&Comment3=

但如果只有做 50 分鐘得灌點水讓他湊滿 1 小時登記進去,否則系統除法取整數會當 0 小時來看,登了等於沒登。

注意事項

雖然用了 burp suite 跳過糟糕的前端直接輸入時間戳,但是系統的後端邏輯沒有壞,如果輸入的時間你的課表有課或是連續做太久違反勞基法,最後還是沒辦法把時間存進去的,網頁會跳 alert 叫你把時間改掉。

如果今天是 12/15 那 A16 之後的欄位不要貼進請求標頭或維持 0 ,我們是好駭客不是時空旅人,可以輸進去但重整後會消失,我試過了。

總結手 key 時間的準則:

  • 工讀時間不能和課表重疊
  • 盡量讓時間紀錄以小時為單位
  • 不要輸入未來的時數
  • 工作 4 小時要休息 30 分鐘否則會違反勞基法不能登錄,這也是給你輸入兩個時段的原因
  • 每天只能做 8 小時,多一分鐘也不行。這也是勞基法規定的

我把時間的參數整理出來了,以後可以直接把開始時間的 0 替換成真正的時間貼進去網頁請求標頭。我是把這串文字放進文字編輯器改,等到月底的時候再把整串貼進去改標頭儲存。

&StartTimeA1=0&EndTimeA1=0
&StartTimeB1=0&EndTimeB1=0&Comment1=

&StartTimeA2=1313&EndTimeA2=1532
&StartTimeB2=1602&EndTimeB2=1753&Comment2=

&StartTimeA3=0&EndTimeA3=0
&StartTimeB3=0&EndTimeB3=0&Comment3=

&StartTimeA4=0&EndTimeA4=0
&StartTimeB4=0&EndTimeB4=0&Comment4=

&StartTimeA5=0&EndTimeA5=0
&StartTimeB5=0&EndTimeB5=0&Comment5=

&StartTimeA6=0&EndTimeA6=0
&StartTimeB6=0&EndTimeB6=0&Comment6=

&StartTimeA7=0&EndTimeA7=0
&StartTimeB7=0&EndTimeB7=0&Comment7=

&StartTimeA8=0&EndTimeA8=0
&StartTimeB8=0&EndTimeB8=0&Comment8=

&StartTimeA9=0&EndTimeA9=0
&StartTimeB9=0&EndTimeB9=0&Comment9=

&StartTimeA10=0&EndTimeA10=0
&StartTimeB10=0&EndTimeB10=0&Comment10=

&StartTimeA11=0&EndTimeA11=0
&StartTimeB11=0&EndTimeB11=0&Comment11=

&StartTimeA12=0&EndTimeA12=0
&StartTimeB12=0&EndTimeB12=0&Comment12=

&StartTimeA13=0&EndTimeA13=0
&StartTimeB13=0&EndTimeB13=0&Comment13=

&StartTimeA14=0&EndTimeA14=0
&StartTimeB14=0&EndTimeB14=0&Comment14=

&StartTimeA15=0&EndTimeA15=0
&StartTimeB15=0&EndTimeB15=0&Comment15=

&StartTimeA16=0&EndTimeA16=0
&StartTimeB16=0&EndTimeB16=0&Comment16=

&StartTimeA17=0&EndTimeA17=0
&StartTimeB17=0&EndTimeB17=0&Comment17=

&StartTimeA18=0&EndTimeA18=0
&StartTimeB18=0&EndTimeB18=0&Comment18=

&StartTimeA19=0&EndTimeA19=0
&StartTimeB19=0&EndTimeB19=0&Comment19=

&StartTimeA20=0&EndTimeA20=0
&StartTimeB20=0&EndTimeB20=0&Comment20=

&StartTimeA21=0&EndTimeA21=0
&StartTimeB21=0&EndTimeB21=0&Comment21=

&StartTimeA22=0&EndTimeA22=0
&StartTimeB22=0&EndTimeB22=0&Comment22=

&StartTimeA23=0&EndTimeA23=0
&StartTimeB23=0&EndTimeB23=0&Comment23=

&StartTimeA24=0&EndTimeA24=0
&StartTimeB24=0&EndTimeB24=0&Comment24=

&StartTimeA25=0&EndTimeA25=0
&StartTimeB25=0&EndTimeB25=0&Comment25=

&StartTimeA26=0&EndTimeA26=0
&StartTimeB26=0&EndTimeB26=0&Comment26=

&StartTimeA27=0&EndTimeA27=0
&StartTimeB27=0&EndTimeB27=0&Comment27=

&StartTimeA28=0&EndTimeA28=0
&StartTimeB28=0&EndTimeB28=0&Comment28=

&StartTimeA29=0&EndTimeA29=0
&StartTimeB29=0&EndTimeB29=0&Comment29=

&StartTimeA30=0&EndTimeA30=0
&StartTimeB30=0&EndTimeB30=0&Comment30=

&StartTimeA31=0&EndTimeA31=0
&StartTimeB31=0&EndTimeB31=0&Comment31=