不多说,下载解压用phpstorm打开,直接 ctrl+shift+R全局找flag
![](https://img-blog.csdnimg.cn/img_convert/4aa94efc7139b3964aecb95d76529475.png)
去 api.php康康
![](https://img-blog.csdnimg.cn/img_convert/ac644ed33270541cd63bebcfe675e2fd.png)
一手交钱一手交货,货不够没有flag。SESSION中的数据我们改不了,看看谁调用了 flag函数吧
![](https://img-blog.csdnimg.cn/img_convert/1185a9a6307b5b8a7b3236866a6f9072.png)
![](https://img-blog.csdnimg.cn/img_convert/a9c99df1782a3d7eee9bf491a2e28dcc.png)
看起来是我们选择某种操作,服务器捕捉进行相应处理,这里也不存在什么漏洞点。只能去看看有什么办法修改金钱。ide下输入 ctrl+f开始本地查找,在api.php的buy函数发现了对金钱的修改
![](https://img-blog.csdnimg.cn/img_convert/68b435ab8582cccd43588e510d8cf4eb.png)
bug函数是一个买彩票的操作,接收用户输入的7个数字,猜对的数字越多,彩票钱越多,从而 $money 变量值越大,看起来我们需要买彩票中大奖?幸运地是,判断彩票中奖的代码存在漏洞:
![](https://img-blog.csdnimg.cn/img_convert/d3a2059554058f86e624a70b65297cb5.png)
在判断我们猜测的数字和彩票的数字的时候用的居然是弱比较,而我们都知道,true和任何数字比较都是真,所以我们传入一个7个true的数组就可以中彩票大奖然后去买flag啦!!
抓包买彩票然后改参数吧那就(●'◡'●)
![](https://img-blog.csdnimg.cn/img_convert/35ff381aa4b2af699bc2eaabf78d080b.png)
![](https://img-blog.csdnimg.cn/img_convert/5621089b5f1da32e648229780e5c21c4.png)
{"action":"buy","numbers":[true,true,true,true,true,true,true]
}
然后去买flag吧少年!(注意要中两次彩票,一次居然不够。。。)