`
____________________ ___ ___ ________
\_ _____/\_ ___ \ / | \\_____ \
| __)_ / \ \// ~ \/ | \
| \\ \___\ Y / | \
/_______ / \______ /\___|_ /\_______ /
\/ \/ \/ \/
.OR.ID
ECHO_ADV_13$2005
---------------------------------------------------------------------------
Multiple Vulnerabilities in MetaCart e-Shop
---------------------------------------------------------------------------
Author: Dedi Dwianto
Date: May, 16th 2005
Location: Indonesia, Jakarta
Web: http://echo.or.id/adv/adv13-theday-2005.txt
---------------------------------------------------------------------------
Affected software description:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Application : MetaCart e-Shop
version: All version of MetaCart e shop Products
url : http://www.metalinks.com
Author: MetaLinks Online Design
Description:
MetaCart e-Shop Is shopping cart application for small businesses
and support ms SQL,MS Access and MySQL.
---------------------------------------------------------------------------
Vulnerabilities:
~~~~~~~~~~~~~~~~
A. Cross-Site Scripting (XSS)
File productsByCategory.asp
http://[url]/mcartlite/productsByCategory.asp?intCatalogID=1&strCatalog_NAME=<script>alert('test')</script>
Problem Script productsByCategory.asp
--------------
strCatalog_name = Request.QueryString("strCatalog_NAME")
...
...
strParam = Response.Write (rsCatalog("catalogID")) &strCatalog_NAME=Response.Write
(Server.URLEncode(rsCatalog("catalogName"))) &rsCatalog("catalogName")
--------------
B. SQL Injection
File productsByCategory.asp
http://[url]/mcartlite/productsByCategory.asp?strSubCatalogID=2'(Sql Injection)
Problem Script
---------------
intCatalogID = Request.QueryString("intCatalogID")
...
...
' Build SQL String using the parameters
strSQL = "SELECT productID,productName,productPrice FROM products WHERE catalogID = '"&strParam&"'"
---------------
Ex : http://www.metalinks.com/mcartlite/productsByCategory.asp?strSubCatalogID=2'having 1=1--
Error :
Microsoft JET Database Engine error '80040e14'
Syntax error in string in query expression '1=1--''.
/mcartlite/productsByCategory.asp, line 114
File strCatalog_NAME
http://[url]/mcartlite/product.asp?intProdID=1'(SQL Injection)
Problem Script product.asp line 102
---------------
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."
---------------
C. Solution
Using Replace String For Filter some character
- productsByCategory.asp
* Find
intCatalogID = Request.QueryString("intCatalogID")
After,add
intCatalogID = Replace(intCatalogID,"'","")
* Find
strCatalog_name = Request.QueryString("strCatalog_NAME")
After,add
strCatalog_name = Replace(strCatalog_NAME,"<","")
- product.asp
* Find
intProdID = Request.QueryString("intProdID")
After,add
intProdID = Replace(intProdID,"'","")
---------------------------------------------------------------------------
Shoutz:
~~~~~~~
~ y3dips, moby, comex, z3r0byt3, K-159, c-a-s-e, S`to, lirva32, anonymous
~ Lieur Euy , MSR
~ [email protected] ,
~ #e-c-h-o@DALNET
---------------------------------------------------------------------------
Contact:
~~~~~~~~
the_day || echo|staff || the_day[at]echo[dot]or[dot]id
Homepage: http://theday.echo.or.id/
-------------------------------- [ EOF ] ----------------------------------
`
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation