今天做了攻防世界WEB高手进阶的两题,虽然步骤就这么几步,但是由于自己很菜,所以查阅资料、寻找突破点花了不少时间。
一、ics-06
打开题目,点来点去,发现除了报表中心,点击其他任何地方都只会返回一个页面,这也符合题目描述:
报表中心是这么个界面,并不能输入数据,查看源码也没什么思路,卡了比较久的时间,直到发现明明没操作,url后面跟了个: ?id=1,这就有点意思了,可以get传参,至于参数干嘛的就不知道了,这应该是攻防世界给的提示。
虽然有点不明所以,但是应该是id等于某个值会返回什么东西,先用burp的爆破模块爆一下:
还真是,2333,返回url输入,直接就显示了flag,这就完了?结束的很突然。
二、Lottery
第二题没有题目描述,是一个模拟彩票系统:
一开始以为注册时可以无密码直接注册是个突破点,试了admin啥的都没不同,网页源码也找不到彩票生成逻辑,但是最后一页给了提示:要赚到9990万才能买到flag。
不过还是没什么头绪,无奈看了writeup,发现原来还有个提示在robots.txt里,disallow了git,说明存在git泄露(大约就是小公司为了方便把项目压缩包传到网站没删除)。
对于git源码泄露,有一个github上大佬的githack可以直接输入url提取下载并有补全功能。
下载到压缩包后,阅读源码
全部通读一遍,发现是点击buy时使用函数临时生成随机数与输入对比,成功率非常低,可以利用的部分在这里:
这里以为一位对比,并且使两连等==弱比较,可以直接burp改包,构造【true,true,true,true,true,true,true】来使恒等:
一次给5000万,两次之后就可以在Claim Your Prize购买flag啦: