Skip to content

Commit 5b5c171

Browse files
committed
Added test cases for client-rds-data for sql injections
1 parent 0e6bac7 commit 5b5c171

File tree

1 file changed

+68
-0
lines changed
  • javascript/ql/test/query-tests/Security/CWE-089/untyped

1 file changed

+68
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
const { RDSDataClient, BatchExecuteStatementCommand, ExecuteStatementCommand, ExecuteSqlCommand } = require("@aws-sdk/client-rds-data");
2+
const express = require('express');
3+
const bodyParser = require('body-parser');
4+
const app = express();
5+
app.use(bodyParser.json());
6+
7+
app.post('/v3/rds/all', async (req, res) => {
8+
const userQuery = req.body.query; // $ MISSING: Source
9+
const userQueries = req.body.queries; // $ MISSING: Source
10+
11+
const client = new RDSDataClient({ region: "us-east-1" });
12+
13+
const params1 = {
14+
resourceArn: "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-cluster",
15+
secretArn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret",
16+
database: "userDatabase",
17+
sql: userQuery
18+
};
19+
await client.send(new ExecuteStatementCommand(params1)); // $ MISSING: Alert
20+
21+
const params2 = {
22+
resourceArn: "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-cluster",
23+
secretArn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret",
24+
database: "userDatabase",
25+
parameterSets: userQueries.map(sql => ({ sql }))
26+
};
27+
await client.send(new BatchExecuteStatementCommand(params2)); // $ MISSING: Alert
28+
29+
const params = {
30+
resourceArn: "...",
31+
secretArn: "...",
32+
database: "userDatabase",
33+
sqlStatements: userQuery
34+
};
35+
36+
await client.send(new ExecuteSqlCommand(params)); // $ MISSING: Alert
37+
38+
res.end();
39+
});
40+
41+
const AWS = require('aws-sdk');
42+
43+
app.post('/v2/rds/all', async (req, res) => {
44+
const userQuery = req.body.query; // $ MISSING: Source
45+
const userQueries = req.body.queries; // $ MISSING: Source
46+
47+
const rdsData = new AWS.RDSDataService({ region: "us-east-1" });
48+
49+
const params1 = {
50+
resourceArn: "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-cluster",
51+
secretArn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret",
52+
database: "userDatabase",
53+
sql: userQuery // $ MISSING: Alert
54+
};
55+
await rdsData.executeStatement(params1).promise();
56+
57+
const params2 = {
58+
resourceArn: "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-cluster",
59+
secretArn: "arn:aws:secretsmanager:us-east-1:123456789012:secret:my-secret",
60+
database: "userDatabase",
61+
parameterSets: userQueries.map(sql => ({ sql })) // $ MISSING: Alert
62+
};
63+
await rdsData.batchExecuteStatement(params2).promise();
64+
65+
res.end();
66+
});
67+
68+
app.listen(3000);

0 commit comments

Comments
 (0)