SQL Injection Demo
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
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");
Press desired key combination and then press ENTER.
1
<!DOCTYPE html>
Press desired key combination and then press ENTER.
1
form {
Press desired key combination and then press ENTER.
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content