Multimod sms sistemos SQL_Injection fix

Čia keliamos įvairios serverių modifikacijos, sistemos kurios neapsiriboja pluginais ir atlieka svarbius dalykus.
Taip pat, užduodami klausimai, susiję su sistemų diegimu ir darbu.
Post Reply
User avatar
V1LKAS
Flooderis arba specialistas
Posts: 612
Joined: 2012 Nov 08 12:55
Skype: darius489

Multimod sms sistemos SQL_Injection fix

Post by V1LKAS »

Taigi aha aka rafak, nėr labai talentingas užkamšant sql_injection skyles, taigi populiariausia sms sistema
http://paslaugos.multimod.lt/scripts/smsv2/ taipogi yra "kiaura it rėtis".

Trumpai apie SQL_Injection: tai toks hack medodas kuriuo aklai galima gauti mysql duomenų bazės duomenis.

Nedidelis fix nuo to. Kodą įrašome į order.php failą pačiame viršuje, prieš <?php

Code: Select all

<?php  $ip = $_SERVER['REMOTE_ADDR'];  $time = date("l dS of F Y h:i(worry) A");  $script = $_SERVER[PATH_TRANSLATED];  $fp = fopen ("[WEB]SQL_Injection.txt", "a+");  $sql_inject_1 = array(";","'","%",'"'); #Whoth need replace  $sql_inject_2 = array("", "","","""); #To wont replace  $GET_KEY = array_keys($_GET); #array keys from $_GET  $POST_KEY = array_keys($_POST); #array keys from $_POST  $COOKIE_KEY = array_keys($_COOKIE); #array keys from $_COOKIE  /*begin clear $_GET */  for($i=0;$i<count($GET_KEY);$i++)  {  $real_get[$i] = $_GET[$GET_KEY[$i]];  $_GET[$GET_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_GET[$GET_KEY[$i]]));  if($real_get[$i] != $_GET[$GET_KEY[$i]])  {  fwrite ($fp, "IP: $ip\r\n");  fwrite ($fp, "Method: GET\r\n");  fwrite ($fp, "Value: $real_get[$i]\r\n");  fwrite ($fp, "Script&#058; $script\r\n");  fwrite ($fp, "Time: $time\r\n");  fwrite ($fp, "==================================\r\n");  }  }  /*end clear $_GET */  /*begin clear $_POST */  for($i=0;$i<count($POST_KEY);$i++)  {  $real_post[$i] = $_POST[$POST_KEY[$i]];  $_POST[$POST_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_POST[$POST_KEY[$i]]));  if($real_post[$i] != $_POST[$POST_KEY[$i]])  {  fwrite ($fp, "IP: $ip\r\n");  fwrite ($fp, "Method: POST\r\n");  fwrite ($fp, "Value: $real_post[$i]\r\n");  fwrite ($fp, "Script&#058; $script\r\n");  fwrite ($fp, "Time: $time\r\n");  fwrite ($fp, "==================================\r\n");  }  }  /*end clear $_POST */  /*begin clear $_COOKIE */  for($i=0;$i<count($COOKIE_KEY);$i++)  {  $real_cookie[$i] = $_COOKIE[$COOKIE_KEY[$i]];  $_COOKIE[$COOKIE_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_COOKIE[$COOKIE_KEY[$i]]));  if($real_cookie[$i] != $_COOKIE[$COOKIE_KEY[$i]])  {  fwrite ($fp, "IP: $ip\r\n");  fwrite ($fp, "Method: COOKIE\r\n");  fwrite ($fp, "Value: $real_cookie[$i]\r\n");  fwrite ($fp, "Script&#058; $script\r\n");  fwrite ($fp, "Time: $time\r\n");  fwrite ($fp, "==================================\r\n");  }  }   /*end clear $_COOKIE */  fclose ($fp);  ?>

Kitas variantas, tai visus kintamuosius escapint stringu, tai reiktų visus naudojamus kintamuosius priskirti iš naujo, pvz

Code: Select all

$username = mysql_real_escape_string($_POST['username']);

User avatar
psychical
Viršininkas
Posts: 2094
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Multimod sms sistemos SQL_Injection fix

Post by psychical »

Visos sistemos dalinamos nemokamai turi skylių, galiu neabejoti manoji irgi... Tačiau pokolkas to niekas nerado, kaip ir aš pats... O dėl taisymo tai prmo variantogalėjai net nerodyt nes naudos iš to 0, antras variantas veiks tik tuo atveju, jei tu būsi prisijungęs prie MySQL, jei toje vietoje prie MySQL neprisijungiama, nevertėtų nevertėtų to skubinti, mysql_real_escape_string() ši komanda 5.5.0 PHP versijoje bus panaikinta, aišku ne daug kas ją atsinaujins, tačiau vertėtų žiūrėti labiau į ateitį, o žiūrint labiau į ateitį patariama naudot addslashes(), aišku, kaip jau minėjau mysql_real_escape_string() irgi yra gerai, tačiau žiūrint į ateitį, mano pasiūlymas geresnis.

User avatar
V1LKAS
Flooderis arba specialistas
Posts: 612
Joined: 2012 Nov 08 12:55
Skype: darius489

Re: Multimod sms sistemos SQL_Injection fix

Post by V1LKAS »

Pirmas variantas tik tam, kad tam tikros paieškos programos, kurių šiuo metu tikrai yra nemažai, tiesiog nerastų skylių, bet kokiu aatvėju taip išvengsi +90% problemų, aišku jeigu susidursi su specialistu tai tikrai nk nepadės :)

Chemodan
O taip. Jis jau surinko 50 žinučių!
Posts: 79
Joined: 2013 Jan 26 19:51
Skype: okmu1231

Re: Multimod sms sistemos SQL_Injection fix

Post by Chemodan »

Pirmas variantas veikia , nes ji jau senei nauduojau...

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests