Ваши вопросы по уязвимостям.

Discussion in 'Уязвимости' started by +, 27 Apr 2015.

  1. Octavian

    Octavian Elder - Старейшина

    Joined:
    8 Jul 2015
    Messages:
    506
    Likes Received:
    101
    Reputations:
    25
  2. RWD

    RWD Member

    Joined:
    25 Apr 2013
    Messages:
    157
    Likes Received:
    41
    Reputations:
    2
    pomogite ispravit kod
    uyazvim k sql union/based time/blind
    proboval parametr intval() no togda nichego ne rabotaet

    PHP:
    <?php
    header
    ('Content-type: text/xml; charset=UTF-8'true);// set the default timezone to use. Available since PHP 5.1
    //date_default_timezone_set('GMT');

    $id $_REQUEST['id'];//$id = "Gabriela Mistral_Pablo Neruda";if (strpos($id,"_")) {$ids = explode("_",$id);$tipolinea = "plural";
    }
    else {
    $ids = array($id);$tipolinea "singular";
    }
    $urllinea "linea-".$id;$cacheado false;$querycache "SELECT texto FROM wp_extras_relacionados WHERE tipo = '$urllinea'";$resultcache mysql_query($querycache);
    while (
    $rowcache mysql_fetch_array($resultcache)) {$cacheado=true;
     echo 
    $rowcache['texto'];
    }

    if (
    $cacheado==false) {// EMPIEZA obtener fecha minima y maxima para el contexto historico$sqlanioseventos = "";
    foreach ($ids as $escritor_ind) {$escritor_ind addslashes($escritor_ind);$sqlanioseventos .= "escritor = '$escritor_ind' OR ";
    }
    $sqlanioseventos substr($sqlanioseventos,0,-4);$queryminmax "SELECT MAX(SUBSTRING(comienza,1,4)) AS maxcomienza, MIN(SUBSTRING(comienza,1,4)) AS mincomienza FROM wp_timelines WHERE $sqlanioseventos";$resultminmax mysql_query($queryminmax);
    while (
    $rowchequeo mysql_fetch_array($resultminmax)) {$mincomienza $rowchequeo['mincomienza'];$maxcomienza $rowchequeo['maxcomienza'];
    }
    $querymaxcontexto "SELECT MAX(SUBSTRING(comienza,1,4)) AS maxcomienza FROM wp_timelines WHERE $sqlanioseventos AND (tipo_evento='Nacimiento' OR tipo_evento='Muerte')";$resultmaxcontexto mysql_query($querymaxcontexto);
    while (
    $rowchequeocontexto mysql_fetch_array($resultmaxcontexto)) {$maxcomienzacontexto $rowchequeocontexto['maxcomienza'];
    }
    // TERMINA obtener fecha minima y maxima para el contexto historico



    // Contexto$ids[] = "Contexto";$mes['01'] = "enero";$mes['02'] = "febrero";$mes['03'] = "marzo";$mes['04'] = "abril";$mes['05'] = "mayo";$mes['06'] = "junio";$mes['07'] = "julio";$mes['08'] = "agosto";$mes['09'] = "septiembre";$mes['10'] = "octubre";$mes['11'] = "noviembre";$mes['12'] = "diciembre";$iconos['1'] = "icono-celeste.png";$iconos['2'] = "icono-verde.png";$iconos['3'] = "icono-amarillo.png";$iconos['4'] = "icono-azul.png";$iconos['5'] = "icono-turquesa.png";$iconos['6'] = "icono-rosa.png";$iconos['7'] = "icono-negro.png";$iconos['8'] = "icono-gris.png";$iconos['9'] = "icono-violeta.png";$iconos['10'] = "icono-fucsia.png";$iconos['11'] = "icono-marron.png";$iconos['12'] = "icono-blanco.png";$iconos['13'] = "icono-naranja.png";

    function birthday_poemas ($nacimiento,$acontecimiento)
    {
    list(
    $year,$month,$day) = explode("-",$nacimiento);$year_diff date("Y",strtotime($acontecimiento)) - $year;//echo date("Y",$acontecimiento);$month_diff = date("m",strtotime($acontecimiento)) - $month;$day_diff = date("d",strtotime($acontecimiento)) - $day;
    if ($month_diff 0$year_diff--;
    elseif ((
    $month_diff==0) && ($day_diff 0)) $year_diff--;
    return 
    $year_diff;
    }
    $data '<data>';$data .= "\n";$icononro 0;//if ($tipolinea=="plural") {foreach ($ids as $id) {
    $icononro++;
     
    $sqlcontexto="";
     if (
    $id=="Contexto")$sqlcontexto "AND SUBSTRING(comienza,1,4) >= $mincomienza AND SUBSTRING(comienza,1,4) <= $maxcomienzacontexto";
    $queryusuario "SELECT * FROM wp_timelines WHERE escritor = '$id$sqlcontexto ORDER BY id ASC";$resultusuario mysql_query($queryusuario);
     while (
    $rowchequeo mysql_fetch_array($resultusuario)) {
    $data .= "\n";$startdate str_replace("-00-","-01-",$rowchequeo['comienza']);$startdate str_replace("-00","-01",$startdate);$startdate .= "";

     if (
    $rowchequeo['tipo_evento']=="Nacimiento")$nacimiento $startdate;
    $data .= '<event start="'.date('r',strtotime($startdate)).'" ';$data .= "\n";

     if (
    $rowchequeo['termina']!="0000-00-00 00:00:00") {$enddate str_replace("-00-","-01-",$rowchequeo['termina']);$enddate str_replace("-00","-01",$enddate);$enddate .= " GMT";$data .= 'end="'.date('r',strtotime($enddate)).'" ';
     }
    $title $rowchequeo['titulo'];//if ($tipolinea == "plural")
     // $title = $rowchequeo['escritor'] . ": " . $title;$title = str_replace("\"","&quot;",$title);$title = str_replace("&","&amp;",$title);$data .= 'title="'.$title.'"';
     //echo ' id ="'.$iconos.'"';
     
    if ($id=="Contexto")$data .= ' icon="timeline/timeline_js/images/icono-rojo.png"';
     else
    $data .= ' icon="timeline/timeline_js/images/'.$iconos[$icononro].'"';

     if (
    $rowchequeo['imagen']!="")$data .= ' image="my links/'.$rowchequeo['imagen'].'"';
    $data .= '>';
    //$texto = str_replace("\"","&quot;",$rowchequeo['texto']);
     //$texto = htmlentities($rowchequeo['texto']);
     
    $texto="";
     
     if (
    $id=="Contexto")$texto .= "<strong>CONTEXTO HIST&Oacute;RICO</strong><br /><br />";
     
    $texto .= $rowchequeo['texto'];
     if (
    $tipolinea == "plural" AND $id!="Contexto")$texto "<div align=\"right\"><strong>(".$rowchequeo['escritor'] . ")</strong></div><br />".$texto;$texto str_replace("<","&lt;",$texto);$texto str_replace(">","&gt;",$texto);$texto str_replace("&","&amp;",$texto);$data .= $texto;
    $fechafinal "";

     if (
    $rowchequeo['termina']!="0000-00-00 00:00:00") {$fechafinal .= "desde ";
     }
    $fecha1 substr($rowchequeo['comienza'],0,10);$fecha1 explode("-",$fecha1);
     if (
    $fecha1['2']!='00') {$fechafinal .= $fecha1['2'];
     if (
    $fecha1['1']!='00')$fechafinal .= " de ";
     }

     if (
    $fecha1['1']!='00')$fechafinal .= $mes[$fecha1['1']]." de ";
    $fechafinal .= $fecha1['0'];

     if (
    $rowchequeo['termina']!="0000-00-00 00:00:00") {$fechafinal .= " hasta ";$fecha2 substr($rowchequeo['termina'],0,10);$fecha2 explode("-",$fecha2);
     if (
    $fecha2['2']!='00') {$fechafinal .= $fecha2['2'];
     if (
    $fecha2['1']!='00')$fechafinal .= " de ";
     }

     if (
    $fecha2['2']!='00')$fechafinal .= $mes[$fecha2['1']]." de ";
    $fechafinal .= $fecha2['0'];
     }
    $data .= htmlentities("<br /><strong>").'Fecha: '.$fechafinal.htmlentities("</strong>");

     if (
    $rowchequeo['tipo_evento']!="Nacimiento") {//echo "nac".substr($nacimiento,0,10)."acon".substr($startdate,0,10)."..".strtotime(str_replace("-","/",substr($startdate,0,10)));
     //echo "**".str_replace("-","/",substr($startdate,0,10));
    if ( ($id!="Contexto" AND strpos($rowchequeo['tipo_evento'],"stumo")==false) OR ($id=="Contexto" AND $tipolinea=="singular")) {$data .= htmlentities("<br /><strong>Edad: ").birthday_poemas (substr($nacimiento,0,10),substr(str_replace("-","/",$startdate),0,10)).htmlentities(" a&ntilde;os");
     if (
    $rowchequeo['termina']!="0000-00-00 00:00:00")$data .= " al comenzar";$data .= htmlentities("</strong>");
     }

     }

     if (
    $rowchequeo['lugar']!="") {$data .= htmlentities("<br /><strong>").'Lugar: '.$rowchequeo['lugar'].htmlentities("</strong><br />");$buscarlugar str_replace(", ",",+",$rowchequeo['lugar']);$data .= htmlentities(utf8_decode('<iframe width="300" height="100" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com.ar/maps?q=')).$buscarlugar.htmlentities(utf8_decode('&amp;ie=UTF8&amp;hq=&amp;hnear=')).$buscarlugar.htmlentities(utf8_decode('&amp;t=m&amp;z=5&amp;vpsrc=0&amp;output=embed&amp;iwloc=near"></iframe>'));
     }
    $data .= '</event>';
     } 
    // fin de while} // fin de foreach$data .= '</data>';
    echo $data;$data addslashes($data);$query "INSERT INTO wp_extras_relacionados (refid, itemid, tipo, texto) VALUES ('33','33', '$urllinea','$data')";$result mysql_query($query)
     or die(
    mysql_error());


    }
    mysql_close($conectausuario);?>[php]
     
  3. st55

    st55 Level 8

    Joined:
    20 Apr 2016
    Messages:
    195
    Likes Received:
    340
    Reputations:
    47
    Банально mysql_real_escape_string(); попробуй.
     
  4. nik1201

    nik1201 New Member

    Joined:
    12 Jul 2015
    Messages:
    39
    Likes Received:
    1
    Reputations:
    0
    Как можно обойти магические кавычки в insert? (кавычки заменяются на обратный слэш.)
     
    #1404 nik1201, 25 Sep 2016
    Last edited: 25 Sep 2016
  5. Octavian

    Octavian Elder - Старейшина

    Joined:
    8 Jul 2015
    Messages:
    506
    Likes Received:
    101
    Reputations:
    25
    \' <-------| прочитать про фрагментированная SQL Injection
     
  6. nik1201

    nik1201 New Member

    Joined:
    12 Jul 2015
    Messages:
    39
    Likes Received:
    1
    Reputations:
    0
    У меня вот это выдает при фрагментированной SQL Injection.
    HTML:
    SQL: select count(*) userNum from pre_common_member where username='qweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqqqweqweqweqweqweg\'
    Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''qweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqqqweqweqweqweqweg\'' at line 1
    Errno.: 1064
     
  7. Octavian

    Octavian Elder - Старейшина

    Joined:
    8 Jul 2015
    Messages:
    506
    Likes Received:
    101
    Reputations:
    25
    все должно сработать просто параметров должно быть 2 > WHERE login='\' and password='+union+select+1,2+--+'
     
  8. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    829
    Likes Received:
    815
    Reputations:
    90
    походу там только один параметр login, селект видимо идёт перед insert, только не очень понятно зачем и что инсертится
    хотя тут похоже ничего не сделать, имхо раз селект падает - до insert дело не доходит, а пройти селект и заюзать фрагментацию похоже не получится

    в инсерте кроме логина что нить уходит?
     
    _________________________
  9. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    909
    Reputations:
    863
    Светите ссылку, может сможем, что то расковырять, а так только к бабке на картах гадать....
     
    _________________________
  10. nik1201

    nik1201 New Member

    Joined:
    12 Jul 2015
    Messages:
    39
    Likes Received:
    1
    Reputations:
    0
    Insert такой.
    Code:
    insert into pre_common_member(groupid,username,password,regdate,email,loginName) values(10,'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq','0000000',1474976900,'[email protected]','')
    Делаю я так.
    1)Регистрирую любой акк на главной странице сайта,допустим "[email protected]" и пароль "123" (регистрация прошла).
    2)Грузится вторая страница,на ней мне предлагают ввести ник,ввожу q[64]' мне выдает вот это

    Code:
    SQL: select count(*) userNum from pre_common_member where username='qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq/'
    Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq/'' at line 1
    Errno.: 1064
    
    Вот только не могу понять почему вместо пароля идут 0000000,хотя пароль же 123.
    Движок сайта Discuz!
     
  11. Taktik

    Taktik Member

    Joined:
    27 Jun 2008
    Messages:
    27
    Likes Received:
    10
    Reputations:
    5
    Получил доступ к юзеру с грантами только на селект.
    Code:
    +---------------------------------------------------------------------------------------------------------+
    | Grants for user@% |
    +---------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD '*' |
    | GRANT SELECT ON `phpbb3`.* TO 'user'@'%' |
    +---------------------------------------------------------------------------------------------------------+ 
    База соответственно от форума phpbb3. Цель либо залить шелл либо повысить привилегии. Есть идеи что можно предпринять? Из очевидных вариантов вижу только брут пароля админа, а затем залитие шелла через админку форума. Как я понял в базе еще хранятся сессии, но походу они привязаны к IP, ибо подставновка кук не работает, либо я криво это сделал.
     
  12. SergioBlog

    SergioBlog New Member

    Joined:
    21 Jan 2011
    Messages:
    10
    Likes Received:
    2
    Reputations:
    0
    $file = trim($_GET['file']);
    $folder = 'include/';
    if(file_exists($folder.$file))

    можно ли как-то обойти? чтобы прочитать файл из директории выше
     
  13. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    829
    Likes Received:
    815
    Reputations:
    90
    а в чем проблема? trim не удаляется точки и слеши, впрочем и file_exists файлы не читает :( странный кусок кода!
     
    _________________________
  14. SergioBlog

    SergioBlog New Member

    Joined:
    21 Jan 2011
    Messages:
    10
    Likes Received:
    2
    Reputations:
    0
    Не полностью скинул, далее файл качается по такому адресу, если в GET вставить имя файла, то он отдается из директории include
     
  15. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    829
    Likes Received:
    815
    Reputations:
    90
    ну должно работать, хз может там open_basedir или таки там подставляется расширение файла, а ты его пытаешь нул байтом откинуть( а его trim режет )
     
    _________________________
  16. Sensoft

    Sensoft Member

    Joined:
    14 Jun 2015
    Messages:
    398
    Likes Received:
    38
    Reputations:
    1
    Сканил сайт акаунтексом теперь когда захожу на сайт такая херня это что значит ?
    [​IMG]
     
  17. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    829
    Likes Received:
    815
    Reputations:
    90
    ты задрочил сайт и мускул немного прилег :(
    приходи через час)
     
    _________________________
  18. Sensoft

    Sensoft Member

    Joined:
    14 Jun 2015
    Messages:
    398
    Likes Received:
    38
    Reputations:
    1
    Я думал сканер какой то запрос проложил что вывел инфу о MySQL
    Кстати мож ты объяснишь
    Короче сканил один магаз так они когда заходили в админку им показывало акаунтикс XSS и сделать они короче не чего не могли )
    Это что было я так и не понял
     
  19. t0ma5

    t0ma5 Reservists Of Antichat

    Joined:
    10 Feb 2012
    Messages:
    829
    Likes Received:
    815
    Reputations:
    90
    User 'wor647_f' has exceeded the 'max_queries_per_hour' resource (current value: 100000)
    вот эта строка всё объясняет, там лимит запросов для mysql юзера

    когда заходили в админку... ну вангую такую историю, среднестатистический мазагин с само собой всякими плагинами, для магазина очень важно его seo, и где то в админке должна отображаться инфа о том кто шарится по сайту( рефа/юзер агент ), вероятно сканер пихал xss в рефу или юзер агент, ну она(xss) и отработала :)
    либо банально админка показывает неудачные попытки входа(обычно там показывается логин с которым пытались авторизоваться) - фильтрации если нет, то xss

    вообще вариантов дофига может быть
     
    _________________________
    crlf and Sensoft like this.
  20. Sensoft

    Sensoft Member

    Joined:
    14 Jun 2015
    Messages:
    398
    Likes Received:
    38
    Reputations:
    1
    Спасибо )