【原创】记一次ctf实战—— CISCN-2019-华北赛区-Day1-Web-Web1(失败)

这里主要写一些想法及思路

推荐文章:

https://www.cnblogs.com/kevinbruce656/p/11316070.html

https://www.jianshu.com/p/5b91e0b7f3ac

https://zhuanlan.zhihu.com/p/151809230

https://www.cnblogs.com/Cl0ud/p/12177071.html

思路

来到页面一看见这个马上就想到爆破和注入

看见有注册就打消了这个念头

咱们注册登录进去看看

看见这个页面就想到了文件上传漏洞

我们就来检测一下有何限制

先来一段一句话

很明显有格式限制

我们换个格式抓包看看有没有过滤

什么都没有!!!我大喜过望

咱们改后缀放包开搞

正当我当我准备搞得时候

what?路径呢,蚁剑是要求绝对精确的路径的

不慌我们再来看看页面

what?什么情况,我不是改了后缀的吗

卧槽,紧张起来了

试了试00绕过的方法

卧槽这后端是怎么搞的

无论你怎么改最后都会把你上传成功的后缀改为上传时的后缀

不知是不是这个理解,后端文件没权限应该是不可以更改的

像这种应该属于内网渗透的东西了

我们跳过这些,看看还有没有搞的

意思是任意下载删除漏洞???

我大喜过望

抓包看看

我们看一下主文件index.php

如果不知是在几个文件夹下那就去猜一个一个的这样../../../../../等等

我们用hackbar下载下来看看

下面应该就是代码审计了

好吧,感觉没啥大信息,先贴出来

<?php
session_start();
if (!isset($_SESSION['login'])) {
    header("Location: login.php");
    die();
}
?>
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>网盘管理</title>
<head>
    <link href="static/css/bootstrap.min.css" rel="stylesheet">
    <link href="static/css/panel.css" rel="stylesheet">
    <script src="static/js/jquery.min.js"></script>
    <script src="static/js/bootstrap.bundle.min.js"></script>
    <script src="static/js/toast.js"></script>
    <script src="static/js/panel.js"></script>
</head>
<body>
    <nav aria-label="breadcrumb">
    <ol class="breadcrumb">
        <li class="breadcrumb-item active">管理面板</li>
        <li class="breadcrumb-item active"><label for="fileInput" class="fileLabel">上传文件</label></li>
        <li class="active ml-auto"><a href="#">你好 <?php echo $_SESSION['username']?></a></li>
    </ol>
</nav>
<input type="file" id="fileInput" class="hidden">
<div class="top" id="toast-container"></div>
<?php
include "class.php";
$a = new FileList($_SESSION['sandbox']);
$a->Name();
$a->Size();
?>

我们再下载download.php文件看看

我们再来看看download.php文件有什么好东西

这段就提示了下载文件的目录以及禁用了包含flag的文件,并给出了两个个php的文件

贴出代码

<?php
session_start();
if (!isset($_SESSION['login'])) {
    header("Location: login.php");
    die();
}
if (!isset($_POST['filename'])) {
    die();
}
include "class.php";
ini_set("open_basedir", getcwd() . ":/etc:/tmp");
chdir($_SESSION['sandbox']);
$file = new File();
$filename = (string) $_POST['filename'];
if (strlen($filename) < 40 && $file->open($filename) && stristr($filename, "flag") === false) {
    Header("Content-type: application/octet-stream");
    Header("Content-Disposition: attachment; filename=" . basename($filename));
    echo $file->close();
} else {
    echo "File not exist";
}
?>
然后。。。然后就还有这些文件可以下载及审计class.php,delete.php,login.php,register.php

读过我以前文章的朋友应该都知道我在代码审计这方面的菜

还好是php没学好的锅

想要flag的同学就去看看上面分享的文章

我的想法就只能到这里了

这tm的是半决赛的题!!!我是怎么做到它的,艹

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