| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
免费服务 我要发布 在线破解 黑客游戏 精华收集 免费空间 网络硬盘 独家报道 黑器点播 免费 FTP 交换资源
收费服务 黑客培训 光盘刻录 黑客书籍 视频下载 主力频道 空间域名 网站建设 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> 编程 >> 其它编程 >> 正文 用户登录 新用户注册
[图文]分析个flash exploit样本           ★★★ 【字体:
分析个flash exploit样本
作者:int3 文章来源:鬼仔的博客 点击数: 更新时间:2008-7-5

  不少朋友一直怂恿我写这么一个马后炮分析的文章,也拖了好久,现在放出来了。

  首先感谢Mark Dowd发现这个漏洞并且分享了一些关于这个漏洞通用利用的方法。

  再阅读这篇blog之前,请熟读Mark Dowd关于Flash exploit的whitepaper和Flash 9文件格式以及Adobe关于AVM2的详细文档。先简单的回顾一下flash文件格式,一个SWF文件是由SWF header和若干tag来组成的。

SWF Header Format
          

  Mark Dowd提到的一些SWF结构用于编写这个exploit:

       DefineSceneAndFrameLabelData 86
        DefineBits 6
        DOABC 82
        SHOWFRAME 1
    其中SWF Tag format有2种类型:
    Short Type (2 bytes)
    Upper 10 bits: tag type Lower 6 bits: tag length
    Long Type (6 bytes)
    Tag type and length of 0×3F + 4 bytes Length

  在这个例子中是采用的是Short类型的Tag format,所以我们需要decode一下Tag然后获取正确的Tag type,decode以后我们可以发现这些Tags对应的偏移位置。

  DefineSceneAndFrameLabelData位于文件偏移的0×41e处。

    

  值得一提的是SWF文件格式中的整数类型是经过Encoded,根据LibMing中提到的算法:

#define ENC_HIGH_BIT 0×80
#define ENC_BYTE_MASK 0×7f

unsigned char temp = i & ENC_BYTE_MASK;
i = i >> 7;
if(i > 0)
temp |= ENC_HIGH_BIT;

解码算法:
#define ENC_BITSPERBYTE 7
#define ENC_BYTEMASK 0×7f
#define ENC_HIGHBIT 0×80
do
{
if(shift > 4 * ENC_BITSPERBYTE)
break;

temp = readUInt8(f);
result |= (ENC_BYTEMASK & temp) << shift;
shift += ENC_BITSPERBYTE;
} while (hasNextByte(temp))
;

  文件中的99 be 8e a0 08 就是一个encoded的整数值,decode以后获得的值为:

  0×08a08eb4是经过计算后的Opcode Mark的位置,根据Mark Dowd提到的算法:

address = AS3_argmask_address + (marker_byte – (marker_byte % 4)) + 4
scene_count = (0×80000000 | (address / 12))

  再次还原后得到的值为0×302b3928 ,对应flash.ocx中Marker值0xf8的索引位置。

  DoABC位于文件偏移的 0×463处,其中修改过的ABC(Action Byte Code)在0×5b3处。

    

  这段ABC符合Mark Dowd的whitepaper中的描述

F8 62 79 get_local
F8 62 75 get_local
F8 E8 25 FB FF FF 00 pushshort
F8 29 02 pop nop
F8 63 79 set_local
02 … 47 nop … returnvoid

[1] [2] 下一页

责任编辑:朱倩  联系方式  Email:朱倩
电话:51228163
  • 上一篇编程:

  • 下一篇编程:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关编程
    根据样本写Exploit生成器的捷径
    如何编写远程溢出EXPLOIT Linux版
    超强:bat写的exploit
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号