Você não está conectado. Conecte-se ou registre-se

Power Pixel » Games » MMO & RPG » Habbo Hotel » Tutoriais » FIX HELIOCMS V5 index.php

FIX HELIOCMS V5 index.php

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 FIX HELIOCMS V5 index.php em Dom 20 Nov 2016 - 20:47

jmths

Membro


avatar
Pessoal, achei um erro grave na HelioCMS V5. Não sei se isso afeta a todas as elas, mas pelo menos comigo afetou, e é uma falha grave pois os hackers podem usá-la para invadir seu hotel e as contas!!!

A falha é basicamente no sistema de login, que ao digitar o e-mail você não precisa digitar a senha, apenas dar enter e ele irá entrar na conta como se você tivesse digitado a senha!

A solução é: DESATIVAR O LOGIN POR E-MAIL. 


Como fazer?
Vá em index.php, e procure por:
Código:

$user_verify = mysql_query("SELECT * FROM users WHERE mail='$emailorusername' or username='$emailorusername' && password='".MD5($password)."' LIMIT 1");

Substitua por:
Código:

$user_verify = mysql_query("SELECT * FROM users WHERE username='$emailorusername' && password='".MD5($password)."' LIMIT 1");

Repita o mesmo procedimento no arquivo includes/modal_login.php

Isso irá remover o acesso por e-mail, ficando apenas o acesso por usuário.

Espero ter ajudado!

Ver perfil do usuário

2 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 11:36

Luan Martins

Membro Diamante


avatar
O problema esta no Operador Logico "OR" ele passa se qualquer uma das alternativas retornar TRUE
Acredito que se altera-lo para and resolva o problema.


eu não sei se estou enferrujado, mas acho que nunca vi o operador logico && em SQL, acredito que seu codigo ainda sim está errado.


em SQL o operador logico para verificar se todas alternativas são corretas é AND


$user_verify = mysql_query("SELECT * FROM users WHERE mail='$emailorusername' or username='$emailorusername' AND password='".MD5($password)."' LIMIT 1");



creio que isso resolva o problema, mas me espanta de ter entrado com && sem dar erro, vou pesquisar sobre.


afinal usa mysql para fazer alterações no banco de dados, coisa das primeiras versões do php, já esta meio velinho isso ai, tipo uns 15 anos.

Ver perfil do usuário http://www.hapixel.com.br

3 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 11:51

jmths

Membro


avatar
[Você precisa estar registrado e conectado para ver este link.] escreveu:O problema esta no Operador Logico "OR" ele passa se qualquer uma das alternativas retornar TRUE
Acredito que se altera-lo para and resolva o problema.


eu não sei se estou enferrujado, mas acho que nunca vi o operador logico && em SQL, acredito que seu codigo ainda sim está errado.


em SQL o operador logico para verificar se todas alternativas são corretas é AND


creio que isso resolva o problema, mas me espanta de ter entrado com && sem dar erro, vou pesquisar sobre.


afinal usa mysql para fazer alterações no banco de dados, coisa das primeiras versões do php, já esta meio velinho isso ai, tipo uns 15 anos.

O modo mais rápido e prático que eu achei pra resolver isso, é remover o login por e-mail por causa da tal falha.

Como eu não sei muito sobre códigos php apenas edições, então resolvi postar pra tentar ajudar.

Tentei sua correção e nada, vou tentar pesquisar aqui e ver se consigo fazer funcionar o e-mail + senha.

Tentei sua solução e nada, ainda entra sem a senha

Ver perfil do usuário

4 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 11:53

Luan Martins

Membro Diamante


avatar
era para ter passado, mas tem outra forma vou fazer aqui para você

você poderia me mandar o php da pagina, pois estou meio perdido, tem area tanto para email quanto para usuario, ou é uma area para os dois, no codigo que eu enviei para você ele entrou sem a senha?

Código:
<?php



?>



Ver perfil do usuário http://www.hapixel.com.br

5 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 11:57

jmths

Membro


avatar
Sim, ele entrou sem a senha mesmo assim.

index.php:
Código:

