【菜鸡练习】XCTF-lottery

靶场页面

可以看到这是一个抽奖的小游戏,下面附规则:猜中的数越多赚米就越多(有点像福彩)

运气好的宝宝可以体验一下游戏,咱是输的一文不剩(家人们一定要远离赌毒啊),只能看看别的地方了

在Claim Your Prize这个标签看到flag是可以购买的,但是价钱真的不要太黑心了。所以思考要不要通过某种方式刷钱来buy Flag?

破解思路

从控制台查看响应界面,发现是api.php页面触发回显

查看api.php的响应

根据回显猜测后端响应页面api.php的代码是解题的重要思路

所以要对api.php进行审计

查找网页源码

直接用F12查看网页源代码,都是HTML代码,没有有用的信息

这时候就要考虑想办法得到后端的代码,可以使用dirsearch工具扫描目录

dirsearch安装以及使用

目录扫描工具dirsearch的安装使用_csdn dirsearch-CSDN博客

 python dirsearch.py -u http://61.147.171.105:51803/ -e*~

看到网站目录有.git文件,可以联想到.git泄露

.git泄露

  • 在一个目录中初始化一个仓库以后 , 会在这个目录下产生一个名叫 .git 的隐藏文件夹(版本库)这个文件夹里面保存了这个仓库的所有版本等一系列信息
  • 开发人员在开发时,常常会先把源码提交到远程托管网站(如github),最后再从远程托管网站把源码pull到服务器的web目录下。如果忘记把.git文件删除,就可以利用.git文件恢复网站的源码,而源码里可能会有数据库的信息。

 .git泄露详细介绍

Git与Git文件导致源码泄露_当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.gi-CSDN博客

如果存在.git泄露,我们可以使用GitHack来获取后端源码

 使用GitHack获取源码

GitHack下载安装

(Window)GitHack下载安装和使用【CTF工具/渗透测试/网络安全/信息安全】-CSDN博客

在GitHack.py的目录下打开终端输入命令获取源码

python GitHack.py http://61.147.171.105:51803/.git/

下载的源码在GitHack文件里面,文件名就是刚刚我们输入的靶场url

根据刚才的思路对有回显的api.php进行代码审计,在buy函数找到漏洞

buy函数使用了 " == " ,这是一个弱类型。在使用 == 比较时,变量true可以和任何类型的字符串或数字相等而使判断返回true。(除了true == 0或true == false或true == null的情况)

因此我们可以尝试构造一个全是true的数组传入

使用burpsuite构造true数组

发包

应该是构造的数组有点小错误, 也可以构造字典

{"action":"buy","numbers":{"0":true,"1":true,"2":true,"3":true,"4":true,"5":true,"6":true}}

 

可以看到中奖啦,多发包几次就够米买flag了(这个钱要是能提现多好

 

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值