我在C#中有一個項目,它在登錄屏幕後面有一些管理功能。如何防止註銷後重新使用授權
在最近的pentest測試中,我們遭受了潛在的攻擊:如果用戶提交表單,註銷表單並重復表單發佈(使用burp或類似工具),服務器仍將其視爲已登錄並正確響應。
整個'Admin'控制器設置爲[Authorize]
並設置了適當的角色。在註銷時,我打電話給
FormsService.SignOut();
Session.Clear();
Session.Abandon();
並將用戶重定向到開始頁面。
我讀過的一切都表明,這應該是我需要做的所有事情,以防止發生這種情況。這就是說,我可以做到以下幾點:
- 登錄到我的行政區域
- 進行搜索(一個JSON POST操作,在打嗝捕獲)
- 查看搜索結果
- 註銷
- 在burp中重複JSON POST(其中包含'.ASPXAUTH'cookie)
- 查看Burp中與早期響應匹配的服務器響應
我能做些什麼來防止這種情況發生?
一般來說,爲了防止重放攻擊,您可以使用隨機數的質詢 - 響應身份驗證。 –
'Session.Abandon'應該清除服務器端會話;這不應該工作。 – SLaks
@SLaks:所以我讀過。但它仍然存在。我自己做了測試。 – Jeff