<?php
require_once ('heliocms/core.php');
if ($_GET['unlock'] == "$w") {
$message = '<div id="toast_container_s" class="toast-top-center" aria-live="polite" role="alert"><div class="toast toast-success" style="display: tab[b][/b]le;"><div class="toast-message">¡Cuenta desbloqueada!</div></div></div>';
}
$emailorusername_class = 'form__input login-form__input ng-pristine ng-untouched ng-invalid ng-invalid-required ng-valid-email';
$password_class = 'form__input login-form__input ng-pristine ng-untouched ng-invalid ng-invalid-required';
if (isset($_POST['login'])) {
$emailorusername = $_POST['emailorusername'];
$password = $_POST['password'];
$user_verify = mysql_query("SELECT * FROM users WHERE mail='$emailorusername' or username='$emailorusername' AND password='".MD5($password)."' LIMIT 1");
$user_fetch = mysql_fetch_assoc($user_verify);
if (mysql_num_rows($user_verify) == 0) {
$error = '1';
$emailorusername_class = 'form__input login-form__input ng-valid ng-dirty ng-valid-parse ng-touched ng-invalid';
$password_class = 'form__input login-form__input ng-valid ng-dirty ng-valid-parse ng-touched ng-invalid';
}else{
$ban_check = mysql_query("SELECT * FROM bans WHERE value='$user_fetch[username]'");
if(mysql_num_rows($ban_check) == 1){
$ban = mysql_fetch_assoc($ban_check);
$message = '<div id="toast-container" class="toast-top-center toast-sticky" aria-live="polite" role="alert"><div class="toast toast-error" style="display: block;"><div class="toast-progress"></div><div class="toast-title">¡Has sido baneado!</div><div class="toast-message">Has sido baneado permanentemente por: <b>'.$ban['reason'].'</b>.<button id="toast-close" class="toast-button">OK</button></div></div></div>';
}else{
$user_safety_a = mysql_query("SELECT * FROM heliocms_safetyquestions WHERE email='$user_fetch[mail]'");
$user_safety_q = mysql_fetch_assoc($user_safety_a);
$_SESSION['id'] = $user_fetch['id'];
if ($user_safety_q['trusted_ip'] <> $ip) {
mysql_query("UPDATE heliocms_safetyquestions SET active='1' WHERE email='$user_fetch[mail]'");
}
mysql_query("UPDATE users SET ip_last='$ip' WHERE mail='$user_fetch[mail]'");
mysql_query("INSERT INTO heliocms_sessions (last,user_id) VALUES ('".time()."','$user_fetch[id]')");
header ("Location: $site");
}}}
if (isset($_POST['forgotten_submit'])) {
$email_forgotten = $_POST['emailAddress'];
if (empty($email_forgotten)) {
$message = '<div id="toast_container_s" class="toast-top-center" aria-live="polite" role="alert"><div class="toast toast-error" style="display: tab[b][/b]le;"><div class="toast-message">Has dejado el campo "email" vacío.</div></div></div>';
}else{
if (!preg_match("/^[A-Z0-9._-]{2,}+@[A-Z0-9._-]{2,}\.[A-Z0-9._-]{2,}$/i", $email_forgotten)) {
$message = '<div id="toast_container_s" class="toast-top-center" aria-live="polite" role="alert"><div class="toast toast-error" style="display: tab[b][/b]le;"><div class="toast-message">Has introducido un email inválido.</div></div></div>';
}else{
mysql_query("INSERT INTO heliocms_forgotten (email) VALUES ('$email_forgotten')");
$message = '<div id="toast_container_s" class="toast-top-center" aria-live="polite" role="alert"><div class="toast toast-success" style="display: tab[b][/b]le;"><div class="toast-message">En breve te enviaremos un email para recuperar tu contraseña. <b>'.$email_forgotten.'</b>.</div></div></div>';
}}}
if (isset($_GET['badge_id'])) {
$badge_a = mysql_query("SELECT * FROM heliocms_badgestore WHERE code='$_GET[badge_id]'");
$badge_q = mysql_fetch_assoc($badge_a);
if (isset($_SESSION['id'])) {
if ($user_q['credits'] - $badge_q['price'] <= '0') {
$message = '<div id="toast_container_s" class="toast-top-center" aria-live="polite" role="alert"><div class="toast toast-error" style="display: tab[b][/b]le;"><div class="toast-message">No tienes créditos suficientes para comprar esta placa.</div></div></div>';
}else{
if ($_GET['badge_id'] <> $badge_q['code']) {
}else{
$badge_already_a = mysql_query("SELECT * FROM user_badges WHERE badge_id='$_GET[badge_id]' AND user_id='$user_q[id]'");
if (mysql_num_rows($badge_already_a) == '0') {
$message = '<div id="toast_container_s" class="toast-top-center" aria-live="polite" role="alert"><div class="toast toast-success" style="display: tab[b][/b]le;"><div class="toast-message">Placa comprada correctamente.</div></div></div>';
mysql_query("INSERT INTO user_badges (user_id,badge_id) VALUES ('$user_q[id]','$_GET[badge_id]')");
mysql_query("UPDATE users SET credits = credits - $badge_q[price] WHERE id='$user_q[id]'");
}}}}}
?>

