攻防世界XCTF:mfw_Hack

攻防世界XCTF:mfw_php_02


发现使用git进行网站部署,尝试 /.git查看是否git泄漏。

git泄漏
当前大量开发人员使用git进行版本控制,对站点自动部署。 如果配置不当,可能会将.git文件夹直接部署到线上环境,这就引起了git泄露漏洞。

GitHack
项目地址:https://github.com/lijiejie/GitHack GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,还原重建工程源代码。
脚本工作原理:

  1. 解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )
  2. 去.git/objects/ 文件夹下下载对应的文件
  3. 使用zlib解压文件,按原始的目录结构写入源代码

攻防世界XCTF:mfw_Hack_03

攻防世界XCTF:mfw_git_04

hint.php内容如下:

攻防世界XCTF:mfw_git_05

assert()函数

编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。程序员断言在程序中的某个特定点该的表达式值为真。如果该表达式为假,就中断操作。

strops()函数
strpos() 函数查找字符串在另一字符串中第一次出现的位置。且对大小写敏感。

思路很简单,对函数闭合,读取templates中的flag.php内容。

在page后面传参

','') === false and system('cat templates/flag.php')('

使assert为假,然后整个assert断言为真,执行后面的函数。

攻防世界XCTF:mfw_git_06