Tim Ritberg <t...@server.invalid> writes:
> Am 15.06.22 um 16:58 schrieb Karl Pflästerer:
>
>>
>> Wie kann sich jetzt "durchhangeln"? Wenn du davon ausgehst, dass man
>> auf VHost1 eine Webshell hochladen und ausführen konnte, kommt es auf
>> die Nutzerrechte der anderen Installationen eher weniger an. Schaden ist
>> auch so schon da.
>> Umn zu wissen, was du verhindern willst, fehlt die konkrete Beschreibung
>> des Angriffs.
> Ich meinte einen Angriff auf den Prozess httpd (apache2).
Und wie genau?
>
>> Hält dich doch niemand von ab. Wenn es nur ein oder 2 Server sind, die
>> du betreust, ist das problemlos machbar.
>> Wenn du etwas Spieltrieb hast, nimmst du m4 für die Templates. Ansonsten
>> geht zur Not auch bash und sed. Hängt halt sehr davon ab, wie du
>> arbeitest
> m4...da fällt mir sendmail ein. Aber richtig hatte ich damit nie zutun.
Das einzige Programm mit turing vollständiger Config Sprache :-)
Wie gesagt, würde ich nehmen, wenn ich auch Spaß dabei haben wollte.
Wenn nicht ist ein kleines Perl/Python Skript besser
ZB in Perl:
#!/usr/bin/perl
use strict;
use warnings;
my $base = '/path/to/dir';
my $dst_base = $base . 'devel/';
my $templatefile = $ARGV[0] || $base . 'vhost-devel-template.conf';
(my $ntemplate = $templatefile) =~ s/template/%s/;
$ntemplate = $dst_base . (split /\//, $ntemplate)[-1];
my @names = map { m/_devel-([^\/]+)/ } < '/path/to/dir/_devel*' >;
open my $fh, '<', $templatefile or die "$templatefile $!";
my $template = do { local ($/); <$fh> };
close $fh;
for my $name (@names) {
open my $fh, '>', sprintf($ntemplate, $name) or die sprintf($ntemplate.$!, $name);
my $text = $template;
$text =~ s/{NAME}/\U$name/g;
$text =~ s/{name}/\L$name/g;
print $fh $text;
close $fh;
}
Das erstellt VHost dateien für Entwickler. Die Namen sind aus
Verzeichnisnamen ermittelbar. Je Name werden Platzhalter im Tempalte
ersetzt. Wenn du mehr Platzhalter benötigst einfach noch ein paar s///,
Zeilen rein. Platzhalter ist {name} und {NAME} um den gleichen wert
definiert groß- oder kleingeschrieben auszugeben. Das gleiche gibt es
auch als Python Variante.
KP