发新话题
打印

Alibaba Alipay Remote Code Execute Vul

Alibaba Alipay Remote Code Execute Vul

复制内容到剪贴板
代码:
Alibaba Alipay Remote Code Execute Vulnerability

by cocoruder(frankruder_at_hotmail.com)
[url]http://ruder.cdut.net[/url]


Summary:

   Alipay is China’s leading online payment service, and a division of Alibaba.com. It enables individuals and businesses to securely, easily and quickly send and receive payments online. Alipay works like an escrow service, solving the issue of settlement risk in China. More details:

   [url]https://www.alipay.com[/url]

   There exists a remote code execute vulnerability in alipay's passsword input control "pta.dll". A remote attacker who successfully exploit these vulnerabilities can completely take control of the affected system.


Affected Software Versions:

   All current versions


Details:
   
   This vulnerability exist in the function "Remove()" educed by "pta.dll", following are some related imformations:

   InprocServer32:   pta.dll
   ClassID    :    66F50F46-70A0-4A05-BD5E-FBCC0F9641EC

   [id(0x60030001), helpstring("method Remove")]
   void Remove([in] int idx);

   Let's see How function "Remove()" process the parameter "idx":

   .text:10003D4E ; Remove
   .text:10003D4E
   .text:10003D4E sub_10003D4E   proc near        ; DATA XREF: .rdata:1000B3A4o
   .text:10003D4E                   ; .rdata:1000B41Co ...
   .text:10003D4E
   .text:10003D4E arg_0        = dword ptr  4
   .text:10003D4E arg_4        = dword ptr  8
   .text:10003D4E
   .text:10003D4E            mov    eax, [esp+arg_4]      
   .text:10003D52            test   eax, eax
   .text:10003D54            jl    short loc_10003D78   
   .text:10003D56            push   esi
   .text:10003D57            mov    esi, [esp+4+arg_0]   ; get idx
   .text:10003D5B            shl    eax, 4        ; idx << 4
   .text:10003D5E            add    eax, [esi+8]      ; [esi+8]=0
   .text:10003D61            push   edi        ;
   .text:10003D62            mov    edi, eax        ; idx << 4 ==>edi
   .text:10003D64            mov    eax, [edi+8]      ; [(idx << 4)+8] ==>eax
   .text:10003D67            push   eax
   .text:10003D68            mov    ecx, [eax]      ; [[(idx << 4)+8]]==>ecx
   .text:10003D6A            call   dword ptr [ecx+8]   ; [[[(idx << 4)+8]]+8]==>jmp addr
   .text:10003D6D            push   edi
   .text:10003D6E            lea    ecx, [esi+4]
   .text:10003D71            call   sub_10003F35
   .text:10003D76            pop    edi
   .text:10003D77            pop    esi
   .text:10003D78
   .text:10003D78 loc_10003D78:              ; CODE XREF: sub_10003D4E+6j
   .text:10003D78            xor    eax, eax
   .text:10003D7A            retn   8
   .text:10003D7A sub_10003D4E   endp

   The idx is a DWORD vaule what we can control, so we can complete an interesting attack, for example when we set the idx 0x41414141, the procedure will execute codes of address [[[14141410h+8]]+8].


Solution:

   Set a killbit for "pta.dll", or, delete %system%\aliedit\pta.dll if you do not use Alipay.


Disclosure Timeline:

   2007.02.07      Advisory release


Attached File:

   Here give an exploit, we se all address 0x0d0d0d0d which will access its value, can gain attack result nicely.
   Warning: This exploit is just used for reproducing the vulnerability, please do not used for others.
   
   [url]http://ruder.cdut.net/attach/exploit_alipay_vul.rar[/url]


--EOF--

TOP

发新话题