Jump to content

Help! Уязвимый код


Recommended Posts

Guest werstey

Прошу помощи, есть скрипт joker board 3 и у него есть уязвимость о которой знают все и давно

Уязвимость в файле export.php раньше я его просто удалял, но теперь есть необходимость вылечить файл. Прошу помощи у тех кто понимает

<?
require_once("admin/conf.php");
if(ctype_digit(@$_GET['n']) && @$_GET['n']>0 && @$_GET['n']<25 && ctype_digit(@$_GET['c'])>=0 && ctype_digit(@$_GET['r'])>=0){
	if(@$_GET['t']=="php")define("EXP_TYPE","php");
	elseif(@$_GET['t']=="js")define("EXP_TYPE","js");
	elseif(@$_GET['t']=="rss")define("EXP_TYPE","rss");else die();
	$number=$_GET['n'];
	$cat=$_GET['c'];
	$city=$_GET['r'];
	$page_uri=EXP_TYPE."_".$number."_city".$city."_cat".$cat;	
	if($JBSCACHE=="1"){
		$flnm=$c_exp_dir.EXP_TYPE."/".$page_uri;
		ob_start();
		if(!$cachedata=readData($flnm,$JBSCACHE_exp_expire)){
			require_once("inc/exp.inc.php");
			$cachedata=ob_get_contents();ob_clean();
			writeData($flnm,$cachedata);
		}echo $cachedata;
	} else require_once("inc/exp.inc.php");
} else die($lang[1032]);
?>
Link to post
Share on other sites
Guest werstey

Всем спасибо, тему можно закрыть.

Вот исправленный код, может кому пригодиться

<?
require_once("admin/conf.php");
if(ctype_digit(@$_GET['n']) && @$_GET['n']>0 && @$_GET['n']<25 && ctype_digit(@$_GET['c'])>=0 && ctype_digit(@$_GET['r'])>=0){
	if(@$_GET['t']=="php")define("EXP_TYPE","php");
	elseif(@$_GET['t']=="js")define("EXP_TYPE","js");
	elseif(@$_GET['t']=="rss")define("EXP_TYPE","rss");else die();
	$number=$_GET['n']; if (!preg_match("|^[\d]+$|", $number)){exit ("неверный формат запроса");} 
    	$cat=$_GET['c']; if (!preg_match("|^[\d]+$|", $cat)){exit ("неверный формат запроса");} 
    	$city=$_GET['r']; if (!preg_match("|^[\d]+$|", $city)) {exit ("неверный формат запроса");}
	$page_uri=EXP_TYPE."_".$number."_city".$city."_cat".$cat;	
	if($JBSCACHE=="1"){
		$flnm=$c_exp_dir.EXP_TYPE."/".$page_uri;
		ob_start();
		if(!$cachedata=readData($flnm,$JBSCACHE_exp_expire)){
			require_once("inc/exp.inc.php");
			$cachedata=ob_get_contents();ob_clean();
			writeData($flnm,$cachedata);
		}echo $cachedata;
	} else require_once("inc/exp.inc.php");
} else die($lang[1032]);
?>
Edited by werstey
Link to post
Share on other sites
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...