2014年1月8日 星期三

遠通電收的查詢系統,黑客的聰明選擇

【編按】:目前遠通電收已經把驗證碼機制換成Session-based驗證機制,安全性比較高一些了。
我來幫忙補完好了。
MouseMs 的文章指出,遠通eTag的驗證碼產生方式,是使用Authentication Code + Plaintext 的方式來做驗證。
看樣子沒什麼問題。
但是它最大的敗筆在於三個部分:
1. 把Authentication Code的圖片檔及其相關驗證碼資訊「存到伺服器」 (也就是把輸入的驗證碼存起來的意思)。
    【小實驗】:
    各位可以輸入 https://css.fetc.net.tw/CS/Ajax/GetAuthImage/ohMt1pFQ0is1 ,會得到一個VCode.png1,把這個檔案副檔名改為.png,
    看看是不是都是「XR8DJ」?
2. 把驗證碼的「密文」交給使用者的瀏覽器網頁表單保管(見下圖)。
image
3. 每次驗證碼產生的「密文」與驗證碼「輸入值」都是一對一對應,產生方式都是固定不變的。
而在伺服器端的驗證碼驗證工作就是:
1. 拿到使用者手動輸入的「驗證碼」以及使用者瀏覽器網頁表單的「密文」
2. 把上面的「驗證碼」與「密文」進行比對;若比對正確,則驗證碼驗證成功。若比對失敗,則驗證碼輸入無效。
但如前所述,它產生的「驗證碼」與「密文」都是一對一對應,無論輸入多少次驗證碼,產生結果都一樣。 亦即無法抵擋「重送攻擊」。
所以黑客只要在驗證碼中輸入「XR8DJ」,密文則填入「ohMt1pFQ0is1」。
按照上面的驗證碼處理工作,就一定破解掉驗證碼。
既然驗證碼可以被破解,黑客的工作就只剩下怎麼破解「車牌號碼」與「車牌證號」了。
提示:用最暴力的做法「字典攻擊法」應該可以破得掉。





3 則留言:

  1. 我無言了.........這不是作弊嗎?把問題與答案都先寫好了,如果我留下考古題必定百發百中啊

    回覆刪除
  2. 某校的校務資訊系統也是如此 可是他們的密文用過一次就無效了XD

    回覆刪除
  3. 這是遠通想省$,及當別人是沒他們聰明利害,去做的系統。
    查詢不能用,電話又打不通,網上留言聯絡,還會有做外送的打來指名道姓,看需不需要外送訊息,這種資安,大家自求多福了

    回覆刪除