pw6的一个url转跳[BUG?]
来源:5up3rh3i'blog
作者:superhei
pw6的一个url转跳[BUG?]
\hack.php的Codz:
require_once('global.php');
$H_name = GetGP('H_name'); //想当于$_GET[H_name]
if(ereg("^http",$H_name)!==false){
ObHeader("$H_name"); //如果是http就通过ObHeader转跳
} elseif(!$db_hackdb[$H_name] || !is_dir(R_P."hack/$H_name") || !file_exists(R_P."hack/$H_name/index.php")){
//如果可以过上面这个判断就可以用下面的define定义H_P了,可惜!$db_hackdb[$H_name]这个过不去 :(
Showmsg("hack_error");
}
define('H_P',R_P."hack/$H_name/");
我们看看ObHeader()在global.php里:
function ObHeader($URL){
global $db_obstart,$db_bbsurl,$db_htmifopen;
if($db_htmifopen && strtolower(substr($URL,0,4))!='http'){
$URL="$db_bbsurl/$URL";
}
ob_end_clean();
if($db_obstart){//可惜phpwind不让全局变量了[见我上个blog],要不就可以进header()
header("Location: $URL");exit;
} else{
ob_start();
echo "<meta http-equiv='refresh' content='0;url=$URL'>";exit;//这里访问了我们的url
}
}
POC:
http://www.phpwind.net/hack.php?H_name=http://www.google.com