首页
论坛
课程
招聘
雪    币: 111
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:60 )
在线值:
发帖
回帖
粉丝

[原创]缓冲区溢出攻击浅析,写给初学者

2011-3-25 12:04 21558

[原创]缓冲区溢出攻击浅析,写给初学者

2011-3-25 12:04
21558
最新回复 (129)
雪    币: 2547
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
waterwind 活跃值 2011-3-31 11:19
51
0
感谢楼主的劳动,向楼主学习
雪    币: 111
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:60 )
在线值:
发帖
回帖
粉丝
firfor 活跃值 1 2011-3-31 13:22
52
0
算了啦。大家都是朋友。不会放在心上的。
雪    币: 33
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhanxcyy 活跃值 2011-3-31 13:54
53
0
新人围观围观
雪    币: 220
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
alargel 活跃值 2011-3-31 22:00
54
0
谢谢,新手致谢.
雪    币: 53
活跃值: 活跃值 (19)
能力值: ( LV2,RANK:270 )
在线值:
发帖
回帖
粉丝
kuang110 活跃值 6 2011-4-1 09:51
55
0
求pdf版             -------------
雪    币: 3
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
linzhu 活跃值 2011-4-1 10:14
56
0
下载还要钱的呀  没钱呀
雪    币: 167
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:60 )
在线值:
发帖
回帖
粉丝
levizhou 活跃值 1 2011-4-1 10:43
57
0
非常好的文章, 拜读ing。。。
雪    币: 34
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
狂风hy 活跃值 2011-4-1 11:21
58
0
谢谢LZ。。。能加你Q吗???我的284116775
雪    币: 111
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:60 )
在线值:
发帖
回帖
粉丝
firfor 活跃值 1 2011-4-1 13:50
59
0
加你了哈。注意看哈。
雪    币: 420
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
daimeiquan 活跃值 2011-4-1 16:13
60
0
多谢楼主分享
雪    币: 8
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Orzogc 活跃值 2011-4-1 16:58
61
0
网上类似的教程很多,不过还是多谢楼主。
雪    币: 223
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:20 )
在线值:
发帖
回帖
粉丝
yoke 活跃值 2011-4-1 21:14
62
0
有点像学习整理后手札
雪    币: 11
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
江南纸鸢 活跃值 2011-4-1 23:22
63
0
有兴趣的话,可以拿去年的腾讯安全挑战赛第一题来试试!我就是通过那道题开始了解缓冲区溢出的。
雪    币: 10
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
livexg 活跃值 2011-4-2 20:17
64
0
感觉好象很难学呀。。
雪    币: 167
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:60 )
在线值:
发帖
回帖
粉丝
levizhou 活跃值 1 2011-4-7 13:40
65
0
问个问题,
如果我针对漏洞函数
int  defect( char* p )
{
    char ch[4];
    memcpy( ch, p, 1000 );
}
进行溢出, 那么我就需要修改defect()的返回地址, 也就是对ch[] 进行溢出, 即一般把 [ebp+4]地址修改成需要的地址,
但问题是:一般情况下函数以 push ebp; mov ebp, esp ; 开始 也就是直接针对ch溢出会破坏ebp链,导致不等执行到shellcode, 程序就down掉了,

请问这个问题需要如何绕过去呢?

thx
雪    币: 80
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
secsip 活跃值 2011-4-7 17:44
66
0
这个不错,新手学习一下,楼主写得很用心
雪    币: 44
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
灭绝雪翁 活跃值 2011-4-7 21:11
67
0
[QUOTE=levizhou;945107]问个问题,
如果我针对漏洞函数
int  defect( char* p )
{
    char ch[4];
    memcpy( ch, p, 1000 );
}
进行溢出, 那么我就需要修改defect()的返回地址, 也就是对ch[] 进行溢出, 即一般把 [ebp+4]地...[/QUOTE]

破坏了ebp值又不会触发异常,除非是ebp被改成指向不可访问的内存页了,在shellcode里触发访问异常。高级些的可以在shellcode里还原ebp、esp,普通的就在shellcode循环不出来就行了。

话说那老师确实讲的不错,lz码字也很积极
雪    币: 32
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
urlanyi 活跃值 2011-4-7 21:16
68
0
谢谢LZ分享,新手学习了,万分感谢
雪    币: 167
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:60 )
在线值:
发帖
回帖
粉丝
levizhou 活跃值 1 2011-4-8 08:57
69
0
兄弟, 如果ebp破坏后还如何能执行植入的shellcode呢,请看清楚问题

看lz的sample code 是类似:

int  defect( char* p )
{
    __asm mov dword ptr [ebp+0x04],  0x7ffa4512;   

    char ch[4];
   
    memcpy( ch+0x0c, p, 1000 );  
   
}

大体上来说基本上不可能有哪台服务器出现这种漏洞的,
我的问题是如何通过p溢出来达到攻击的目的, 假设p中含有一段shellcode
漏洞代码为
int  defect( char* p )
{
    char ch[4];
   
    memcpy( ch, p, 1000 );     
}

==============================update=====================
debug模式下能够适当初始化p可以执行到自己的shellcode, 可是会产生一个异常, 也就是不完美
雪    币: 44
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
灭绝雪翁 活跃值 2011-4-8 21:25
70
0
[QUOTE=levizhou;945446]兄弟, 如果ebp破坏后还如何能执行植入的shellcode呢,请看清楚问题

看lz的sample code 是类似:

