Schrift
[thread]321[/thread]

CGI/Perl + Shellsimulation? (Seite 2)



<< |< 1 2 >| >> 17 Einträge, 2 Seiten
Crian
 2004-07-10 00:26
#3100 #3100
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Aber natürlich ist es unsicherer einzelne Skripte mit höheren Rechten auszuführen, als keine Skripte mit höheren Rechten auszuführen. Ich nehme an, dass Renee das meint.

Natürlich ist es andererseits aber besser, nur einige Skripte mit höheren Rechten auszuführen, als alle Skripte mit höheren Rechten auszuführen.

=)



[quote=jan,09.07.2004, 20:27]oh, interessant. was wären denn die möglichen sicherheitslücken, die sich da auftun? ich kenne mich nämlich nicht im geringsten mit setuid-programmen und ihren sicherheitsrelevanten problemen aus...[/quote]
Wenn man ein Skript per suid mit Rootrechten ausführt und es in diesem Skript Sicherheitslücken (Bufferoverrun, ungetestet ausgeführte Usereingaben, etc.) gibt, mit denen der Benutzer Shellzugang erhalten kann, dann hat der Bösling plötzlich Rootrechte und kann rm -f / oder schlimmeres ausführen.\n\n

<!--EDIT|Crian|1089405063-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
jan
 2004-07-10 00:39
#3101 #3101
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
ja, gut, aber das wäre dann doch weniger eine sache der config als vielmehr ein problem in suexec - oder etwa nicht? und zudem ist es doch dann so, dass man bei vielen cgis, die mit den rechten von root oder wwwrun laufen, mehr schwierigkeiten bekommen mag als wenn nur suexec mit diesen rechten läuft - will sagen, die wahrscheinlichkeit, dass suexec einen bug hat, der probleme bereitet, ist geringer, als dass eines von ev. vielen hundert cgis einen hat ...
Crian
 2004-07-10 00:46
#3102 #3102
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
ja =) ... das sollte mein zweiter Satz ausdrücken
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Dasypus
 2004-07-12 12:28
#3103 #3103
User since
2004-07-12
1 Artikel
BenutzerIn
[default_avatar]
Hallo...
vielen Dank für eure ganzen Antworten... mit den Rechten hat mein Problem aber leider nicht zu tun. (Apache ist der Besitzer des Verzeichnisses)
Es werden auch Dateien erzeugt, nur leider im automatischen Modus nur zwei, im manuellen aber sechs (und von diesen werden leider einige gebraucht). Ich hab auch schon alle Environment-Variablen simuliert, leider ändert sich nicht. Hat ansonsten noch jemand eine Idee?
Vielen Dank,
Jonas
renee
 2004-07-12 12:48
#3104 #3104
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wird für das Programm vielleicht ein temporäres Verzeichnis benötigt, in dem die Rechte fehlen??

mach mal ein ganz einfaches CGI:

test.cgi
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#! /usr/bin/perl

use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

my $cgi = CGI->new();
print $cgi->header(-type => 'text/html');

my $programm = '/pfad/zu/dem/Programm';

my $content = `$programm $evtl_optionen 2>%1`; # Backticks! $evtl_optionen durch parameter, die das Programm benötigt ersetzen

print $content;


Da hier der STDERR auf STDOUT umgeleitet wird, wirst Du vielleicht auf die Lösung kommen. Sowas hat mir mal nach 3 Wochen Fehlersuche endlich den Fehler zutage gebracht!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Ishka
 2004-07-12 16:16
#3105 #3105
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Mit folgendem Programm weißt du, welche Rechte du in deinen CGI-Scripten hast
Code: (dl )
1
2
print "Content-type: text/html\n\n";
system("id");
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Strat
 2004-07-12 23:41
#3106 #3106
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Ishka,12.07.2004, 14:16]
Code: (dl )
system("id");
[/quote]
immer diese linux-admins, die immer externe kommandos ausfuehren wollen... ;-)

die Perl-Variable $> enthaelt ebenso die UID, und man spart sich den systemaufruf...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2004-07-09 16:30.