Schrift
[thread]584[/thread]

system("useradd", ... using suidperl -w -T: Insecure dependency in system...

Leser: 1


<< >> 8 Einträge, 1 Seite
pearl-man
 2005-09-28 19:00
#5709 #5709
User since
2005-07-25
65 Artikel
BenutzerIn
[default_avatar]
Ich habe ein kleines CGI geschrieben, welches neue SystemUser anlegen soll, DER Ausschnitt:
Code: (dl )
1
2
3
4
5
6
7
/usr/bin/suidperl -w -T
...
$ENV{PATH} = ''
...
# line 446:
system ("/usr/sbin/useradd", "-g", $group, "-s", $home$user", "-s", $shell, "-p", $pass, $user);
...

folgender Fehler taucht dann auf:
Insecure dependency in system while running setuid at ./script.cgi line 446.

alle Variablen sind auf Sonderzeichen gefiltert und in der Länge begrenzt worden. Lasse ich sämtliche Argumente von useradd weg, so funzt die Sache.

keine Ahnung was geht???, als root läuft das Ding!\n\n

<!--EDIT|renee|1127922522-->
pq
 2005-09-28 19:38
#5710 #5710
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=pearl-man,28.09.2005, 17:00]alle Variablen sind auf Sonderzeichen gefiltert und in der Länge begrenzt worden.[/quote]
müssen wir dir das einfach glauben oder zeigst du uns den code?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2005-09-28 19:51
#5711 #5711
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ist das hier vielleicht hilfreich: http://mail.savs.hcc.edu.tw/~chuavv/articles/UserAddByWeb.html
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/
pearl-man
 2005-09-28 20:23
#5712 #5712
User since
2005-07-25
65 Artikel
BenutzerIn
[default_avatar]
hi, ich möchte keinen wrapper verwenden, es muss schließlich auch ohne gehen!

filter:(kurze variante)
Code: (dl )
1
2
3
$user =~ s/%(..)/pack("c", hex($1))/ge;
$user =~ s/[([;<>\*\|&\$!#\(\)\[\]\{\}:'"\\]//g;
if (length($user)>=16){$user=substr($user,0,16);}
\n\n

<!--EDIT|renee|1127928928-->
pq
 2005-09-28 20:43
#5713 #5713
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
1. könntest du bitte so nett sein und code-tags hinzufügen, so wie es renee
bei deinem ersten beitrag gemacht hat?
2. du musst die variable schon untainten. da reicht kein substr. perldoc perlsec
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pearl-man
 2005-09-29 14:28
#5714 #5714
User since
2005-07-25
65 Artikel
BenutzerIn
[default_avatar]
hab die vars jetzt wirklich einfach mit:
Code: (dl )
 $var =~ /(.*)/; $var = $1

untaintet und es funzt, danke perlsec!

danke auch an euch!

mfg
pq
 2005-09-29 15:34
#5715 #5715
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=pearl-man,29.09.2005, 12:28]hab die vars jetzt wirklich einfach mit:
Code: (dl )
 $var =~ /(.*)/; $var = $1

untaintet und es funzt, danke perlsec![/quote]
das (.*) wiederum ist aber unsicher...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Relais
 2005-09-29 15:41
#5716 #5716
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=pq,29.09.2005, 13:34][quote=pearl-man,29.09.2005, 12:28]hab die vars jetzt wirklich einfach mit:
Code: (dl )
 $var =~ /(.*)/; $var = $1

untaintet und es funzt, danke perlsec![/quote]
das (.*) wiederum ist aber unsicher...[/quote]
Oder anders gesagt, mit dem -T wolltest Du eine Prüfung erzwingen.
Das /(.*)/ prüft allerdings auf nichts, damit hast Du Deine von Dir selbst angeleierte Prüfung umgangen.

Da wäre es doch irgendwie schonender, das -T einfach wegzulassen.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
<< >> 8 Einträge, 1 Seite



View all threads created 2005-09-28 19:00.