继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

WEB练习3——Git源码泄露

那怎么办嘛
关注TA
已关注
手记 39
粉丝 7202
获赞 414

        在正式做题之前,我们首先需要了解一下什么是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://img2.mukewang.com/5baa04f6000187e211520310.jpg

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

https://img1.mukewang.com/5baa05590001ab0004070249.jpg

我们再查看一下源代码

https://img4.mukewang.com/5baa05da00010c4605290042.jpg

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

https://img4.mukewang.com/5baa2d4600017d3109340293.jpg

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

https://img2.mukewang.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中单引号不解释变量,双引号解释,一般都是单引号






打开App,阅读手记
4人推荐
发表评论
随时随地看视频慕课网APP