int  defect( char* p )
{
    __asm mov dword ptr [ebp+0x04],  0x7ffa4512;   

...[/QUOTE]

#include <stdio.h>
#include <memory.h>

int  defect(char* p);
void printself();
int main(int arg,char *arv[])
{
        char shellcode[100]="1234567812345678";
        int *pint=(int *)shellcode;
        pint[1]=0x3D0000;//新EBP值
        pint[2]=(int)printself;//shellcode地址
       

        return         defect(shellcode);
}

int  defect(char* p)
{
        char ch[4];
        memcpy( ch,p,100);
        return 0;
}

void printself()
{
        printf("I am Shellcode\n");
        while(1);
}


不多说了,拿去编译下吧,release编译,禁用优化。 test.exe.txt
上传的附件:
雪    币: 150
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
miniants 活跃值 2011-4-8 22:24
71
0
学习一下。。。
雪    币: 219
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
thankme 活跃值 2011-4-8 23:38
72
0
排版很好,楼主真是好人!学习了~
雪    币: 167
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:60 )
在线值:
发帖
回帖
粉丝
levizhou 活跃值 1 2011-4-9 12:15
73
0
[QUOTE=灭绝雪翁;945691]#include <stdio.h>
#include <memory.h>

int  defect(char* p);
void printself();
int main(int arg,char *arv[])
{
        char shellcode[100]="123456781...[/QUOTE]

thx, 我的也调通了,

之前是因为debug build 导致的问题
雪    币: 288
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
周zhou周 活跃值 2011-4-9 13:22
74
0
不错啊不错!收藏个先
雪    币: 38
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjqsvip 活跃值 2011-4-9 15:49
75
0
asdfeasdfasdv
雪    币: 31
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
venglide 活跃值 2011-4-10 01:12
76
0
写得很好,学习了!!
雪    币: 489
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:290 )
在线值:
发帖
回帖
粉丝
guxinyi 活跃值 5 2011-4-20 13:57
77
0
标记下,,,哈哈
雪    币: 42
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Crackercs 活跃值 2011-4-21 22:57
78
0
收藏了!
写的真用心!
雪    币: 218
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tianci 活跃值 2011-4-22 00:05
79
0
学习标记!非常感谢楼主的奉献。
雪    币: 23
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
BeanBaby 活跃值 2011-4-22 10:09
80
0
我一直想明白缓冲区攻击是怎么回事呢!!感谢楼主!!
雪    币: 37
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
icesord 活跃值 2011-4-22 19:46
81
0
十分感谢楼主的辛勤劳动
雪    币: 111
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:60 )
在线值:
发帖
回帖
粉丝
firfor 活跃值 1 2011-4-23 00:16
82
0
简单的说就是利用对方机器的程序缺陷,能够非法得到别人机器的执行权限。从而可以做一些自己想干的事。如看一下别人的电脑有什么文件啊。
雪    币: 31
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
马咿呀嘿 活跃值 2011-4-25 13:45
83
0
楼主 “cmd.exe”指针怎么传进去的? 我看那里全是nop啊。
雪    币: 67
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wayne机枪 活跃值 2011-4-25 13:57
84
0
nice ,thanks,
雪    币: 41
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zqqbbgs 活跃值 2011-4-25 15:10
85
0
先收藏了,哈哈~~慢慢消化
雪    币: 36
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
strict 活跃值 2011-4-25 16:04
86
0
写的很详细啊~~学习了
雪    币: 111
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:60 )
在线值:
发帖
回帖
粉丝
firfor 活跃值 1 2011-4-26 00:05
87
0
最近事有点多,考完试回来再答复你。
雪    币: 44
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
白水月 活跃值 2011-5-1 00:12
88
0
看了一遍,不是很明白
收藏继续拜读……
雪    币: 64
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ldhxth 活跃值 2011-5-1 20:48
89
0
学习一下了!
雪    币: 10
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
livexg 活跃值 2011-5-1 21:09
90
0
好东东。。学习下。。
雪    币: 19
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ninino 活跃值 2011-6-29 17:45
91
0
谢谢了,准备晚上学习下!牛人真厉害!
雪    币: 29
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sediy 活跃值 2011-6-30 14:27
92
0
感谢分享学习一下
雪    币: 41
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cenyo 活跃值 2011-6-30 15:56
93
0
适合我这些新人学习!谢谢!!
雪    币: 250
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
川幽 活跃值 2011-6-30 19:26
94
0
话说我还看不懂 惭愧
雪    币: 413
活跃值: 活跃值 (20)
能力值: ( LV2,RANK:20 )
在线值:
发帖
回帖
粉丝
大头和尚 活跃值 2011-6-30 23:31
95
0
很详细,明天上班后好好欣赏。
雪    币: 65
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sylapple 活跃值 2011-7-1 09:28
96
0
写的很详细,学习学习!!
雪    币: 59
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aslprince 活跃值 2011-7-1 09:32
97
0
很详细啊
雪    币: 38
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tangxiazcc 活跃值 2011-7-1 10:45
98
0
这样就可以远程修改服务器的数据了,而不是是需要外挂了
雪    币: 147
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:30 )
在线值:
发帖
回帖
粉丝
majinxin 活跃值 2011-7-1 19:04
99
0
桌面亮了,确实都是基础
雪    币: 6
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
waysun 活跃值 2011-7-2 14:13
100
0
我喜欢这样的文章。。
游客
登录 | 注册 方可回帖
返回