Если не сложно, нужно еще немного помощи.
Пробую залить первичный шелл через SQL инъекцию, но не получается, запрос, судя по всему, выдает ошибку. Варианта два - либо нет прав на запись файла в директорию сайта (не думаю, что в этом дело) или, самое вероятное, проблему создает хвост запроса -
" and DDD = 1". Если в случае обычного запроса к таблицам можно было избавиться от хвоста, написав запрос, который объединяет три подзапроса через union, где первый и третий использовались лишь для замыкания конструкций по обе стороны от места инъекции, а главная работа происходила во втором, то сейчас такой трюк не сработает, будет выдавать "Incorrect usage of UNION and INTO". Попытка закомментировать хвост через ;# или # не дает эффекта.
Код:
Код:
$sql = "select OUT_A, concat(NN1, ' ', NN2) as nn, OUT_B, LL";
$sql .= "from TABLE ";
$sql .= " where DD = 0";
$sql .= " and IN_A = '".$p_ina."'";
$sql .= " and IN_B = '".$p_inb."'";
$sql .= " and DDD = 1";
$this -> select_from_db($sql, $out_data);
Входные значение пробовал такие:
$p_ina - 1
$p_ina - ' union select OUT_A,2,3,4 from TABLE where OUT_A = 123 union select 1,2,3,4 into outfile 'tmp'#
Как добиться выполнения запроса - пока нет никаких идей.
UPD: решил проверить, а работает ли комментирование хвоста через # для обычного запроса. Как оказалось, работает (потому я упростил вышенаписанное значение переменной в соответствии с ситуацией). В таком случае, запрос на запись файла не работает по каким-то другим причинам. Что интересно, что если удалить подчеркнутую часть, тем самым оставив лишь запрос на получение данных из таблицы, то работает. Такое ощущение, что у mysql нет прав на запись файлов, даже в собственном каталоге - такое может быть?