攻防世界-高手进阶区之mfw

进来页面如下:

攻防世界-高手进阶区之mfw

虽然在源码中找到了flag.php但是访问了是个空页面。

然后在about中发现了一些好玩的:

攻防世界-高手进阶区之mfw

这大致猜测是git源码泄露了:

然后用githack来获取内容:

得到如下信息:

攻防世界-高手进阶区之mfw

虽然templates中也有内容,但是并不重要,在index.php中有一些特别的内容:

攻防世界-高手进阶区之mfw

在assert中会执行括号内的内容。

所以可以利用assert函数的特性,来读取flag.php。

构造page=abc') or system(cat /templates/flag.php);//

如果把page内容传递进去之后,则assert中的内容会变成strpos('abc') or system(cat /templates/flag.php);

因为strpos没有第二个参数,所以返回的值一定是false,所以一定会执行or的内容,然后就可以在源码中得到flag。

 

写在最后:

1.assert函数 有些些类似于eval函数,会执行()内的内容

2.一些常见的源码泄露:svn,git,ds_store,备份文件,cvs,hg init