• 当前位置:首页>>编程开发A>>安全防御>>Serv-U "MDTM"命令远程溢出分析
  • Serv-U "MDTM"命令远程溢出分析
  • 创建时间:2004-03-05
    文章属性:转载
    文章提交:peak (pe4k_at_eyou.com)

    Serv-U "MDTM"命令远程溢出分析
                                           czy 于 04.02.29
        2月27号一早在securityfocus看到了这个漏洞的公告,上面清楚的说明了You must have a
    valid user account and password to exploit it, and you are not need WRITE or any other privilege.
    这不是比上次Serv-U那个site chmod的洞洞还利害,一想到不少电影网站都是用的Serv-U....
        好不在这儿废话了以下分析基于Serv-U Server 4.0.0版,只分析"MDTM"命令溢出的情况。
        事实上,Serv-U在处理MDTM命令时,很多地方都有长度判断,但是,有一个地方他遗漏了,那么,我们的机会就来了:-)

    漏洞函数引用关系如下:

    loc_434748 [0]
    |
    call    loc_41FAE8 [1]
    |
    |__call    sub_59BFB8(strncpy)
    |__call    sub_4422A4
                |
                |__ jmp    sub_41FBB6 [2]
                     |
                     |__call    sub_59BEB1
                     |__call    sub_59BDA4(strlen)        
                     |__call    sub_59BFB8(strncpy)\__分别调用了六次,用来把年月日时分秒放到变量中
                     |__call    sub_5A4008         /
                          ...........
                          |__loc_41FD99[3]
                             |__loc_41FDC3(strcpy) [4] 洞洞出来啦,覆盖程序自身异常处理函数地址
                                 |__loc_41FE16
                                     |__loc_41FE30 [5]
                                        |
                                        |__call    sub_59BDA4(strlen)    
                                        |__call    sub_59BC1C(strncpy) 触发程序异常处理


    [0]判断是否是"MDTM"命令

    loc_434748:                             ; CODE XREF: .text:0043473A
    .text:00434748                 push    4                    //比较四个字节
    .text:0043474A                 push    edi                  //edi存放命令字串的首地址
    .text:0043474B                 lea     eax, [esi+354h]
    .text:00434751                 push    eax                  // 得到命令列表
    .text:00434752                 call    near ptr unk_59C008  // 相当于Strncmp
    .text:00434757                 add     esp, 0Ch
    .text:0043475A                 test    eax, eax
    .text:0043475C                 jnz     short loc_43476D     //不是MDTM的话比较下一个命令SITE
    .text:0043475E                 push    edi                  //第二个参数是命令字串的首地址
    .text:0043475F                 push    ebx
    .text:00434760                 call    loc_41FAE8           //相同的话跳到MDTM命令处理函数
    .text:00434765                 add     esp, 8
    .text:00434768                 jmp     loc_434AC7          


    [1] 具体处理MDTM命令函数

    .text:0041FAE8 sub_41FAE8      proc near     &nbs
  • 上一篇:Serv-U "site chmod xxx" Exploit
    下一篇:Apache mod_ssl ssl_util_uuencode_binary buffer over 分析和调试方法