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

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

题目介绍

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

题目考点

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

Writeup

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

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

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

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

  3. 使用 GitHacker 获取源码

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

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

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

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

  5. 打开index.php代码审计

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

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

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

    总结一句话就是:assert()函数会将读入的代码当做PHP代码来执行

    因此,我们可以进行注入,注入的思路:

    方式一:

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

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

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

    方式二:

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

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

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

    system()函数用法:

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

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

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

    两者都需查看源码!!

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

上一篇:[原] Jenkins Android 自动打包配置


下一篇:攻防世界高手进阶之Web_python_block_chain(2018年DDCTFmini blockchain)