Those regexes? They mess up everything. Before if you entered 1.2.3.4, ANY domain name that resolved to that would show up in the filtered sitemap, now only instances of "1.2.3.4" show up, and if you visit the domains, they no longer appear, because they don't match the regex.
I finally figured out how to upload a "raw" list of IPs into the scope listing unmodified. Burp has a feature on a tiny button that allows you to "load options", which is really just a json formatted file with a bunch of different Burp settings:
So I decided to take a look at the format, and holy crap, "raw" IPs are actually recognized properly in this settings file. So I wrote a quick python script to create a proper settings file from a supplied list of IPs:
#!/usr/bin/env python #@atucom #this script takes in a one-per-line file of IPs and adds it to Burp without any stupid regexes # This mimics the same thing as hitting the "add" button in the Scope tab # to load the resultant file, you need to go to the Scope tab, hit the little gear button in the # top left and click "load settings", choose the jsonout.txt file and rejoice. import sys import json basejson = """ { "target":{ "scope":{ "exclude":[ { "enabled":true, "file":"logout", "protocol":"any" }, { "enabled":true, "file":"logoff", "protocol":"any" }, { "enabled":true, "file":"exit", "protocol":"any" }, { "enabled":true, "file":"signout", "protocol":"any" } ], "include":[ ] } } } """ ipfile = open(sys.argv[1]) #open file of IPs (one per line) iplist = ipfile.readlines() dictjson = json.loads(basejson) #load base json data structure for ip in iplist: newip = {"enabled":True, "host":ip.strip(), "protocol":"any"} dictjson['target']['scope']['include'].append(newip) #appends new IP entry to python dict jsonout = open("jsonout.txt", "w") jsonout.write(json.dumps(dictjson)) print("wrote to jsonout.txt")
To use it, run the script and supply the file with you one-per-line IP list. It will dump out a "jsonout.txt" file. In Burp, go to Target > Scope > Gear Button > Load Options > select jsonout.txt > Open
That should be it, your IPs should now show up in the "include in scope" box like below:
I also saved it to my gist for posterity: https://gist.github.com/atucom/b083d1f3b12606aaf4076a689d200939
I always assumed there had to be a supported way of doing this but after asking several people, nobody could find a way. This seems to be the only way that works for what I need done. Now, I just need to write up a Burp extension for it...
UPDATE:
Thanks to the help of a friend of mine with the Burp plugin code, I've been able to create a burp plugin that accomplishes this task:
https://gist.github.com/atucom/eabf35f344f46ffbd2f8d25b018f88c9
No comments:
Post a Comment