From da1aedabcff4ed2872ab062b8d2bbb603d9e6585 Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 23 Nov 2016 10:32:55 +0100 Subject: [PATCH] Fixed SQL Injection Problem --- cis/private/tools/projektabgabe.php | 148 ++++++++++++++-------------- 1 file changed, 72 insertions(+), 76 deletions(-) diff --git a/cis/private/tools/projektabgabe.php b/cis/private/tools/projektabgabe.php index 7e2e7aaab..afbdf3bd7 100644 --- a/cis/private/tools/projektabgabe.php +++ b/cis/private/tools/projektabgabe.php @@ -22,7 +22,7 @@ */ /******************************************************************************************************* * projektabgabe - * projektabgabe ermöglicht den Download aller Abgaben eines Stg. + * projektabgabe ermöglicht den Download aller Abgaben eines Stg. * fuer Diplom- und Bachelorarbeiten *******************************************************************************************************/ @@ -53,12 +53,12 @@ if(!is_numeric($stg_kz) && $stg_kz!='') $abgabetyp=(isset($_REQUEST['abgabetyp'])?$_REQUEST['abgabetyp']:''); $termin=(isset($_REQUEST['termin'])?$_REQUEST['termin']:''); - + $htmlstr=''; $datum_obj = new datum(); $user = get_uid(); $rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); +$rechte->getBerechtigungen($user); $berechtigung_kurzbz = 'lehre/abgabetool:download'; if(isset($_GET['id']) && isset($_GET['uid'])) @@ -67,14 +67,14 @@ if(isset($_GET['id']) && isset($_GET['uid'])) { if(!is_numeric($_GET['id']) || $_GET['id']=='') die($p->t('global/fehlerBeiDerParameteruebergabe')); - + $file = $_GET['id'].'_'.$_GET['uid'].'.pdf'; $filename = PAABGABE_PATH.$file; header('Content-Type: application/octet-stream'); header('Content-disposition: attachment; filename="'.$file.'"'); readfile($filename); } - else + else { die($p->t('global/keineBerechtigungFuerDieseSeite')); } @@ -84,8 +84,7 @@ if(isset($_GET['id']) && isset($_GET['uid'])) if($aktion!='zip') { - echo ' - + echo ' '.$p->t('abgabetool/projektabgabeUebersicht').' @@ -97,22 +96,22 @@ if($aktion!='zip')

'.$p->t('abgabetool/projektabgabeUebersicht').'

'; - + $s = new studiengang(); $s->loadArray($rechte->getStgKz($berechtigung_kurzbz),'typ,kurzbz'); - + echo'
'; echo $p->t('global/studiengang').": "; - - - $qry_termin=" SELECT distinct campus.tbl_paabgabe.datum as termin , to_char(campus.tbl_paabgabe.datum, 'DD-MM-YYYY') as termin_anzeige - FROM lehre.tbl_projektarbeit - JOIN campus.tbl_paabgabe USING(projektarbeit_id) - LEFT JOIN public.tbl_benutzer ON(uid=student_uid) - LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) - LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - LEFT JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') - - "; - //AND public.tbl_benutzer.aktiv - if ($stg_kz!='') - $qry_termin.=" AND public.tbl_studiengang.studiengang_kz='$stg_kz'"; - if ($abgabetyp!='') - $qry_termin.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz='$abgabetyp'"; - $qry_termin.=" ORDER BY termin desc"; - + $qry_termin=" SELECT distinct campus.tbl_paabgabe.datum as termin , to_char(campus.tbl_paabgabe.datum, 'DD-MM-YYYY') as termin_anzeige + FROM lehre.tbl_projektarbeit + JOIN campus.tbl_paabgabe USING(projektarbeit_id) + LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) + LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + LEFT JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') + "; + //AND public.tbl_benutzer.aktiv + if ($stg_kz!='') + $qry_termin.=" AND public.tbl_studiengang.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER); + if ($abgabetyp!='') + $qry_termin.=" AND campus.tbl_paabgabe.paabgabetyp_kurzbz=".$db->db_add_param($abgabetyp); + $qry_termin.=" ORDER BY termin desc"; + echo ' '.$p->t('abgabetool/termin').' '; - + ?> - + $('#termin').html(output); + $('#termin').result(function(event, data, formatted) {}).focus(); + } + } + ); + } + t('global/anzeigen')."' onclick=\"f=document.abgabeFrm;f.aktion.value='';\"> 

"; } - + ##if($stg_kz!='' || $abgabetyp!='' || $termin!='') if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']=='zip')) @@ -207,20 +203,20 @@ if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']= { die($p->t('global/studiengangKonnteNichtGefundenWerden')); } - + if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt($berechtigung_kurzbz, $s->oe_kurzbz)) { $qry=""; - - $qry.=" SELECT public.tbl_studiengang.bezeichnung as stgbez, campus.tbl_paabgabe.datum as termin,* FROM lehre.tbl_projektarbeit + + $qry.=" SELECT public.tbl_studiengang.bezeichnung as stgbez, campus.tbl_paabgabe.datum as termin,* FROM lehre.tbl_projektarbeit JOIN campus.tbl_paabgabe USING(projektarbeit_id) - LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_benutzer ON(uid=student_uid) LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) - LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) LEFT JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') - + WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') + "; if ($stg_kz!='') @@ -233,7 +229,7 @@ if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']= if($stg_kz=='' && $abgabetyp=='' && $termin=='') { - $qry.=" limit 100 "; + $qry.=" limit 100 "; } if(!$erg=$db->db_query($qry)) @@ -261,7 +257,7 @@ if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']= { $htmlstr .= " uid' target='_blank'>PDF"; } - else + else { $htmlstr .= "     "; } @@ -279,16 +275,16 @@ if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']= { $zipfile = $row->paabgabe_id.'_'.$row->uid.'.pdf'; } - else + else { $zipfile .= " ".$row->paabgabe_id.'_'.$row->uid.'.pdf'; - } + } } } $htmlstr .= ""; } - } - else + } + else { die($p->t('global/keineBerechtigungFuerDieseSeite')); } @@ -317,18 +313,18 @@ else header('Content-Type: application/octet-stream'); header('Content-disposition: attachment; filename="Abgabe_'.$s->kuerzel.'.zip"'); $handle = fopen($zipausgabe, "rb"); - - while (!feof($handle)) + + while (!feof($handle)) { echo fread($handle, 1024); } - + fclose($handle); //echo file_get_contents($zipausgabe); - unlink($zipausgabe); + unlink($zipausgabe); } - else + else { echo $p->t('global/dateiExistiertNicht'); }