git源代码泄露_WEB练习3——Git源码泄露

在正式做题之前,我们首先需要了解一下什么是Git源码泄露。提到网页漏洞,你可能会更多的想到XSS,CSRF,SSRF,SQL注入等等,其实源码泄露在我们日常生活中也是一个经常出现的问题,例如2015 年 5 月,乌云白帽子“lijiejie”提交的漏洞 “大众点评某站点 git 泄漏源代码“,缺陷编号:wooyun-2015-0117332。在此次案例当中,白帽子发现 URL(http://qq.m.dianping.com/.git/ )可以访问,于是通过工具 githack 下载里面的文件,这便是很典型的一个源码泄露案例。那么问题来了Git源码泄露是如何产生的呢?我们如何检测Git源码泄露呢?

Git源码泄露普遍发生于一些小型企业(当然大型企业也存在),由资金不足,公司可能没有自己的专属服务器,于是会将网站部署到虚拟机里,由于在多数情况下FTP上传文件较慢,于是程序员多选择将源码打包以后上传,上传以后在进行解压,虽然这样子看上去省时省力,但是其实留下了不少的安全隐患,一旦程序员忘记将压缩包删除,攻击者便可以获取源码,在自己的服务器上部署源码从而获取更多的安全漏洞。我们常用的到的工具为王一航大佬的GitHack,大家可以去GitHub上进行下载:https://github.com/WangYihang/GitHacker

在有以上基础知识以后我们正式开始今天的练习,题目来源Jarvis oj,通过今天的练习我们要掌握Git源码泄露,assert()函数的语法以及PHP注入的常规操作。BABY PHP

打开题目链接,我们可以看到如下界面,随意点击查看,

在About界面下我们看到了Git,这不免让人怀疑是否存在GIT源码泄露

我们再查看一下源代码

发现有一个小的hint,?page=flag,那么不出意料的话,我们的flag会存在于flag.php下,既然猜测有源码泄露,那么我们不妨尝试一下,果然是有东西存在的。

对以下代码进行审计,整体上来看,page函数存在注入漏洞,

我们来看assert函数,assert()函数会将读入的代码当做PHP代码来执行,注入思路:整体上可以注释掉’, ‘..’) === false,或者不注释,只在中间插入。我们使用?page=flag’.system(“ls”).’来查看目录,进入目录查看文件?page=flag’.system(“cd templates;ls”).’查看flag:?page=flag’.system(“cat templates/flag.php”).’查看源代码,这道题目就完成了。

总计:在PHP代码注入中:连接自己的命令 :;and | . ,system(“xxx”) 中命令使用双引号闭合引号时:php中单引号不解释变量,双引号解释,一般都是单引号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值