3rd Dec 2002 [SBWID-5852]
COMMAND
	ShopFactory shopping cart price manipulation
SYSTEMS AFFECTED
	All up to 5.8 ?
PROBLEM
	In Trust Factory Security advisory [TF20021004] of Richard van den  Berg
	[[email protected]] :
	
	 http://www.trust-factory.com/TF20021004.html
	
	--snip--
	The contents of shopping carts used by shops  created  with  ShopFactory
	software  can  be  modified  at  will  by  customers.  One   interesting
	vulnerablility is the ability to maliciously modify prices of  items  in
	the shopping carts. Tests show that  the  modifications  are  maintained
	throughout the billing process.
	 Technical details:
	 ==================
	Shopping carts created with ShopFactory software  optionally  store  all
	contents of the cart in a cookie at the browser. This  includes  product
	IDs, descriptions and prices. Upon revisiting the store, this cookie  is
	used to fill the cart for the new session. At checkout the  contents  of
	this new cart is used to enter the order into the  shop's  delivery  and
	billing system.
	If the shop owner has set "Remember Shopping  cart  for  (days)"  to  0,
	cookies are not created by the shop. Prior to version  5.8  cookies  are
	being read even when the shop does not create them. If a malicious  user
	manually creates a cookie with incorrect  pricing,  it  would  still  be
	used to fill the cart for a new shopping session.
	--snap--
	 Update (05 March 2003)
	 ======
	Maarten [[email protected]] adds :
	The main problem is that all actions that  are  trusted  to  the  client
	side of the configuration are also adjustable by the maintainer of  that
	side. Since the pricing of products within the sides is trusted  to  the
	client, a customer of a shop  that  is  using  Shopfactory  is  able  to
	determine his own price for the product he wants to  order.  Within  the
	site, there are three main points where altering the price is possible:
	  1.. Before adding a product to your shopping cart, the price can be
	altered to a preferred value.  The  price  that  will  be  send  to  the
	shopping cart can be found in a hidden form field.
	  2.. When adding a product to your shopping cart, the price is stored in a
	cookie. As of version 5.8, this cookie has  been  "encrypted".  However,
	the "encryption" and "decryption" of  the  cookie  also  happens  client
	side. The algorithm  can  be  found  in  the  JavaScript  code  that  is
	included in one of the frames of the site.
	  3.. After processing your shopping cart, the details in the cookie get
	"decrypted" and are put into one form. At this point,  all  the  details
	of your order can be altered before you  post  them  to  a  cgi  on  the
	Shopfactory server, that is processing the order for the shop owner.
SOLUTION
	ShopFactory violates the "don't trust user input"  rule  of  application
	programming, resulting in potential loss of profit for shops using  this
	software. See also Don't #2 of "Twenty Don'ts  for  ASP  Developers"  at
	http://online.securityfocus.com/infocus/1603
	 Possible work around:
	 =====================
	Upgrade to at least version 5.8 of  the  ShopFactory  software  and  set
	"Remember Shopping cart for (days)" to 0.