sqlmap udf重み付けプロセス
2067 ワード
0x01 UDF
UDF(user defined function)ユーザーカスタム関数はmysqlの拡張インタフェースです.ユーザーはmysqlでは容易に実現できない機能をカスタム関数で実現することができ、追加した新しい関数は、ネイティブ関数を呼び出すようにsql文で呼び出すことができます.
0 x 02 windowsでudfが権限を持つ条件
mysqlバージョンが5.1より大きい場合、udf.dllファイルはmysqlインストールディレクトリのlibpluginフォルダの下に置く必要があります/mysqlバージョンが5.1未満の場合、udf.dllファイルはwindows server 2003の下でc:windowssystem 32ディレクトリに配置され、windows server 2000の下でc:wintsystem 32ディレクトリに配置される.mysqlデータベースのアカウントを把握し、mysqlに対するinsertとdelete権限を持って関数を作成し、破棄します.udfを持つ.dll対応するディレクトリに書き込む権限.
0 x 03権限付与方法
mysql 5なら1以上のバージョンではudf.dllファイルはmysqlインストールディレクトリのlibpluginフォルダの下に置いてからカスタム関数を作成できます.このディレクトリはデフォルトでは存在しません.websshellを使用してmysqlのインストールディレクトリを見つけ、インストールディレクトリの下にlibpluginフォルダを作成し、udf.dllファイルがディレクトリにエクスポートされます.
まずsqlmapextracloakcloakディレクトリに入り、コマンドを実行します.
復号すると、現在のディレクトリの下でdllファイルが生成されます.
dllファイルをmysqlの/lib/pluginディレクトリにコピーし、実行
攻撃者はlibを利用できるmysqludf_Sysが提供する関数はシステムコマンドを実行します.
コマンドの実行:
UDF(user defined function)ユーザーカスタム関数はmysqlの拡張インタフェースです.ユーザーはmysqlでは容易に実現できない機能をカスタム関数で実現することができ、追加した新しい関数は、ネイティブ関数を呼び出すようにsql文で呼び出すことができます.
0 x 02 windowsでudfが権限を持つ条件
mysqlバージョンが5.1より大きい場合、udf.dllファイルはmysqlインストールディレクトリのlibpluginフォルダの下に置く必要があります/mysqlバージョンが5.1未満の場合、udf.dllファイルはwindows server 2003の下でc:windowssystem 32ディレクトリに配置され、windows server 2000の下でc:wintsystem 32ディレクトリに配置される.mysqlデータベースのアカウントを把握し、mysqlに対するinsertとdelete権限を持って関数を作成し、破棄します.udfを持つ.dll対応するディレクトリに書き込む権限.
0 x 03権限付与方法
mysql 5なら1以上のバージョンではudf.dllファイルはmysqlインストールディレクトリのlibpluginフォルダの下に置いてからカスタム関数を作成できます.このディレクトリはデフォルトでは存在しません.websshellを使用してmysqlのインストールディレクトリを見つけ、インストールディレクトリの下にlibpluginフォルダを作成し、udf.dllファイルがディレクトリにエクスポートされます.
/*
sqlmap\udf\mysql\windows\32 lib_mysqludf_sys.dll_
sqlmap\udf\mysql\windows\64 64 lib_mysqludf_sys.dll_
*/
まずsqlmapextracloakcloakディレクトリに入り、コマンドを実行します.
cloak.py -d -i D:\sqlmap\udf\mysql\windows\32\lib_mysqludf_sys.dll_
復号すると、現在のディレクトリの下でdllファイルが生成されます.
dllファイルをmysqlの/lib/pluginディレクトリにコピーし、実行
create function sys_exec returns string soname "lib_mysqludf_sys.dll";
攻撃者はlibを利用できるmysqludf_Sysが提供する関数はシステムコマンドを実行します.
コマンドの実行:
select sys_eval(‘whoami’);
/*
:
sys_eval, , 。
sys_exec, , 。
sys_get, 。
sys_set, 。
*/