includes/modal_login.php
Código:

<?php
ini_set('default_charset','UTF-8','ISO-8859-');
if (isset($_POST['login'])) {
$emailorusername = $_POST['emailorusername'];
$password = $_POST['password'];
$user_verify = mysql_query("SELECT * FROM users WHERE mail='$emailorusername' or username='$emailorusername' AND password='".MD5($password)."' LIMIT 1");
$user_fetch = mysql_fetch_assoc($user_verify);
$ban_check = mysql_query("SELECT * FROM bans WHERE value='$user_fetch[username]'");
if (empty($emailorusername)) {
echo '<div id="toast_container_s" class="toast-top-center" aria-live="polite" role="alert"><div class="toast toast-error" style="display: tab[b][/b]le;"><div class="toast-message">O campo de usuário está vazio!</div></div></div>';
}else{
if (empty($password)) {
echo '<div id="toast_container_s" class="toast-top-center" aria-live="polite" role="alert"><div class="toast toast-error" style="display: tab[b][/b]le;"><div class="toast-message">O campo de senha está vazia!</div></div></div>';
}else{
if (mysql_num_rows($user_verify) == 0) {
echo '<div id="toast_container_s" class="toast-top-center" aria-live="polite" role="alert"><div class="toast toast-error" style="display: tab[b][/b]le;"><div class="toast-message">Usuário ou senha incorretos!</div></div></div>';
}else{
if(mysql_num_rows($ban_check) == 1){
$ban = mysql_fetch_assoc($ban_check);
echo '<div id="toast-container" class="toast-top-center toast-sticky" aria-live="polite" role="alert"><div class="toast toast-error" style="display: block;"><div class="toast-progress"></div><div class="toast-title">VOCÊ FOI BANIDO!</div><div class="toast-message"><button id="toast-close" class="toast-button">OK</button></div></div></div>';
}else{
$user_safety_a = mysql_query("SELECT * FROM heliocms_safetyquestions WHERE email='$user_fetch[mail]'");
$user_safety_q = mysql_fetch_assoc($user_safety_a);
$_SESSION['id'] = $user_fetch['id'];
if ($user_safety_q['trusted_ip'] <> $ip) {
mysql_query("UPDATE heliocms_safetyquestions SET active='1' WHERE email='$user_fetch[mail]'");
}
mysql_query("UPDATE users SET ip_last='$ip' WHERE mail='$user_fetch[mail]'");
mysql_query("INSERT INTO heliocms_sessions (last,user_id) VALUES ('".time()."','$user_fetch[id]')");
header ("Location: $og");
}}}}}
?>

Ver perfil do usuário

6 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 11:59

Luan Martins

Membro Diamante


avatar
Eu vou ler os codigos que vocÇe mandou agora, mas antes tenta assim

$user_verify = mysql_query("SELECT * FROM users WHERE mail='$emailorusername' ANY username='$emailorusername' AND password='".MD5($password)."' LIMIT 1");


eu tenho certeza que isso é no operador logico, tenta dessta forma agora.

já li o codigo, vou esperar você responder, se não der certo tento outra forma aqui.

essa cms é muito vulneravel a SQL Injection

como pode ver $emailorusername = $_POST['emailorusername'];

Ela não filtra o dado antes de jogalo no banco.

Ver perfil do usuário http://www.hapixel.com.br

7 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 12:01

jmths

Membro


