The NeverLAN CTF challenge JSON parsing 1:
The linked file can be found here.
The JSON file contains a minute of VirusTotal scan logs. The challenge wants us to find the 5 AV engines which had the highest detection ratio (not detection count) in that timeframe. To solve it I created this quick Python script:
from __future__ import division import json result_true = {} result_false = {} result_ratio = {} with open('file-20171020T1500') as f: for line in f: data = json.loads(line) for scanner in data['scans']: if data['scans'][scanner]['detected'] == True: if scanner in result_true: result_true[scanner] += 1 else: result_true[scanner] = 1 else: if scanner in result_false: result_false[scanner] += 1 else: result_false[scanner] = 1 for scanner in result_false: result_ratio[scanner] = result_true[scanner] / (result_true[scanner] + result_false[scanner]) * 100 for key, value in sorted(result_ratio.iteritems(), key=lambda (k,v): (v,k)): print "%s: %s" % (key, value)
It will count detection for each AV engine and afterwards calculate the detection ratio for all. Running it will print all ratios sorted by lowest to highest. The last 5 separated by commas is the flag:
The flag is: SymantecMobileInsight,CrowdStrike,SentinelOne,Invincea,Endgame