Fórum de desenvolvedores

Hackear login no Moodle usando API - Logar no Moodle sem login e senha

 
Picture of Lino Vaz Moniz
Hackear login no Moodle usando API - Logar no Moodle sem login e senha
by Lino Vaz Moniz - Wednesday, 31 July 2019, 10:31 AM
 

Nesse post vou compartilhar com vocês como efetuar login automaticamente no Moodle sem passar login e senha usando API do Moodle. Esse procedimento requer acesso ao FTP  / sistema de arquivos  php do Moodle.

O código apresentado a seguir mostra como fazer isso.  Esse procedimento pode ser útil em seguintes situações:

  • Perdeu a senha de administrador e precisa logar como admin para providenciar alteração de senha;
  • Precisa integrar sistemas para que um usuário entre no Moodle já logado vindo de outros sistema;
  • Acessar como um determinado aluno sem alterar/conhecer a senha dele;

O código a seguir é muito perigoso na mão de pessoas mal intencionadas com acesso ao sistema de arquivo php do Moodle. Pois, use com cautela. 

Logar no Moodle passando parâmetro id do  usuários - Download de código

/*
* Efetua login do usuário no Moodle através do id do usuário registrado na tabela mdl_user
*/

require_once("../config.php");
$user = $DB->get_record('user', array('id'=>2)); //mude o parâmetro do id do usuário. 2 por padrão é id do admin
$r=complete_user_login($user);
 redirect($CFG->httpswwwroot.'/index.php');

 

Logar no Moodle passando e-mail do usuários - Download do código

/*
* Efetua login do usuário pelo e-mail. Basta passar parâmetro email no parâmetro http
* Pode receber parâmetros courseid e page. O courseid é o curso que o usuário deve ser redirecionado.
*
*/
require_once("../config.php");
$email=required_param('email',PARAM_TEXT);
$courseid= optional_param('courseid', NULL,PARAM_INT);
$page = optional_param('page',NULL,PARAM_TEXT);
$user = $DB->get_record('user', array('email'=>$email));
$r=complete_user_login($user);
if($courseid>0){redirect($CFG->httpswwwroot.'/course/view.php?id='.$courseid) ;}
else{
       if($page=='none') { echo " usuario $user->firstname $user->lastname ja esta logado no moodle ";exit;}
     redirect($CFG->httpswwwroot.'/index.php');
}

 

Versão do Moodle

Os códigos acima foram projetados para a versão 2.x  ou  superior  do Moodle. Caso estiver na versão 1.9, apena tire o objeto $DB. Onde tem $DB->get_record substitua para get_record que o código ficará compatível com a versão 1.9

 Para executar esses códigos, crie uma  pasta _extra ou qualquer outra no Moodle. Dentro dessa pasta, crie um arquivo login.php  e copie o código e cole. Ou então faça download dos aquivos e coloque nessa pasta ou qualquer outro. 

Picture of Leonardo Nascimento
Re: Hackear login no Moodle usando API - Logar no Moodle sem login e senha
by Leonardo Nascimento - Tuesday, 8 March 2016, 10:46 AM
 

E quando eu tenho o login e senha? Por exemplo, o aluno já está logado no sistema acadêmico e clica no link do moodle dentro do sistema e vai diretamente sem precisar digitar outra senha. Esse é o meu problema!

Picture of Lino Vaz Moniz
Re: Hackear login no Moodle usando API - Logar no Moodle sem login e senha
by Lino Vaz Moniz - Tuesday, 26 April 2016, 9:57 PM
 

Leonardo,

Se o usuário já tem cadastro no Moodle e você identifica esse cadastro pelo e-mail, por exemplo, não precisa nem passar login e senha. Basta fazer uma consulta por e-mail e recuperar o objeto usuário. Se o usuário não estiver cadastrado, é necessário efetuar o cadastro antes. Neste caso basta passar os parâmetros ou uma chave que possibilita recuperar  o cadastro no sistema SGA   e processar cadastro no Moodle  antes de efetuar o login. 

Picture of Valmir de Santana Santos Junior
Re: Hackear login no Moodle usando API - Logar no Moodle sem login e senha
by Valmir de Santana Santos Junior - Thursday, 22 December 2016, 3:54 PM
 

Boa tarde,

Acho que o meu problema é igual ao do Leonardo,

Pois trabalho com um Portal ERP de terceiros, que me permite colocar um link.

O acesso ao Moodle deverá ser somente atraves do Portal, pensei em pegar a informação de matricula da seção, mas tem como fazer está autenticação pelo Moodle?

Sou novo no ambiente Moodle, qualquer ajuda é bem vindo.

Obrigado

 

Picture of reginaldo martins
Re: Hackear login no Moodle usando API - Logar no Moodle sem login e senha
by reginaldo martins - Sunday, 18 February 2018, 5:45 PM
 

gostaria de saber como fazer pois criei uma pasta no moodle e um arquivo login.php e colei o codigo , loguei em outro site com o email igual do moodle e ao entrar no moodle nao entra

Picture of Silvio Santos
Re: Hackear login no Moodle usando API - Logar no Moodle sem login e senha
by Silvio Santos - Saturday, 7 April 2018, 5:32 PM
 

Prezado, vc usou o exemplo com acesso por e-mail passando um parâmetro com GET ou POST? 

Verifique se fez isso, pois no caso de integração, é necessário.

Picture of ARTHUR DE SOUZA
Re: Hackear login no Moodle usando API - Logar no Moodle sem login e senha
by ARTHUR DE SOUZA - Tuesday, 29 October 2019, 9:29 PM
 

Ola não tantos conhecimentos sobre informatica, e gostaria de saber o processo de execução destes códigos.

Picture of Lino Vaz Moniz
Re: Hackear login no Moodle usando API - Logar no Moodle sem login e senha
by Lino Vaz Moniz - Thursday, 31 October 2019, 11:45 AM
 

Arthur,

Para esse código funcionar é necessário o seguinte procedimento:

1) Coloque esse código em pasta na raiz de instalação do seu Moodle. Sempre recomento criar uma pasta com nome _extra e colocar esse arquivo na pasta. Isso deve ser feito via FTP, um sistema que envia aquivos para servidor. Se esses termos parecerem estranho, peça auxílio de um técnico próximo;

2) Após colocar o arquivo, se for na pasta _extra, execute o seguinte URL no navegador: MOODLE_URL/_extra/logar.php 

Caso tenha usado opção de logar passando e-mail, cujo código está nesse arquivo, o acesso deve ser feito via o seguinte URL:  MOODLE_URL/_extra/logar_email.php?email=XXXXXX

 

Picture of Márcio Lopes
Re: Hackear login no Moodle usando API - Logar no Moodle sem login e senha
by Márcio Lopes - Friday, 6 March 2020, 3:35 PM
 

Badiu, não existe um tratamento de erro para a página destino? Percebi que quando o usuário não existe ele dá esse erro aqui:

 

Picture of Lino Vaz Moniz
Re: Hackear login no Moodle usando API - Logar no Moodle sem login e senha
by Lino Vaz Moniz - Tuesday, 10 March 2020, 9:16 PM
 

Márcio,

Me contextualiza quando e como esse erro ocorre. Em qual versão do Moodle. Que plugin de sincronização está habilitado para o user que está tentando logar. Me explica como esse erro ocorre para eu tentar simular aqui. Após a simulação, vou analisar solução alternativa.