WriteUp:QCTF Lottery
题目描述
QCTF 的 Lottery 题目。
题目本体见这里。
页面逻辑非常简单,就是注册买彩票,如图所示。
然后 flag 可以购买。
当然如果真正去买彩票几乎是不可能买得起 flag 的,所以就需要一些其他手段了。
GitHack
这一步不是必须的,但是很有用。
直接访问网站的 /.git
可以看到是 403 而不是 404,进一步访问 /.git/index
发现直接下载下来了,那么我们的机会就来了。
这里使用的脚本是GitHack
然后我们就拿到了网站后端的源代码,瞬间黑盒变白盒。
定位漏洞点
首先定位到购买的核心逻辑
可以看到对输入参数没有任何验证而且有一个 ==
比较,那我们的机会就来了。
右边的 win_numbers 是一个 7 个数字组成的字符串,所以取出来的就是单个数字构成的字符串。
这里我打开了一个交互式 PHP 终端用于验证
所以只要号码全是 True 就可以无限刷了。
Exploit
理解了漏洞点就很好处理了,下面是一个简单的 exploit。
1 | from requests import Session |
后记
突然觉得前两个月爆肝课设写的近 8k 行 php 代码有了作用。