今天測試時發現一個任意用戶登錄漏洞,簡單記錄一下(em...寫得真的很簡單的那種!)
登錄成功后的一個請求,里面包含了當前登錄用戶的用戶名和user_id:
后面緊接着一個包含敏感信息的數據包,如下:
可以看到返回信息中包含了當前用戶的密碼MD5,且可以正常解密。更換為其他的user_id:
可以看到,返回了其他user_id的密碼,但是,正常情況下,只有在成功登錄一個用戶后才能獲取用戶的user_id,所以要想登錄他人賬戶,必須要知道user_id值對應的用戶名.....,既然系統會有一個返回密碼的數據包,那就可能有其他的敏感信息返回數據包,於是打開burp的hsitory,底部搜索user_id,終於在茫茫數據包中發現了一個接口:
一個請求,通過登錄用戶名,返回信息包含了該用戶名對應的user_id:
通過id獲取密碼:
不斷遍歷用戶名可以獲得更多的user_id,也就可以通過上面的請求獲取更多的用戶密碼MD5,通過解密后的用戶名密碼即可登錄任意用戶: