O caso da Planetacraft_BR


O que era a Planetacraft_BR


Um servidor de minecraft brasileiro, que já foi do modo sobrevivência, guerra, construção e minigames.
Site memorial


Fotos








O surgimento


Capito sobre o surgimento de pessoas com muito dinheiro do nada.
Antes disso
Precisamos saber como era o sistema do servidor!



O sistema



O sistema



O sistema



O sistema



O surgimento



Como o ataque aconteceu?



Por meio de request na API?


<?php
if ($_SERVER['REMOTE_ADDR'] == "192.99.3.96") {
$modo = $_GET['modo'];
$nick = strtolower($_GET['nick']);
$quantidade = $_GET['quantidade'];
$connect = mysql_connect("localhost","root","ib8yg87g9jkop");
$db = mysql_select_db('planeta_servidor');
$query_select = "SELECT * FROM contas WHERE nome = '".$nick."'";
$select = mysql_query($query_select,$connect);
$REGrow = mysql_fetch_array($select);
if ($REGrow['nome'] == $nick){
if ($modo == "ADD"){
$calcularpreco = $REGrow['planets']+$quantidade;
$ADDsqlinsert = "UPDATE contas SET planets = '".$calcularpreco."' WHERE nome = '".$nick."' ";
$ADDinsirirdados = mysql_query($ADDsqlinsert,$connect);
if (!$ADDinsirirdados){
echo json_encode(array('ERRO' => "Nao conseguimos atualizar os planets !"), JSON_FORCE_OBJECT);
}
echo json_encode(array('OK' => "Novo saldo de planets atualizado ".$calcularpreco." !"), JSON_FORCE_OBJECT);
}
if ($modo == "REMOVE"){
if ($REGrow['planets'] >= $quantidade){
$calcularpreco = $REGrow['planets']-$quantidade;
$REMOVEsqlinsert = "UPDATE contas SET planets = '".$calcularpreco."' WHERE nome = '".$nick."'";
$REMOVEinsirirdados = mysql_query($REMOVEsqlinsert,$connect);
if (!$REMOVEinsirirdados){
echo json_encode(array('ERRO' => "Nao conseguimos atualizar os planets !"), JSON_FORCE_OBJECT);
}
echo json_encode(array('OK' => "Novo saldo de planets atualizado ".$calcularpreco." !"), JSON_FORCE_OBJECT);
}else{
$REMOVEsqlinsert = "UPDATE contas SET planets = '0.00' WHERE nome = '".$nick."'";
$REMOVEinsirirdados = mysql_query($REMOVEsqlinsert,$connect);
if (!$REMOVEinsirirdados){
echo json_encode(array('ERRO' => "Nao conseguimos atualizar os planets !"), JSON_FORCE_OBJECT);
}
echo json_encode(array('OK' => "Novo saldo de planets atualizado 0.00 !"), JSON_FORCE_OBJECT);
}
}
if ($modo == "VENDA"){
if ($REGrow['planets'] >= $quantidade){
$calcularpreco = $REGrow['planets']-$quantidade;
$REMOVEsqlinsert = "UPDATE contas SET planets = '".$calcularpreco."' WHERE nome = '".$nick."'";
$REMOVEinsirirdados = mysql_query($REMOVEsqlinsert,$connect);
if (!$REMOVEinsirirdados){
echo json_encode(array('ERRO' => "Nao conseguimos atualizar os planets !"), JSON_FORCE_OBJECT);
}
echo json_encode(array('OK' => "Novo saldo de planets atualizado ".$calcularpreco." !"), JSON_FORCE_OBJECT);
}else{
echo json_encode(array('ERRO' => "Jogador nao tem saldo suficiente !"), JSON_FORCE_OBJECT);
}
}
if ($modo == "RESET"){
$REMOVEsqlinsert = "UPDATE contas SET planets = '0.00' WHERE nome = '".$nick."'";
$REMOVEinsirirdados = mysql_query($REMOVEsqlinsert,$connect);
if (!$REMOVEinsirirdados){
echo json_encode(array('ERRO' => "Nao conseguimos atualizar os planets !"), JSON_FORCE_OBJECT);
}
echo json_encode(array('OK' => "Novo saldo de planets atualizado 0.00 !"), JSON_FORCE_OBJECT);
}
}else{
echo json_encode(array('ERRO' => "O jogador não esta registrado !"), JSON_FORCE_OBJECT);
}
}else{
echo json_encode(array('ERRO' => "Apenas o servidor planetaraft_BR poder ver essa pagina !"), JSON_FORCE_OBJECT);
}
?>Por meio de SQL Inject?


<?php
<?php
if ($_SERVER['REMOTE_ADDR'] == "192.99.3.96") {
$modo = $_GET['modo'];
$nick = strtolower($_GET['nick']);
if ($modo == "ADD"){
$calcularpreco = $REGrow['planets']+$quantidade;
$ADDsqlinsert = "UPDATE contas SET planets = '".$calcularpreco."' WHERE nome = '".$nick."' ";
$ADDinsirirdados = mysql_query($ADDsqlinsert,$connect);
if (!$ADDinsirirdados){
echo json_encode(array('ERRO' => "Nao conseguimos atualizar os planets !"), JSON_FORCE_OBJECT);
}
echo json_encode(array('OK' => "Novo saldo de planets atualizado ".$calcularpreco." !"), JSON_FORCE_OBJECT);
}
}
?>Yess, achamos o erro!



Obrigado a todos pela atenção!


PlanetsWEB - Segurança de Banco De Dados | Webinar Semanal | O caso da Planetacraft_BR
By Rubens Flinco
PlanetsWEB - Segurança de Banco De Dados | Webinar Semanal | O caso da Planetacraft_BR
- 142