在看白帽子講web安全,剛好看到認證與會話管理:也就是我們在平常滲透測試中遇到最多的登錄頁面,也即是用戶名和密碼認證方式,這是最常見的認證方式。
了解兩個概念:認證和授權
1):認證的目的是為了認出用戶是誰。
2):授權的目的是為了決定用戶能夠做什么。
書中列舉的例子很形象,假設系統是一間房子,持有鑰匙的人可以進門進入房子,那么屋子就是通過“鎖和鑰匙的匹配”來進行認證的,認證的過程就是開鎖的過程。
鑰匙在認證過程中,被稱為“憑證”,開門的過程,在互聯網里對應的是登錄。
可是開門之后,什么事情能做,什么事情不能做,就是“授權”的管轄范圍了。
?
記錄下之前在滲透過程中遇到登錄頁面的問題,和書中所說相對應起來的話,一個是對認證,一個是對授權:
1):在認證的時候,單獨對登錄頁面來說,可以去嘗試的測試:
- 萬能密碼登錄
- SQL注入
- 漏掃掃描,常用appscan、awvs開源工具來掃描
- XSS
- 爆破,登錄頁面的爆破,最常見是遇到驗證碼,嘗試驗證碼繞過;或者限制的登錄次數
- 一個驗證碼可以多次使用
- 驗證碼無效
- 限制登錄次數,看是不是限制了IP
- 限制賬號錯誤次數,查看是不是請求包中某個參數影響,可能是session中的值,或者post傳遞的值,去掉這個影響參數,嘗試能不能夠繞過限制
- 端口掃描,nmap,來查看端口常見漏洞
- 目錄掃描,有沒有未授權訪問
2):在授權范圍內,也是單獨對登錄頁面來說,可以去嘗試的測試:
- 嘗試用低權限的賬號越權登錄高權限賬號
- 在忘記密碼處,越權修改手機或者郵箱
- 忘記密碼處,越權修改別的賬號密碼
以上是臨時能夠想起來的。
?
這章小結:
session劫持就是一種通過竊取用戶sessionID后,使用該sessionID登錄進目標賬戶的攻擊方法,此時攻擊者實際是使用了目標賬戶的有效session。如果sessionID是保存在cookie中的,則這種攻擊可以稱為cookie劫持。
這里有kxlzx大神的一篇博客,做了研究,實例:
https://www.inbreak.net/archives/287