За последние 24 часа нас посетили 20058 программистов и 1080 роботов. Сейчас ищут 755 программистов ...

sql injection в денвере

Тема в разделе "PHP для профи", создана пользователем griha, 21 июн 2016.

  1. griha

    griha Новичок

    С нами с:
    2 июн 2016
    Сообщения:
    20
    Симпатии:
    0
    Я изучаю sql иньекцию методы защиты и нападения по курсу знаменитого американского специалиста по информационной безопасности - Hitesh'а. Проблема заключается в том, что денвер автоматически удаляет специальные символы в запросе к база данных. Так как в коде php никаких методов для удаления специальных символов не используется и в MySql терминале все команды работают, но иньекции с сайта не работают, как будто запросы фильтруются, но в коде никаких методов нет. Подкскажите, что это может быть ?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    Покажи код и входные данные.
     
  3. griha

    griha Новичок

    С нами с:
    2 июн 2016
    Сообщения:
    20
    Симпатии:
    0
    PHP:
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    5. <title>Less-1 SqL Injection master Course by Hitesh Choudhary</title>
    6. <link rel="stylesheet" href="../index.html_files/freemind2html.css" type="text/css"/>
    7. </head>
    8.  
    9. <body>
    10. <div style=" margin-top:70px;color:#FFF; font-size:23px; text-align:center">
    11.   <h1><span class="style1">Welcome </span><font color="#FF0000">to SQL injection Master Course </font></h1>
    12.   <h1><span class="style2">Lesson-1</span></h1>
    13.   <h1><span class="style4">Hint : Error based string</span> <br>
    14.   <font size="3" color="#666666">
    15.  
    16.  
    17.   <?php
    18. //including the Mysql connect parameters.
    19. include("../sql-connections/sql-connect.php");
    20.  
    21. // take the variables
    22. if(isset($_GET['id']))
    23. {
    24. $id=$_GET['id'];
    25. //logging the connection parameters to a file for analysis.
    26. $fp=fopen('result.txt','a');
    27. fwrite($fp,'ID:'.$id."\n");
    28. fclose($fp);
    29.  
    30. // connectivity
    31.  
    32.  
    33. $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
    34. $result=mysql_query($sql);
    35. $row = mysql_fetch_array($result);
    36.  
    37.    if($row)
    38.    {
    39.      echo '<font color= "#0000ff">';
    40.      echo 'Your Login name:'. $row['username'];
    41.      echo "<br>";
    42.      echo 'Your Password:' .$row['password'];
    43.      echo "</font>";
    44.      }
    45.    else
    46.    {
    47.    echo '<font color= "#900">';
    48.    echo "</font>";
    49.    }
    50. }
    51.    else { echo "Please input the ID as parameter with numeric value";}
    52.  
    53. ?>
    54.   </font> </h1>
    55. </div>
    56. <img border="0" src="img1.gif" alt="funny" width="200" height="200">
    57. <div class="botton_fix">For more please visit : <a href="http://www.hiteshchoudhary.com" target="_blank">www.hiteshchoudhary.com</a></div>
    58. </br></br></br><center>
    59. </center>
    60. </body>
    61. </html>



    пример входных данных: id=-1' union all select 1,2,3-- ничего не возвращает.
    стандартная проверка на иньекцию: id=1' не возвращает ошибки.
     
    #3 griha, 21 июн 2016
    Последнее редактирование модератором: 21 июн 2016
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    ну в данном коде и не видно сработала ли инъекция. догадаешься почему?
     
  5. griha

    griha Новичок

    С нами с:
    2 июн 2016
    Сообщения:
    20
    Симпатии:
    0
    sql-connect.php
    PHP:
    1. <?php
    2.  
    3. //including the Mysql connect parameters.
    4. include("../sql-connections/db-creds.inc");
    5. $con = mysql_connect($host,$dbuser,$dbpass);
    6. // Check connection
    7. {
    8.   echo "Failed to connect to MySQL: " . mysqli_connect_error();
    9. }
    10. else
    11. {
    12.   @mysql_select_db($dbname,$con) or die ( "Unable to connect to the database: $dbname");
    13. }
    14.  
    15.  
    16.  
    17.  
    18.  
    19.  
    20. ############################################
    21. #do not touch this part of code
    22. $form_title_in="Please Login to Continue";
    23. $form_title_ns="New User";
    24. $feedback_title_ns="New User";
    25. $form_title_ns= "Less-24";
    26. ?>
     
    #5 griha, 21 июн 2016
    Последнее редактирование модератором: 21 июн 2016
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    нет, не оно. Совсем не нужно выкладывать никаких других листингов. Достаточно прочитать этот. Давай еще попробуй.
     
  7. SpikePHP

    SpikePHP Активный пользователь

    С нами с:
    6 май 2015
    Сообщения:
    130
    Симпатии:
    23
    @Ganzal давай уже расскрой тайну, а то @griha совсем отчаялся. Да и мне интересно)
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    @SpikePHP ну хоть ты-то прочитай листинг и найди самостоятельно. Давай, если до начала второй практики ГП Австрии (14:55 МСК) не найдешь - тогда скажу.
     
  9. SpikePHP

    SpikePHP Активный пользователь

    С нами с:
    6 май 2015
    Сообщения:
    130
    Симпатии:
    23
    @Ganzal эх лишний там апостроф [​IMG]
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    неправильно. еще две минуты.
     
  11. SpikePHP

    SpikePHP Активный пользователь

    С нами с:
    6 май 2015
    Сообщения:
    130
    Симпатии:
    23
    Что значит неправильно? я получил результат : [​IMG]
    Всё правильно
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    а вот теперь правильно. кстати, я минуса и не заметил.
     
  13. SpikePHP

    SpikePHP Активный пользователь

    С нами с:
    6 май 2015
    Сообщения:
    130
    Симпатии:
    23
    Я сделал базу, сделал таблицу. Если id=1 то возвращает
    [​IMG]
    т.е. если без инъекции
    --- Добавлено ---
    Ну, т.е. дело в апострофе, ведь так?
     
  14. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    да, инъекция в данном случае из-за него. а если айдишник положительный - то может и не быть инъекции