summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRamón M. Gómez <ramongomez@us.es>2020-02-18 13:08:26 +0100
committerRamón M. Gómez <ramongomez@us.es>2020-02-18 13:08:26 +0100
commit18eb8d61584b38a2250981b0a9d06c96e7b6e213 (patch)
tree22df03055b68373ed5b9909d1315336e7225b263
parentb7bed1cadd303dc5e927b8d6c33306171fe8ff12 (diff)
#958: Avoid SQL injection in `addtodhcp` and `listclientlive`.
-rwxr-xr-xserver/bin/addtodhcp2
-rwxr-xr-xserver/bin/listclientlive7
2 files changed, 5 insertions, 4 deletions
diff --git a/server/bin/addtodhcp b/server/bin/addtodhcp
index 8aa0651b..039de34d 100755
--- a/server/bin/addtodhcp
+++ b/server/bin/addtodhcp
@@ -50,7 +50,7 @@ done
grep -q "^[ ]*\bsubnet\b" $DHCPCONF || raiseError access "Cannot detect any \"group\" clauses in DHCP configuration file"
grep -q "^[ ]*\bgroup\b" $DHCPCONF && raiseError access "Cannot modify DHCP configuration file with \"group\" clauses"
-[ "$*" ] && WHEREEXPR="WHERE $(echo ${*//\'/\'} | sed -e "s/\('[^']*'\)/nombreaula=\1 OR nombreordenador=\1 OR/g")"
+[ "$*" ] && WHEREEXPR="WHERE $(echo ${*//\'/\\\'} | sed -e "s/\('[^']*'\)/nombreaula=\1 OR nombreordenador=\1 OR/g")"
WHEREEXPR="${WHEREEXPR% OR}"
# Looking for data.
diff --git a/server/bin/listclientlive b/server/bin/listclientlive
index 3e9a7cfb..5d06304d 100755
--- a/server/bin/listclientlive
+++ b/server/bin/listclientlive
@@ -2,11 +2,12 @@
#/**
#@file listclientlive
#@brief Lista la distribución ogLive asociada a los clientes, ya sea un equipo o un aula.
-#@usage listclienlive Ambito
-#@param Ambito nombre de ordenador o nombre de aula
+#@usage listclientlive Ambito
+#@param Ambito nombre de ordenador o nombre de aula
#@version 1.1.0 - Versión inicial basada en el script "listclientmode"
#@author Ramón M. Gómez, ETSII Universidad de Sevilla
#@date 2017-06-01
+#**/
# Variables.
@@ -24,7 +25,7 @@ source $OPENGNSYS/lib/ogfunctions.sh || exit 1
source $SERVERCONF 2>/dev/null || raiseError access "Sin acceso a fichero de configuración"
# Sustituir caracteres ' por \' para evitar inyección SQL.
-RESOURCE="${1//\'/\'}"
+RESOURCE="${1//\'/\\\'}"
# Obtener nombre de ordenador individual o todos los de una aula e indicar su plantilla asociada.
dbexec "SELECT CONCAT_WS('', 'Equipo \"', ord.nombreordenador, '\" asociado a cliente \"',
ord.oglivedir, '\" $([ -e $TFTPDIR/$OGLIVE ] || echo "(inexistente)")')