进来页面如下:
虽然在源码中找到了flag.php但是访问了是个空页面。
然后在about中发现了一些好玩的:
这大致猜测是git源码泄露了:
然后用githack来获取内容:
得到如下信息:
虽然templates中也有内容,但是并不重要,在index.php中有一些特别的内容:
在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