Page 3 of 4
Re: Landing page
Posted: Mon Sep 23, 2013 8:12 am
by Simbiosi
eccolo qua, posto tutta la parte.
Code: Select all
public static function generateSignature($addendum = false) {
if($addendum == false) $addendum = time();
if(!isset($_SESSION['mdsign'])) {
$_SESSION['mdsign'] = md5(uniqid(rand(), true) ."|". mt_rand() ."|". $addendum);
$_SESSION['mdsign_timestamp'] = time();
}
}
/**
* Get the signature saved in session or generate a new signature if needed
* @return string
*/
public static function getSignature($for_link = false) {
if(!isset($_SESSION['mdsign'])) Util::generateSignature();
if($for_link) return 'authentic_request='.$_SESSION['mdsign'];
return $_SESSION['mdsign'];
}
/**
* Check if the signature attached to the page request is valid, user in order to detect foreigns requests
*/
public static function checkSignature() {
//signature from a post or get
$authentic_request = Get::req('authentic_request', DOTY_STRING, '');
// signature from a ajax request
if(!$authentic_request && isset($_SERVER['HTTP_X_SIGNATURE'])) $authentic_request = $_SERVER['HTTP_X_SIGNATURE'];
if(!isset($_SESSION['mdsign'])
|| $authentic_request != $_SESSION['mdsign']
) {
// Invalid request
if (!defined('IS_AJAX')) {
Util::jump_to(Get::rel_path('lms').'/index.php?modname=login&op=logout&msg=101');
}
Util::fatal('Security issue, the request seem invalid ! Try a new login and retry.');
}
}
Re: Landing page
Posted: Tue Sep 24, 2013 8:21 am
by jasmines
Il problema a quanto pare è che oltre a un controllo sulla signature c'è anche un controllo sulla sessione, per cui anche aprendola sulla pagina di login, non è la stessa che aprirebbe docebo, quindi in linea di massima non può funzionare su due server diversi.
Nel tuo caso, se la pagina di login è sulla stessa istanza di apache della piattaforma (così pare) potrebbe funzionare una cosa del genere:
Code: Select all
<?php
session_start();
$_SESSION['mdsign'] = md5(uniqid(rand(), true) ."|". mt_rand() ."|". time());
$_SESSION['mdsign_timestamp'] = time();
?>
<form id="login_confirm" method="post" action="http://e.frareg.com/doceboLms/index.php?modname=login&op=confirm">
<input type="hidden" id="authentic_request_login_confirm" name="authentic_request" value="<?php echo $_SESSION['mdsign'];?>" />
<label for="login_userid">Username</label>
<input type="text" id="login_userid" name="login_userid" value="" maxlength="255" tabindex="1" />
<label for="login_pwd">Password</label>
<input type="password" id="login_pwd" name="login_pwd" maxlength="255" tabindex="2" autocomplete="off" />
<input type="submit" id="login" name="log_button" value="Login" tabindex="3" />
</form>
Re: Landing page
Posted: Tue Sep 24, 2013 8:31 am
by Simbiosi
e questa?
http://www.docebo.com/community/doceboC ... lOgin.html
se riesco a capire quale sia l'if di cui parla potrei commentarlo anche io.
ho trovato anche
http://www.docebo.com/community/doceboC ... e_web.html
ps
in ogni caso non lavora, neanche nella root dove si trova l'index originale.
L'unica soluzione è disabilitare il controllo che fa, anche se perdo in sicurezza.
Re: Landing page
Posted: Tue Sep 24, 2013 9:49 am
by jasmines
Si riferiscono alla 3.6...
Re: Landing page
Posted: Tue Sep 24, 2013 9:59 am
by jasmines
Prova a commentare l'intera funzione in /lib/lib.utils.php:
Code: Select all
public static function checkSignature() {
/*
//signature from a post or get
$authentic_request = Get::req('authentic_request', DOTY_STRING, '');
// signature from a ajax request
if(!$authentic_request && isset($_SERVER['HTTP_X_SIGNATURE'])) $authentic_request = $_SERVER['HTTP_X_SIGNATURE'];
//die(var_dump($_SESSION['mdsign']));
if(!isset($_SESSION['mdsign'])
|| $authentic_request != $_SESSION['mdsign']
) {
// Invalid request
if (!defined('IS_AJAX')) {
Util::jump_to(Get::rel_path('lms').'/index.php?modname=login&op=logout&msg=101');
}
Util::fatal('Security issue, the request seem invalid ! Try a new login and retry.');
}*/
}
Re: Landing page
Posted: Tue Sep 24, 2013 10:24 am
by Simbiosi
purtroppo non funziona.
Da errore nel server appena si prova ad autenticarsi.
SI lo so che erano per la 3 ma pensavo avessero solo " riordinato le funzioni" e magari la chiamata si trovava nel bootstrap ( invece no ).
Re: Landing page
Posted: Tue Sep 24, 2013 10:31 am
by jasmines
Cmq è lì che devi lavorare... prova a commentare solo la parte Invalid request...
Re: Landing page
Posted: Tue Sep 24, 2013 10:51 am
by Simbiosi
SOLUZIONE FUNZIONANTE:
Aprire il file lib.utils.php ( /lib )
E modificare con questo codice la funziona checkSignature.
Code: Select all
public static function checkSignature() {
//signature from a post or get
$authentic_request = Get::req('authentic_request', DOTY_STRING, '');
// signature from a ajax request
if(!$authentic_request && isset($_SERVER['HTTP_X_SIGNATURE'])) $authentic_request = $_SERVER['HTTP_X_SIGNATURE'];
/* if(!isset($_SESSION['mdsign'])
|| $authentic_request != $_SESSION['mdsign']
) {
// Invalid request
if (!defined('IS_AJAX')) {
Util::jump_to(Get::rel_path('lms').'/index.php?modname=login&op=logout&msg=101');
}
Util::fatal('Security issue, the request seem invalid ! Try a new login and retry.');
}*/
}
Per la precisione ho commentato solo questo pezzo:
Code: Select all
/* if(!isset($_SESSION['mdsign'])
|| $authentic_request != $_SESSION['mdsign']
) {
// Invalid request
if (!defined('IS_AJAX')) {
Util::jump_to(Get::rel_path('lms').'/index.php?modname=login&op=logout&msg=101');
}
Util::fatal('Security issue, the request seem invalid ! Try a new login and retry.');
}*/
tnx to jasmines
Re: Landing page
Posted: Tue Oct 08, 2013 2:45 pm
by jasmines
Ciao, qualcuno ha trovato il modo di accedere dall'esterno senza modificare il controllo sulla signature che da' grossi rischi sicurezza?
Mi riferisco in particolare a max e pasto che dicevano di averlo fatto...
Re: Landing page
Posted: Tue Oct 08, 2013 3:36 pm
by max
Ciao Jasmines,
l'avevamo fatto con una 3.6, come dicevo qualche post fa, e il sistema è cambiato da allora...