| ||||
【文章简介】2007-01-0710:04:01MYSQL有一个开发包,它定义了自己的接口,变量类型,以及函数执行顺序。现在网上通过mysql获得系统权限大都通过MYSQL的用户函数接口UDF,比如Mix.dll和my_udf.dll。在Mix.dll中有一个MixConnect函数它会反弹shell,但是使用这个函数会造成MYSQL假死,前些天我就用这个函数反弹shell后由于网络原因不一会儿就断开了,造成了MYSQL当掉。my_udf.dll和Mix.dll相似,
请访问以下3个网站,以了解与本文相关的更多内容:【文章正文】2007-01-07 10:04:01
现在网上通过mysql获得系统权限大都通过MYSQL的用户函数接口UDF,比如Mix.dll和my_udf.dll。在Mix.dll中有一个MixConnect函数它会反弹shell,但是使用这个函数会造成MYSQL假死,前些天我就用这个函数反弹shell后由于网络原因不一会儿就断开了,造成了MYSQL当掉。my_udf.dll和Mix.dll相似,但它是通过my_udfdoor函数在服务器上侦听3306端口,用nc正向连接获得shell,但它的功能显的少了点,于是我决定自己写一个功能强大,运行稳定的UDF。
MYSQL有一个开发包,它定义了自己的接口,变量类型,以及函数执行顺序。比如我们要写一个open3389函数,我们可以这样写:
extern "C" __declspec(dllexport)my_bool open3389_init(UDF_INIT
*initid, UDF_ARGS *args, char *message)
{
//在open3389函数之前调用,一般用于初始化工作,为可选函数;
//return 1出错 ,0 正常
return 0;
}
extern "C" __declspec(dllexport)char *open3389(UDF_INIT *initid, UDF_ARGS *args,char
*result, unsigned long *length,char *is_null, char *error)
{
//真正实现功能的函数,必需函数;
/*
函数内容;
return 结果;
*/
}
extern "C" __declspec(dllexport)void open3389_deinit(UDF_INIT *initid)
{
//在open3389函数之后调用,一般用于内存释放,可选函数;
} 以上的open3389函数的返回值是char *类型的,如果是其它类型函数的参数列表也会有所不同,具体的可见MYSQL参考手册。
在写MYSQL UDF时另一个必须考虑的问题是程序的稳定时,它要经的起各种变态输入的考验,否则一旦程序出错MYSQL服务进程就会当掉。
以下是我写的UDF内容,它包含10个函数:
cmdshell 执行cmd;
downloader 下载者,到网上下载指定文
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
电子商务模式窄告: |
|
载入中…
|