|
Уязвимые версии: Chipmunk Forums
Описание:
Несколько уязвимостей в Chipmunk Forums позволяют удаленному пользователю выполнить произвольный SQL код на основной базе данных и получить административный доступ к приложению.
[1] Уязвимый скрипт: getpassword.php
---[код]---
if(isset($_POST[submit]))
{
$email=$_POST[email];
$getinfo="SELECT * from b_users where email=$email";
...
mail("$email","Your Forum password","Your forum password has been set to
$value");
---[/код]---
[эксплоит]
ghc@ghc.ru or username=Administrator
изменит пароль пользователя Administrator и НЕ отправит ему уведомление
(ghc@ghc.ru).
[Примечание]
"Administrator" - имя реального пользователя форума.
[2] Уязвимый скрипт: authenticate.php
---[код]---
$username=$_POST[user];
$password=$_POST[password];
$password=md5($password);
$query = "select * from b_users where username=$username and password=$password
and
validated=1";
---[/код]---
[эксплоит]
На странице login.php достаточно ввести вместо имени пользователя
Administrator/*
где "Administrator" - существующий пользователь.
[3] Уязвимый скрипт: edit.php
---[код]---
if(isset($_POST[ID]))
{
$ID=$_POST[ID];
}
else
{
$ID=$_GET[ID];
}
$checking="SELECT * from b_posts,b_users where b_users.userID=b_posts.author and
b_posts.ID=$ID";
---[/код]---
Возможность SQL инъекции через переменную $ID.
[4] Уязвимый скрипт: search.php
---[код]---
$searchterm=$_POST[searchterm];
$getthreads="SELECT * from b_posts where post like %$searchterm% and
threadparent=0
order by telapsed DESC limit $start, 50";
---[/код]---
Возможность SQL инъекции через переменную $searchterm.
[5] Уязвимый скрипт: newtopic.php
---[код]---
$name=$_POST[name];
$title=$_POST[title];
$post=$_POST[post];
$day=date("D M d, Y H:i:s");
$timegone=date("U") ;
if($_POST[nosmiley])
...
$name=strip_tags($name);
$title=strip_tags($title);
$post=strip_tags($post);
$posting="INSERT INTO b_posts (author, title, post,timepost, telapsed,
postforum,lastpost,nosmilies,ipaddress) values ($name, $title, $post, $day,
$timegone,$forumID,$user,$nosmiley,$s)";
mysql_query($posting) or die("could not post");
---[/код]---
Возможность SQL инъекции через переменные $name, $title, $post.
[6] Уязвимый скрипт: reguser.php
---[код 1]---
$username=$_POST[username];
$password=$_POST[password];
$signature=$_POST[signature];
$pass2=$_POST[pass2];
$usercheck="SELECT*from b_users where username=$username or email=$email";
---[код 2]---
if ($password==$pass2 && $_POST[password])
{
$password=md5($password);
$supervalue=$value;
$daycte("U");
$email=$_POST[email];
$location=$_POST[location];
$aim=$_POST[aim];
$showprofile=$_POST[showprofile];
$icq=$_POST[icq];
$seedval=$day 0000;
srand($seedval);
$key=RAND(1000000,2000000);
if($requirekey=="no"||$requirekey=="No") //if you do no require an activation
key
{
$SQL ="INSERT into b_users (username,password,sig,
email,location,AIM,ICQ,showprofile,validated) values
($username,$password,$signature,$email,$location,$aim,$icq,$showprofile,1)
";
mysql_query($SQL) or die(mysql_error());
}
else //you require an activation key
{
$SQL ="INSERT into b_users (username,password,sig,
keynode,email,location,AIM,ICQ,showprofile) values
($username,$password,$signature,$key,$email,$location,$aim,$icq,$showprofil
e)";
mysql_query($SQL) or die(mysql_error());
mail("$email","Your forum activation key","Paste the URL to activate your
account.
$boardpath/activate.php?username=$username&password=$password&keynode=$key");
}
---[/код]---
Возможность SQL инъекции через переменные регистрационной формы.
Подобные уязвимости, связанные с отсутствием фильтрации переменных можно найти и
в скриптах
usercp.php, reply.php, quote.php.
URL производителя: http://www.chipmunk-scripts.com/board
Решение:Способов устранения обнаруженной уязвимости не существует в настоящее время.
Уязвимость обнаружел Foster [foster ат ghc.ru]
|