[NT] MetaCart e-Shop Multiple Vulnerabilities

SecuriTeam <[email protected]>
Newsgroups gmane.comp.security.securiteam
Message-ID <[email protected]>
The following security advisory is sent to the securiteam mailing list, and can be found at the SecuriTeam web site: http://www.securiteam.com
- - promotion

The SecuriTeam alerts list - Free, Accurate, Independent.

Get your security news from a reliable source.
http://www.securiteam.com/mailinglist.html 

- - - - - - - - -



  MetaCart e-Shop Multiple Vulnerabilities
------------------------------------------------------------------------


SUMMARY

 <http://www.metalinks.com> MetaCart e-Shop is a "shopping cart 
application for small businesses and support MSSQL, MS Access and MySQL". 
The MetaCart e-Shop product has been found to contain multiple 
vulnerabilities ranging from cross site scripting to SQL injection 
attacks.

DETAILS

Cross-Site Scripting (XSS)
By issuing a URL such as the following:
http://[url]/mcartlite/productsByCategory.asp?intCatalogID=1 
&strCatalog_NAME=<script>alert('test')</script>
An attacker can cause the remote host to include arbitrary HTML and/or 
JavaScript.

Vulnerable code in productsByCategory.asp:
strCatalog_name = Request.QueryString("strCatalog_NAME")
..
..
strParam = Response.Write (rsCatalog("catalogID")) 
&strCatalog_NAME=Response.Write
(Server.URLEncode(rsCatalog("catalogName"))) &rsCatalog("catalogName")

SQL Injection
By issuing any of the following URLs:
http://[url]/mcartlite/productsByCategory.asp?strSubCatalogID=2'(Sql 
Injection)
http://[url]/mcartlite/product.asp?intProdID=1'(SQL Injection)
An attacker can cause the remote host to include arbitrary SQL statements 
into the product's existing SQL statements.

Vulnerable code in productsByCategory.asp:
intCatalogID = Request.QueryString("intCatalogID")
..
..
' Build SQL String using the parameters
strSQL = "SELECT productID,productName,productPrice FROM products WHERE 
catalogID = '"&strParam&"'"

Vulnerable code in product.asp:
intProdID = Request.QueryString("intProdID")
..
..
Set rsProdInfo = Conn.Execute("SELECT * FROM " & _
"products where productID="&intProdID)
if rsProdInfo.EOF then
Response.Write "Product Number " & intProdID & _
" does not exist."

Solution:
For productsByCategory.asp do the following:
 * Find:
intCatalogID = Request.QueryString("intCatalogID")
After it add:
intCatalogID = Replace(intCatalogID,"'","")

 * Find:
strCatalog_name = Request.QueryString("strCatalog_NAME")
After it add:
strCatalog_name = Replace(strCatalog_NAME,"<","")

For products.asp do the following:
 * Find:
intProdID = Request.QueryString("intProdID")
After it add:
intProdID = Replace(intProdID,"'","")


ADDITIONAL INFORMATION

The information has been provided by  <mailto:[email protected]> dedi 
dwianto.
The original article can be found at:  
<http://echo.or.id/adv/adv13-theday-2005.txt> 
http://echo.or.id/adv/adv13-theday-2005.txt



======================================== 


This bulletin is sent to members of the SecuriTeam mailing list. 
To unsubscribe from the list, send mail with an empty subject line and body to: [email protected] 
In order to subscribe to the mailing list, simply forward this email to: [email protected] 


==================== 
==================== 

DISCLAIMER: 
The information in this bulletin is provided "AS IS" without warranty of any kind. 
In no event shall we be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.