1. 程式人生 > >白帽子講web安全——認證與會話管理

白帽子講web安全——認證與會話管理

在看白帽子講web安全,剛好看到認證與會話管理:也就是我們在平常滲透測試中遇到最多的登入頁面,也即是使用者名稱和密碼認證方式,這是最常見的認證方式。

  瞭解兩個概念:認證和授權

  1):認證的目的是為了認出使用者是誰。

  2):授權的目的是為了決定使用者能夠做什麼。

書中列舉的例子很形象,假設系統是一間房子,持有鑰匙的人可以進門進入房子,那麼屋子就是通過“鎖和鑰匙的匹配”來進行認證的,認證的過程就是開鎖的過程。

鑰匙在認證過程中,被稱為“憑證”,開門的過程,在互聯網裡對應的是登入。

可是開門之後,什麼事情能做,什麼事情不能做,就是“授權”的管轄範圍了。

 

記錄下之前在滲透過程中遇到登入頁面的問題,和書中所說相對應起來的話,一個是對認證,一個是對授權:

1):在認證的時候,單獨對登入頁面來說,可以去嘗試的測試:

  • 萬能密碼登入
  • SQL注入
  • 漏掃掃描,常用appscan、awvs開源工具來掃描
  • XSS
  • 爆破,登入頁面的爆破,最常見是遇到驗證碼,嘗試驗證碼繞過;或者限制的登入次數
  1. 一個驗證碼可以多次使用
  2. 驗證碼無效
  3. 限制登入次數,看是不是限制了IP
  4. 限制賬號錯誤次數,檢視是不是請求包中某個引數影響,可能是session中的值,或者post傳遞的值,去掉這個影響引數,嘗試能不能夠繞過限制
  • 埠掃描,nmap,來檢視埠常見漏洞
  • 目錄掃描,有沒有未授權訪問

2):在授權範圍內,也是單獨對登入頁面來說,可以去嘗試的測試:

  • 嘗試用低許可權的賬號越權登入高許可權賬號
  • 在忘記密碼處,越權修改手機或者郵箱
  • 忘記密碼處,越權修改別的賬號密碼

以上是臨時能夠想起來的。

 

這章小結:

session劫持就是一種通過竊取使用者sessionID後,使用該sessionID登入進目標賬戶的攻擊方法,此時攻擊者實際是使用了目標賬戶的有效session。如果sessionID是儲存在cookie中的,則這種攻擊可以稱為cookie劫持。

這裡有kxlzx大神的一篇部落格,做了研究,例項:

https://www.inbreak.net/archives/287