Logo
-

Byte Open Security

(ByteOS Network)

Log In

Sign Up

ByteOS

Security
Vulnerability Details
Registries
Custom Views
Weaknesses
Attack Patterns
Filters & Tools
CAPEC-110:SQL Injection through SOAP Parameter Tampering
Attack Pattern ID:110
Version:v3.9
Attack Pattern Name:SQL Injection through SOAP Parameter Tampering
Abstraction:Detailed
Status:Draft
Likelihood of Attack:High
Typical Severity:Very High
DetailsContent HistoryRelated WeaknessesReports
▼Description
An attacker modifies the parameters of the SOAP message that is sent from the service consumer to the service provider to initiate a SQL injection attack. On the service provider side, the SOAP message is parsed and parameters are not properly validated before being used to access a database in a way that does not use parameter binding, thus enabling the attacker to control the structure of the executed SQL query. This pattern describes a SQL injection attack with the delivery mechanism being a SOAP message.
▼Extended Description
▼Alternate Terms
▼Relationships
NatureTypeIDName
ChildOfS66SQL Injection
CanFollowD279SOAP Manipulation
CanPrecedeD108Command Line Execution through SQL Injection
Nature: ChildOf
Type: Standard
ID: 66
Name: SQL Injection
Nature: CanFollow
Type: Detailed
ID: 279
Name: SOAP Manipulation
Nature: CanPrecede
Type: Detailed
ID: 108
Name: Command Line Execution through SQL Injection
▼Execution Flow
Explore
1.

Detect Incorrect SOAP Parameter Handling

The attacker tampers with the SOAP message parameters and looks for indications that the tampering caused a change in behavior of the targeted application.

Technique
The attacker tampers with the SOAP message parameters by injecting some special characters such as single quotes, double quotes, semi columns, etc. The attacker observes system behavior.
Experiment
1.

Probe for SQL Injection vulnerability

The attacker injects SQL syntax into vulnerable SOAP parameters identified during the Explore phase to search for unfiltered execution of the SQL syntax in a query.

Technique
Exploit
1.

Inject SQL via SOAP Parameters

The attacker injects SQL via SOAP parameters identified as vulnerable during Explore phase to launch a first or second order SQL injection attack.

Technique
An attacker performs a SQL injection attack via the usual methods leveraging SOAP parameters as the injection vector. An attacker has to be careful not to break the XML parser at the service provider which may prevent the payload getting through to the SQL query. The attacker may also look at the WSDL for the web service (if available) to better understand what is expected by the service provider.
▼Prerequisites
SOAP messages are used as a communication mechanism in the system
SOAP parameters are not properly validated at the service provider
The service provider does not properly utilize parameter binding when building SQL queries
▼Skills Required
Medium

If the attacker is able to gain good understanding of the system's database schema


High

If the attacker has to perform Blind SQL Injection

▼Resources Required
None: No specialized resources are required to execute this type of attack.
▼Indicators
▼Consequences
ScopeLikelihoodImpactNote
IntegrityN/AModify DataN/A
AvailabilityN/AUnreliable ExecutionN/A
ConfidentialityN/ARead DataN/A
ConfidentialityAccess ControlAuthorizationN/AGain PrivilegesN/A
ConfidentialityIntegrityAvailabilityN/AExecute Unauthorized CommandsRun Arbitrary Code
Scope: Integrity
Likelihood: N/A
Impact: Modify Data
Note: N/A
Scope: Availability
Likelihood: N/A
Impact: Unreliable Execution
Note: N/A
Scope: Confidentiality
Likelihood: N/A
Impact: Read Data
Note: N/A
Scope: Confidentiality, Access Control, Authorization
Likelihood: N/A
Impact: Gain Privileges
Note: N/A
Scope: Confidentiality, Integrity, Availability
Likelihood: N/A
Impact: Execute Unauthorized Commands
Note: Run Arbitrary Code
▼Mitigations
Properly validate and sanitize/reject user input at the service provider.
Ensure that prepared statements or other mechanism that enables parameter binding is used when accessing the database in a way that would prevent the attackers' supplied data from controlling the structure of the executed query.
At the database level, ensure that the database user used by the application in a particular context has the minimum needed privileges to the database that are needed to perform the operation. When possible, run queries against pre-generated views rather than the tables directly.
▼Example Instances
▼Related Weaknesses
IDName
CWE-20Improper Input Validation
CWE-89Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
ID: CWE-20
Name: Improper Input Validation
ID: CWE-89
Name: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
▼Taxonomy Mappings
Taxonomy NameEntry IDEntry Name
▼Notes
▼References
Details not found