为了账号安全,请及时绑定邮箱和手机立即绑定

WEB练习3——Git源码泄露

标签:
PHP 安全

        在正式做题之前,我们首先需要了解一下什么是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

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


    https://img1.sycdn.imooc.com//5baa04f6000187e211520310.jpg

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

https://img1.sycdn.imooc.com//5baa05590001ab0004070249.jpg

我们再查看一下源代码

https://img1.sycdn.imooc.com//5baa05da00010c4605290042.jpg

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

https://img1.sycdn.imooc.com//5baa2d4600017d3109340293.jpg

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

https://img1.sycdn.imooc.com//5baa2de30001024508180206.jpg

我们来看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中单引号不解释变量,双引号解释,一般都是单引号






点击查看更多内容
4人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Linux系统工程师
手记
粉丝
7202
获赞与收藏
414

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消