mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-14 02:29:27 +00:00
Fixed Remote Code Execution Lücke
This commit is contained in:
@@ -25,56 +25,61 @@
|
||||
* @create 20-03-2006
|
||||
* Aufruf: zipdownload.php?stg=255&sem=1$short=eng
|
||||
*/
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
$user = get_uid();
|
||||
$user = get_uid();
|
||||
|
||||
//Gueltigkeit der Parameter pruefen
|
||||
if(!isset($_GET['uebung_id']) || !is_numeric($_GET['uebung_id']))
|
||||
{
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
}
|
||||
if(!isset($_GET['lehreinheit_id']) || !is_numeric($_GET['lehreinheit_id']))
|
||||
{
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
}
|
||||
if(!isset($_GET['stsem']))
|
||||
{
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
}
|
||||
if(!isset($_GET['downloadname']))
|
||||
{
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
}
|
||||
if(!check_lektor($user))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
|
||||
$uebung_id = $_GET['uebung_id'];
|
||||
$lehreinheit_id = $_GET['lehreinheit_id'];
|
||||
$stsem = $_GET['stsem'];
|
||||
$downloadname = $_GET['downloadname'];
|
||||
|
||||
//Gueltigkeit der Parameter pruefen
|
||||
if(!isset($_GET['uebung_id']) || !is_numeric($_GET['uebung_id']))
|
||||
{
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
}
|
||||
if(!isset($_GET['lehreinheit_id']) || !is_numeric($_GET['lehreinheit_id']))
|
||||
{
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
}
|
||||
if(!isset($_GET['stsem']))
|
||||
{
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
}
|
||||
if(!isset($_GET['downloadname']))
|
||||
{
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
}
|
||||
|
||||
//Pfade bauen
|
||||
$pfad = BENOTUNGSTOOL_PATH.'abgabe/';
|
||||
$filename = 'download_'.$user.'_'.$downloadname.'.zip';
|
||||
|
||||
|
||||
//Pfad wechseln
|
||||
chdir($pfad);
|
||||
|
||||
|
||||
//File loeschen falls es existiert
|
||||
//if(file_exists("download_".$user."*"))
|
||||
exec("rm download_".$user."*");
|
||||
|
||||
//Zip File erstellen
|
||||
exec("zip -r ".$filename." *_[WS]S[0-9][0-9][0-9][0-9]_".$uebung_id."_*");
|
||||
$uebung_id = $_GET['uebung_id'];
|
||||
$lehreinheit_id = $_GET['lehreinheit_id'];
|
||||
$stsem = $_GET['stsem'];
|
||||
$downloadname = $_GET['downloadname'];
|
||||
|
||||
//Auf Zip File Verweisen
|
||||
//header("Location: $pfad$filename");
|
||||
header('Content-Type: application/octet-stream');
|
||||
header('Content-disposition: attachment; filename="'.$filename.'"');
|
||||
readfile($filename);
|
||||
unlink($filename);
|
||||
?>
|
||||
if(mb_strstr($downloadname,'..'))
|
||||
die('Ungueltiger Parameter gefunden');
|
||||
|
||||
//Pfade bauen
|
||||
$pfad = BENOTUNGSTOOL_PATH.'abgabe/';
|
||||
$filename = 'download_'.$user.'_'.$downloadname.'.zip';
|
||||
|
||||
if(!check_filename($filename))
|
||||
die('Ungueltiger Parameter gefunden');
|
||||
|
||||
//Pfad wechseln
|
||||
chdir($pfad);
|
||||
|
||||
//File loeschen falls es existiert
|
||||
//if(file_exists("download_".$user."*"))
|
||||
exec('rm download_'.$user.'*');
|
||||
|
||||
//Zip File erstellen
|
||||
exec("zip -r ".escapeshellarg($filename).' *_[WS]S[0-9][0-9][0-9][0-9]_'.$uebung_id.'_*');
|
||||
|
||||
//Auf Zip File Verweisen
|
||||
//header("Location: $pfad$filename");
|
||||
header('Content-Type: application/octet-stream');
|
||||
header('Content-disposition: attachment; filename="'.$filename.'"');
|
||||
readfile($filename);
|
||||
unlink($filename);
|
||||
?>
|
||||
|
||||
@@ -102,7 +102,7 @@ $openpath = DOC_ROOT.'/documents/'.strtolower($stg_obj->kuerzel).'/'.$lv_obj->se
|
||||
if(is_file($openpath . $inhalt))
|
||||
{
|
||||
writeCISlog('DELETE', "rm -r '$openpath$inhalt'");
|
||||
exec("rm -r '$openpath$inhalt'");
|
||||
exec("rm -r ".escapeshellarg($openpath.$inhalt));
|
||||
echo '<center>'.$p->t('global/erfolgreichgelöscht').'</center>';
|
||||
}
|
||||
else
|
||||
@@ -132,11 +132,11 @@ $openpath = DOC_ROOT.'/documents/'.strtolower($stg_obj->kuerzel).'/'.$lv_obj->se
|
||||
{
|
||||
if(!stristr($fn, '.php') && !stristr($fn, '.php3') &&
|
||||
!stristr($fn,'.php4') && !stristr($fn, '.php5') &&
|
||||
!stristr($fn, '.cgi') && !stristr($fn, '.pl'))
|
||||
!stristr($fn, '.cgi') && !stristr($fn, '.pl') && !stristr($fn, '.phtml'))
|
||||
{
|
||||
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$openpath . $fn))
|
||||
{
|
||||
exec('sudo chown www-data:teacher "'.$openpath.$fn.'"');
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg($openpath.$fn));
|
||||
echo '<center>'.$p->t('semesterplan/fileErfolgreichHochgeladen').'</center>';
|
||||
}
|
||||
else
|
||||
@@ -181,4 +181,4 @@ $openpath = DOC_ROOT.'/documents/'.strtolower($stg_obj->kuerzel).'/'.$lv_obj->se
|
||||
?>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -86,8 +86,8 @@ function checkZeilenUmbruch()
|
||||
$dir_name=$DOC_ROOT.'/documents';
|
||||
if(!is_dir($dir_name))
|
||||
{
|
||||
exec('mkdir -m 755 "'.$dir_name.'"');
|
||||
exec('sudo chown www-data:teacher "'.$dir_name.'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg($dir_name));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg($dir_name));
|
||||
}
|
||||
$angemeldet = true;
|
||||
if(defined('CIS_LEHRVERANSTALTUNG_WENNANGEMELDET_DETAILS_ANZEIGEN') && CIS_LEHRVERANSTALTUNG_WENNANGEMELDET_DETAILS_ANZEIGEN && !$is_lector)
|
||||
@@ -123,23 +123,23 @@ function checkZeilenUmbruch()
|
||||
{
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/semesterplan'))
|
||||
{
|
||||
exec('mkdir -m 775 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/semesterplan"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/semesterplan"');
|
||||
exec('mkdir -m 775 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/semesterplan'));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/semesterplan'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,23 +206,23 @@ function checkZeilenUmbruch()
|
||||
{
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/download'))
|
||||
{
|
||||
exec('mkdir -m 775 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/download"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/download"');
|
||||
exec('mkdir -m 775 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/download'));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/download'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,23 +294,23 @@ function checkZeilenUmbruch()
|
||||
{
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'))
|
||||
{
|
||||
exec('mkdir -m 775 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung"');
|
||||
exec('mkdir -m 775 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -453,7 +453,7 @@ function checkZeilenUmbruch()
|
||||
//Moodle
|
||||
$showmoodle=false;
|
||||
//Schauen ob Moodle fuer diesen Studiengang freigeschaltet ist
|
||||
$qry = "SELECT moodle FROM public.tbl_studiengang JOIN lehre.tbl_lehrveranstaltung USING(studiengang_kz) WHERE lehrveranstaltung_id='".addslashes($lvid)."'";
|
||||
$qry = "SELECT moodle FROM public.tbl_studiengang JOIN lehre.tbl_lehrveranstaltung USING(studiengang_kz) WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER);
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
@@ -572,23 +572,23 @@ function checkZeilenUmbruch()
|
||||
{
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)))
|
||||
{
|
||||
exec('mkdir -m 755 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'"');
|
||||
exec('sudo chown www-data:teacher "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'"');
|
||||
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
|
||||
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
|
||||
}
|
||||
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/upload'))
|
||||
{
|
||||
exec('mkdir -m 775 "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/upload"');
|
||||
exec('sudo chown www-data:student "'.DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/upload"');
|
||||
exec('mkdir -m 775 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/upload'));
|
||||
exec('sudo chown www-data:student '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/upload'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user