Code:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$time = date("l dS of F Y h:i:s 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: $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: $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: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
}
}
/*end clear $_COOKIE */
fclose ($fp);
?>
<?php
/*
* Etunia Voting System Lite
* Copyright 2009, Kimmy Andersson.
*
*/
class ETUNIA_VOTE_LITE
{
private $mssqlExploitArray = array("0x", "DROP", "SELECT", "'", "FROM", "DELETE", "drop", "select", "from", "delete", "--", "#");
private function mssql_escape_string( $inputString )
{
return str_replace($this->mssqlExploitArray, "", $inputString);
}
public function checkCharacter( $etCharacter )
{
global $mssqlAccountDBF;
$etCharacter = $this->mssql_escape_string($etCharacter);
$currentDate = date("mdHi");
mssql_select_db($mssqlAccountDBF);
$sql_string = "SELECT time FROM VOTE_TBL WHERE character='{$etCharacter}';";
$sql_query = mssql_query($sql_string);
if(mssql_num_rows($sql_query) == 0)
return true;
$sql_row = mssql_fetch_row($sql_query);
if(($currentDate - $sql_row[0]) < 1200)
return false;
else
return true;
}
public function checkIP()
{
global $mssqlAccountDBF;
$userIP = $this->mssql_escape_string($_SERVER['REMOTE_ADDR']);
$currentDate = date("mdHi");
mssql_select_db($mssqlAccountDBF);
$sql_string = "SELECT time FROM VOTE_TBL WHERE ip='{$userIP}';";
$sql_query = mssql_query($sql_string);
if(mssql_num_rows($sql_query) == 0)
return true;
$sql_row = mssql_fetch_row($sql_query);
if(($currentDate - $sql_row[0]) < 1200)
return false;
else
return true;
}
public function removeLog( $etCharacter )
{
global $mssqlAccountDBF;
$userIP = $this->mssql_escape_string($_SERVER['REMOTE_ADDR']);
$etCharacter = $this->mssql_escape_string($etCharacter);
mssql_select_db($mssqlAccountDBF);
$sql_string = "DELETE FROM VOTE_TBL WHERE ip='{$userIP}';";
$sql_query = mssql_query($sql_string);
if($sql_query)
return true;
else
return false;
}
public function sendItem( $etCharacter, $m_item)
{
global $mssqlCharacterDBF;
global $voteReward;
$rewardId = $voteReward['itemId'];
$rewardName = $voteReward['itemName'];
$rewardAmount = $voteReward['itemAmount'];
$etCharacter = $this->mssql_escape_string($etCharacter);
mssql_select_db($mssqlCharacterDBF);
$sql_string = "SELECT m_idPlayer FROM CHARACTER_TBL WHERE m_szName = '{$etCharacter}';";
$sql_query = mssql_query($sql_string);
if(mssql_num_rows($sql_query) == 0)
return false;
$sql_row = mssql_fetch_row($sql_query);
$etCharacterId = $sql_row[0];
if( $m_item == 2 )
{
$rewardName = "26460";
$rewardAmount = 2500;
$rewardId = $rewardName;
}
elseif( $m_item == 4)
{
$rewardName = "26456";
$rewardAmount = 50;
$rewardId = $rewardName;
}
elseif( $m_item == 5)
{
$rewardName = "10206";
$rewardAmount = 99;
$rewardId = $rewardName;
}
elseif( $m_item == 6)
{
$rewardName = "10432";
$rewardAmount = 5;
$rewardId = $rewardName;
}
$sql_string = "INSERT INTO ITEM_SEND_TBL([m_idPlayer], [serverindex], [Item_Name], [Item_count], [idSender], [adwItemId0]) VALUES(N'{$etCharacterId}', N'01', N'{$rewardName}', '{$rewardAmount}', N'0000001', '{$rewardId}');";
$sql_query = mssql_query($sql_string);
if($sql_query)
{
$this->logPlayer($etCharacter);
return true;
}
else
return false;
}
private function logPlayer( $etCharacter )
{
global $mssqlAccountDBF;
mssql_select_db($mssqlAccountDBF);
$currentTime = date("mdHi");
$sql_string = "INSERT INTO VOTE_TBL([character], [ip], [time]) VALUES(N'{$etCharacter}', N'{$_SERVER['REMOTE_ADDR']}', N'{$currentTime}');";
$sql_query = mssql_query($sql_string);
}
}
?>