Skip to content

Commit a2c6521

Browse files
committed
sample to exploit deserialization bug
1 parent e476ed7 commit a2c6521

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

Diff for: deserialization.js

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
var express = require('express');
2+
var cookieParser = require('cookie-parser');
3+
var escape = require('escape-html');
4+
var serialize = require('node-serialize');
5+
var app = express();
6+
app.use(cookieParser())
7+
8+
app.get('/', function(req, res) {
9+
if (req.cookies.profile) {
10+
var str = new Buffer(req.cookies.profile, 'base64').toString();
11+
var obj = serialize.unserialize(str);
12+
if (obj.username) {
13+
res.send("Hello " + escape(obj.username));
14+
}
15+
} else {
16+
res.cookie('profile', "eyJ1c2VybmFtZSI6ImFqaW4iLCJjb3VudHJ5IjoiaW5kaWEiLCJjaXR5IjoiYmFuZ2Fsb3JlIn0=", {
17+
maxAge: 900000,
18+
httpOnly: true
19+
});
20+
}
21+
res.send("Hello World");
22+
});
23+
app.listen(3000);

0 commit comments

Comments
 (0)