CTF-lottery[git文件泄露利用+PHP弱类型]

知识点:PHP弱类型

              .git文件泄露

玩攻防世界 遇到一个题lottery  进去看看  分析玩法

我们发现 进入登陆用户都是初始值 金钱是20  彩票号码必须输入7位 然后看你输入的彩票号码有多少个重复。

 

 

然后我们还发现 flag是可以购买的只要你金钱够。。。 这时间我们猜想可能他让我彩票赢钱来获取flag  一时思路是 暴力…  

 

 

 

 习惯拿到网站  先上AWVS 扫描 我们扫描出了.git

我们可以利用这个.git漏洞

 

 

首先我们来了解下.Git这个东西

Git信息泄露的危害很大,渗透测试人员、攻击者,可直接从源码获取敏感配置信息(如:邮箱,数据库),也可以进一步审计代码,挖掘文件上传、SQL注射等安全漏洞

 

 

需要的工具就是GitHack

获取工具代码:https://github.com/lijiejie/GitHack

GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,重建还原工程源代码。
渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等web安全漏洞。
## 工作原理 ##
* 解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )
* 去.git/objects/ 文件夹下下载对应的文件
* zlib解压文件,按原始的目录结构写入源代码

## 用法示例 ##
    GitHack.py http://www.openssl.org/.git/

我们打开软件直接可以获取他的目录结构源代码

 

 

 

通过分析

 

 

通过这一段代码分析我们注意89行 他有有个判断 判断我们输入的值有多少个相等 有一个$same_count++一次。

我们再看下面代码  如果有$same_count=2 则就给prize=5 prize就是我们的金钱  也就是说你两个数值对上才给你奖励5 我们看到最后要是7个都对上就奖励5000000这样我们就可以购买flag了  

 

 

先看点PHP弱类型小知识

PHP有两种比较符号==与===

=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较

== 在进行比较的时候,会先将字符串类型转化成相同,再比较

 

 

上述php弱类型基础引用 https://www.cnblogs.com/Mrsm1th/p/6745532.html

我们再回到上面的代码分析  只要相等 那就是为真 这里是一个PHP弱类型比较 那么我们是不是可以构造这样的语法 都为true  也就是7个true, true, true, true, true, true, true

 

 开启抓包修改值

 

 

修改后

{"action":"buy","numbers":[true,true,true,true,true,true,true]}

 Forward

我们要多重复几次这样我们才能赚够钱买

 

OJBK 直接购买flag

 

OK 完成

 

 

 

posted @ 2019-05-18 09:15  笑花大王  阅读(2457)  评论(0编辑  收藏  举报