The basic solver I made for the level8. I had to manually edit the file after each chunk, but I was too lazy to implement the chunk loop. Thanks to Bubba on IRC for recommending me to use httplib2 instead of httplib, it took down the jitter by quite a lot.
Python is not my first language, and I would never again use it for such a thing (unless I learn it better). I was trying with ruby, but didn't get the patterns then. I had a semi-working script in python before I learnt better.
The source is here if you are browsing this on gist.io
##Logic I didn't get the increment-by-chunk-number thing, and I was using an average of the port difference between last two requests. The average was 2 for most of my requests. For all the positives, the difference was above the average, which I used. I only ran this once for capturing the flag, when it took me about 5-8 minutes to capture the flag. This was on the last day of the ctf with about 15 hours remaining.
While running on production, I was getting about 15% of requests as a possible positive. Which meant about 150+22.5+3.375 or about 180 requests over the initial 1000. So I got each chunk in about 1180 requests, which is quite large compared to what I've seen on the level8-bonus server.
I might post stuff on http://captnemo.in on the ctf. Follow me on RSS.