-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Demo branch #33
base: main
Are you sure you want to change the base?
Demo branch #33
Conversation
app.get('/login', (req, res) => { | ||
const user = req.query.username; | ||
const pass = req.query.password; | ||
|
||
// Concatenation using a different pattern to obscure SQL injection vulnerability | ||
const query = ['SELECT * FROM users WHERE username = "', user, '" AND password = "', pass, '"'].join(''); | ||
|
||
db.get(query, (err, row) => { | ||
if (err) { | ||
res.status(500).send('Internal Server Error'); | ||
} else if (row) { | ||
res.send('Login successful!'); | ||
} else { | ||
res.send('Invalid credentials'); | ||
} | ||
}); | ||
}); |
Check failure
Code scanning / CodeQL
Missing rate limiting High
a database access
// Slightly obfuscated SQL Injection vulnerability | ||
app.get('/login', (req, res) => { | ||
const user = req.query.username; | ||
const pass = req.query.password; |
Check warning
Code scanning / CodeQL
Sensitive data read from GET request Medium
Route handler
// Concatenation using a different pattern to obscure SQL injection vulnerability | ||
const query = ['SELECT * FROM users WHERE username = "', user, '" AND password = "', pass, '"'].join(''); | ||
|
||
db.get(query, (err, row) => { |
Check failure
Code scanning / CodeQL
Database query built from user-controlled sources High
user-provided value
This query string depends on a
user-provided value
}; | ||
|
||
// Render profile with potential XSS | ||
res.send(renderProfile(username)); |
Check failure
Code scanning / CodeQL
Reflected cross-site scripting High
user-provided value
const app = express(); | ||
const db = mysql.createConnection({ | ||
host: 'localhost', | ||
user: 'root', |
Check failure
Code scanning / CodeQL
Hard-coded credentials Critical
user name
// Vulnerable SQL Injection Endpoint | ||
app.get('/user/:id', (req, res) => { | ||
const userId = req.params.id; | ||
db.query(`SELECT * FROM users WHERE id = ${userId}`, (err, result) => { |
Check failure
Code scanning / CodeQL
Database query built from user-controlled sources High
user-provided value
app.post('/execute', (req, res) => { | ||
const command = req.body.command; | ||
exec(command, (err, stdout, stderr) => { | ||
if (err) { | ||
res.status(500).send('Command execution failed'); | ||
return; | ||
} | ||
res.send(`Command output: ${stdout}`); | ||
}); | ||
}); |
Check failure
Code scanning / CodeQL
Missing rate limiting High
a system command
// Vulnerable Command Injection Endpoint | ||
app.post('/execute', (req, res) => { | ||
const command = req.body.command; | ||
exec(command, (err, stdout, stderr) => { |
Check failure
Code scanning / CodeQL
Uncontrolled command line Critical
user-provided value
// Vulnerable Hashing (Use of Outdated Cryptographic Practices) | ||
app.post('/hash', (req, res) => { | ||
const password = req.body.password; | ||
const hash = crypto.createHash('md5').update(password).digest('hex'); |
Check failure
Code scanning / CodeQL
Use of password hash with insufficient computational effort High
an access to password
Password from
an access to password
app.post('/protobuf', async (req, res) => { | ||
const root = await protobuf.load("example.proto"); | ||
const Message = root.lookupType("examplepackage.Message"); | ||
|
||
const payload = req.body; | ||
const errMsg = Message.verify(payload); | ||
if (errMsg) { | ||
res.status(400).send(`Invalid message: ${errMsg}`); | ||
return; | ||
} | ||
|
||
const message = Message.create(payload); | ||
res.send(`Received message: ${JSON.stringify(message)}`); | ||
}); |
Check failure
Code scanning / CodeQL
Missing rate limiting High
No description provided.