Busting eBay’s Doorbusters: A Lesson in Perl and Unix

By most measures eBay’s Doorbuster Sale event have been a success: hundreds of new accounts, millions of new ad-views and wide promotion of the service. One problem: most of the items are being won by a select group of people. With a little bit of shell scripting and eBay’s predictability, the deck can be stacked in anyone’s favor.The problem lies in the fact that one can skip most of the process, using curl/wget to capture the search results and mined out the Item ID from the HREF’s URL:

http://cgi.ebay.com/J-DILLA-ANTHOLOGY-New-LP_W0QQitemZ260314203034QQihZ016QQcategoryZ306QQssPageNameZWDVWQQrdZ1QQcmdZViewItem

Now, we incorporate eBay’s predictability into building the proper “Buy It Now” page:

http://offer.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=BinConfirm&item=260314203034&fb=1&pt=US_Gift_Certificates&uiid=1222061111&co_partnerid=&quantity=1

So, now we can go from the search results to the final screen. This is the reason by people have been losing even though they are the first page view. Looping it and putting it in pseudoscript:

While True

Do

itemid = curl/wget eBaySearchString | grep itemidpattern ([0-9]{13})

if itemid != blank

open/firefox “Buy It Now URL With ItemID Inserted”

End

The fix for eBay is simple, captcha + making it more difficult to create searches for just the doorbuster items. The latter can be accomplished quickly (and temporarily) by changing the text in the winning items to an unsearchable image.