Re: [perl] script firewall en setuid root - insecure dependency

2003-08-30 Par sujet François Boisson
On Sat, 30 Aug 2003 09:15:10 +0200
Gregoire Cachet [EMAIL PROTECTED] wrote:

 Bonjour,
 

Bonjour


 $ENV{'PATH'} = '/bin:/usr/bin:/sbin';

puet être le /sbin dans le PATH (je n'y crois pas, cf plutôt plus bas)

 
 system($iptables. -t nat -A PREROUTING -i ppp+ -p tcp -d .$ip.
 --dport 4661 -j DNAT --to 192.168.1.1:4661);

Pour exécuter une commande système dans un script suid root, il est
préférable de séparer le camooande des arguments, en clair essayes system
$iptables, -t nat -A PREROUTING -i ppp+ -p tcp -d .$ip. --dport 4661 -j
DNAT --to 192.168.1.1:4661

(tiens Edonkey!)

Ca devrait mieux marcher.
Le mieux est de préciser le chemin complet de la commande dans $iptables.

En espérant que ça marche

François Boisson



Re: [perl] script firewall en setuid root - insecure dependency

2003-08-30 Par sujet Gregoire Cachet
Le sam 30/08/2003  12:18, Franois Boisson a crit :

 Bonjour
 
Bonjour,

 
  $ENV{'PATH'} = '/bin:/usr/bin:/sbin';
 
 puet tre le /sbin dans le PATH (je n'y crois pas, cf plutt plus bas)
 

je viens de le retirer, il servait a rien de toute les facons, parce que
j'avais 

my $iptables = '/sbin/iptables';

ayant vu sur internet que cela pouvais etre source d'insecure dependency
...

  
  system($iptables. -t nat -A PREROUTING -i ppp+ -p tcp -d .$ip.
  --dport 4661 -j DNAT --to 192.168.1.1:4661);
 
 Pour excuter une commande systme dans un script suid root, il est
 prfrable de sparer le camooande des arguments, en clair essayes system
 $iptables, -t nat -A PREROUTING -i ppp+ -p tcp -d .$ip. --dport 4661 -j
 DNAT --to 192.168.1.1:4661
 

Deja un bon point, je viens de comprendre quelque chose :
la virgule sert a sparer la commande des arguments, je ne comprenais
pas pourquoi il y avait une virgule sur les documents sur le net, je
pensais a la concatnation, mais pourquoi pas un . ?
j'ai donc spar la commande de ses arguments a l'aide de la virgule.
Cependant il a l'air de prendre en compte toute la fin de la chaine
comme un seul caractere, ce qui ne plait pas a iptables qui m'injurie
... 
Dois-je placer des virgules entre chaque argument ?? c'est un peu lourd
... 
D'autant plus que 

system($iptables. -P FORWARD DROP);

fonctionne sans pb avec le . par exemple

Je pense donc bien qu'il s'agit de la variable $ip qui met le bordel ...
en plus quand je la remplace par sa valeur a la main, il n'y a pas de pb

 (tiens Edonkey!)

gagn ;-)

 
 Ca devrait mieux marcher.
 Le mieux est de prciser le chemin complet de la commande dans $iptables.
 
 En esprant que a marche
 

eh non sniff ...

merci pour ton aide !

-- 
Grgoire CACHET
http://www.audacy.fr