SQL Injection Demo
FabianBoerner_check24.de
2,520 views
Hi,
Dieses Beispiel soll euch demonstrieren wie es zu einer SQL Injection kommen kann.
Der Datenbank wurde ein Admin User hinzugefügt:
username: admin
password: admin123
Normalerweise sollte es nur möglich sein sich mit diesem Zugang einzuwählen. Dennoch kann man sich bei unvorsichtiger Programmierweise auf andere Arten Zugang verschaffen.
Solltet ihr genug mit dieser kleinen App gespielt haben probiert diese Zungangsdaten aus:
username: admin
password: unknown' or '1'='1
Hands-on Demo
Beispiel APP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// {
var express = require('express');
var bodyParser = require('body-parser');
var sqlite3 = require('sqlite3').verbose();
var server = express();
server.use(express.static('.'));
server.use(bodyParser.urlencoded({extended: true}));
var db = new sqlite3.Database(':memory:');
db.serialize(function() {
db.run("CREATE TABLE user (username TEXT, password TEXT, name TEXT)");
db.run("INSERT INTO user VALUES ('admin', 'admin123', 'App Administrator')");
});
// }
server.get('/', function(req, res) {
console.log("/ is called on server");
res.sendFile(path.join(__dirname + '/index.html'));
});
server.post('/login', function (req, res) {
var username = req.body.username; // a valid username is admin
var password = req.body.password; // a valid password is admin123
var query = "SELECT name FROM user where username = '" + username + "' and password = '" + password + "'";
console.log("Benutzername: " + username);
console.log("Passwort: " + password);
console.log('Datenbank Abfrage: ' + query);
db.get(query, function(err, row) {
if(err) {
console.log('FEHLER', err);
res.redirect("/index.html#error");
} else if (!row) {
res.redirect("/index.html#unauthorized");
} else {
res.send('Hi, <b>' + row.name + '</b><br /><a href="/index.html">Zurück zur Login-Seite</a>');
}
});
});
console.log("Server wird gestartet");
server.listen(8080);
console.log('TECHIO> open -p 8080 /');
console.log("Server gestartet");
1
<!DOCTYPE html>
1
form {
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.