回覆列表
  • 1 # 使用者2909470436064

    說一下一般網頁系統登陸開發邏輯:

    1、使用者透過POST請求傳送明文密碼到伺服器

    2、伺服器對收到的請求的明文密碼,在伺服器內部(後端)進行MD5等的加密(一般對使用者密碼的加密並不僅僅是簡簡單單的MD5,有時候更多會採用Hash + Salt的方式進行加密儲存)

    3、再用加密得到的資料及使用者名稱與資料庫匹配,校驗成功後才判定為登陸成功。

    至於其他的聯網程式,邏輯也類似,有的甚至是本地進行一次加密,遠端伺服器再進行一次加密,再對加密後的密文在資料庫內進行匹配。

    因此,對於聯網的,需要登陸驗證的程式,普通操作者能搞小動作也只能夠在第一步中搞(SQL注入等除外),就算你知道伺服器資料庫上該某一使用者對應的密碼密文,你也不可能透過“繞過加密直接傳送md5”的方式來繞過驗證。如果你本身就是該系統的開發者那就另當別論(這樣的話估計連密文也不需要了……)

    然後再來討論非聯網的單機程式(包括作業系統),單機程式的話如果存在著使用者登陸這些功能的話,如果是知道最終的密文,“繞過加密實現鑑權”是不排除有這樣的可能性的,但是繞過的難度也不低,透過修改記憶體或者反編譯修改一下原來的程式是有可能實現題主所說的“繞過驗證”的。當然還有一種方式是,在這種情況下如果你知道密文放在哪裡,比如Linux的話使用者的密碼是儲存在/etc/shadow檔案下的,那麼你也可以選擇把密文替換成你所知道明文對應的密文,就可以實現修改該使用者的登陸密碼,繞過驗證獲得許可權了。因此,Linux系統一定要注意保護好/etc/shadow檔案,惡意修改或被洩漏都會有很大的風險。(MD5的密文破解,若用較高效能的計算機,列舉法也不需要很久)

  • 中秋節和大豐收的關聯?
  • 全新捷豹F-TYPE的內飾怎麼樣?駕駛的時候舒服度如何?