Accueil › Forums › Programmation WIMS › Programmation d’exercices OEF › caratére underscore dans maxima
- Ce sujet contient 4 réponses, 4 participants et a été mis à jour pour la dernière fois par boud, le il y a 10 années et 7 mois.
-
AuteurMessages
-
-
8 décembre 2013 à 10:10 #1812Dominique SOUDIEREParticipant::
Bonjour,
je n’arrive pas à faire passer la fonction power_mod de maxima dans Wims. Le caratére underscore semble ne pas être reconnu. Quelqu’un sait il comment contourner. Précision: j’ai besoin de cette fonction pour du cryptage RSA sur des grands nombres où mod ne passe pas.
Par exemple y-a-t-il un équivalent dans une autre langage comme Pari?
Y-a-t-il un moyen de remplacer le _ dans la commande sous Wims?
Dominique -
8 décembre 2013 à 14:54 #1813bernadetteMaître des clés
-
24 mai 2014 à 01:53 #2218boudParticipant::
Cette substitution d’un underscore par un « K » est toujours présent
dans la version actuelle de https://subversion.renater.fr/wimsdev/trunk/wims/src/Interfaces/maxima.c:* check for security violations in command string */ void check_parm(char *pm) { char *s, *pp; int l; /* Underscore replacement */ for(pp=strchr(pm,'_'); pp!=NULL; pp=strchr(pp+1,'_')) *pp='K'; /* '?' escapes to Lisp commands. */ if(strchr(pm,'?')!=NULL) { fprintf(stderr,"Illegal under WIMS.\n"); exit(1); } for(s=pm;*s;s++) *s=tolower(*s); strip_trailing_spaces(pm); l=strlen(pm); if(l>0 && pm[l-1]!=';') strcat(pm,";"); find_illegal(pm); }
Elle me gêne aussi (je souhaiterais utiliser quad_gaqs dans
maxima). Je ne connais pas suffisamment maxima pour savoir si l’underscore
est réellement une source d’exploits de sécurité.J’ai essayé (sans succès) le hack suivant. J’ai créé le fichier
~<wimsuser>/.maxima/maxima-init.mac
avec le contenu
powerkmod(a,n,m):=power_mod(a,n,m);
où<wimsuser>
est l’utilisateur wims, par ex.wims
.Pour un utilisateur ordinaire avec un fichier identique
~/.maxima/maxima-init.mac
,
l’on pourrait ainsi utiliser la fonctionpowerkmod
comme alias depower_mod
.Mais l’appel de wims à maxima ne semble pas lire le fichier ~/.maxima/maxima-init.mac.
Deux questions, donc :
L’underscore est-il un danger pour faire un exploit dans maxima ? (Il est évident
qu’il ouvre accès à un plus grand nombre de fonctions dans maxima.)Y a-t-il un workaround temporaire pour ceux qui veulent utiliser les fonctions avec un underscore dans
maxima appelé par wims, tout en acceptant ce risque (inconnu) ?- Cette réponse a été modifiée le il y a 10 années et 7 mois par boud. Raison: anchor
- Cette réponse a été modifiée le il y a 10 années et 7 mois par boud. Raison: peut-etre les urls sont desactives ? c'est pas grave
- Cette réponse a été modifiée le il y a 10 années et 7 mois par boud. Raison: plus elegant
- Cette réponse a été modifiée le il y a 10 années et 7 mois par boud. Raison: ou
-
24 mai 2014 à 08:26 #2226jm.eversParticipant::
Hi, there are a « few » ways to ‘escape to lisp’ from the maxima commandline.
the simplest, being to_lisp();joke@zondag /home/joke : maxima Maxima 5.31.3 http://maxima.sourceforge.net using Lisp SBCL 1.1.12 Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) to_lisp(); Type (to-maxima) to restart, ($quit) to quit Maxima. MAXIMA> (open "/etc/passwd") #<SB-SYS:FD-STREAM for "file /etc/passwd" {1005CFC9D3}> MAXIMA> (with-open-file (stream "/etc/passwd")(read-line stream)) "# $FreeBSD: release/10.0.0/etc/master.passwd 256366 2013-10-12 06:08:18Z rpaulo $" NIL
and lisp in turn has full potential of accessing the complete system…
-
24 mai 2014 à 20:48 #2229boudParticipant::
So blocking underscores is definitely a security feature!
Just to check,\text{escapetolisp = maxima(to_lisp();)} \statement{Repondre a la question svp.<br /> escapetolisp = \escapetolisp}
in an oef source gives
Repondre a la question svp. escapetolisp = toklisp()
So to_lisp is disabled.
I suspect that
eval_string
probably should remain disabled too – as it
is at the moment with underscores being replaced by « K » (which then becomes
« k »). The « ? » escape to lisp leads to a rapid exit(1):
https://subversion.renater.fr/wimsdev/trunk/wims/src/Interfaces/maxima.c
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.