avatar
[Você precisa estar registrado e conectado para ver este link.] escreveu:Eu vou ler os codigos que vocÇe mandou agora, mas antes tenta assim

$user_verify = mysql_query("SELECT * FROM users WHERE mail='$emailorusername' ANY username='$emailorusername' AND password='".MD5($password)."' LIMIT 1");


eu tenho certeza que isso é no operador logico, tenta dessta forma agora.

Então cara, com esse código aí, mesmo botando login e senha corretamente não vai, dá campo de usuário/senha incorreto.
O mesmo acontece colocando usuário e senha.

Ver perfil do usuário

8 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 12:02

Luan Martins

Membro Diamante


avatar
ok entendi, eu vou fazer a verificação por php e te mando, vai demorar um pouco q estou indo almoçar agora, mas te mando ainda hoje, daqui 1 hora

Ver perfil do usuário http://www.hapixel.com.br

9 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 12:03

jmths

Membro


avatar
[Você precisa estar registrado e conectado para ver este link.] escreveu:ok entendi, eu vou fazer a verificação por php e te mando, vai demorar um pouco q estou indo almoçar agora, mas te mando ainda hoje, daqui 1 hora

Também estou indo almoçar, até depois.
Vai ajudar muita gente :D

Ver perfil do usuário

10 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 13:26

pedxz

Administrator


avatar
O meu caro colega Luan Martins não está a conseguir acender ao ppf, por isso mandou isto para vc:


Voltei, olha eu testei minha logica aqui no SGBD da MySQL é funcionou perfeitamente,
teste na minha cms funcionou perfeitamente

a syntax deve ser escrita desta forma

$user_verify = mysql_query("select * from users where username = '"{$emailorusername}"' OR mail = '"{$emailorusername}"' AND password = '"{md5($password);}"'");

como você pode ver no gif que demonstro

Ver perfil do usuário

11 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 14:46

Luan Martins

Membro Diamante


avatar
vlw Ped, mandei o codigo com 1 ; a mais

então o real seria assim

$user_verify = mysql_query("select * from users where username = '"{$emailorusername}"' OR mail = '"{$emailorusername}"' AND password = '"{md5($password)}"'");

Ver perfil do usuário http://www.hapixel.com.br

12 Re: FIX HELIOCMS V5 index.php em Sex 25 Nov 2016 - 19:02

jmths

Membro


avatar
[Você precisa estar registrado e conectado para ver este link.] escreveu:vlw Ped, mandei o codigo com 1 ; a mais

então o real seria assim

$user_verify = mysql_query("select * from users where username = '"{$emailorusername}"' OR mail = '"{$emailorusername}"' AND password = '"{md5($password)}"'");

Com esse código, dá isso:
Parse error: syntax error, unexpected '{' in C:\HABBOHOTEL\VertrigoServ\www\index.php on line 11

Ver perfil do usuário

13 Re: FIX HELIOCMS V5 index.php em Sab 26 Nov 2016 - 16:19

Luan Martins

Membro Diamante


avatar
mds, mas eu comentei aqui mais de 3000 vezes e meu comentario não foi.

então syntax error
provavelmente você apagou algo no codigo que gerou esse erro, pois rodei o codigo q te mandei no netbeans e não existe nele erro de syntax


pra mim poder fazer a verificação para você, vou pedir que mande-me seu skype, ou me passe tv, pois eu não tenho a cms aqui, e nunca usei, mas farei pelo tv para vc.

Ver perfil do usuário http://www.hapixel.com.br

14 Re: FIX HELIOCMS V5 index.php em Ter 14 Fev 2017 - 19:06

tsuname7.s

Membro Bronze


avatar
Realmente o código tá com erro, ta foda de solucionar.

Ver perfil do usuário

15 Re: FIX HELIOCMS V5 index.php em Ter 14 Fev 2017 - 19:10

Karlee

Membro Prata


avatar
Não sabia desse fix ;o

Valeu :D

Ver perfil do usuário

16 Re: FIX HELIOCMS V5 index.php em Ter 14 Fev 2017 - 19:20

Flash Reverso

Honorário


avatar
[aviso=tsuname7.s]recebeu uma infração por necropost[/aviso]
[aviso=Tópico fechado]Motivo: Necropost[/aviso]

Ver perfil do usuário

Conteúdo patrocinado



Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum