Guest User

Untitled

a guest
Apr 9th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. var express = require('express')
  2. var app = express()
  3.  
  4. var bodyParser = require('body-parser')
  5. app.use(bodyParser.urlencoded({}));
  6.  
  7. var path = require("path");
  8. var moment = require('moment');
  9. var MongoClient = require('mongodb').MongoClient;
  10. var url = "mongodb://localhost:27017/";
  11.  
  12. MongoClient.connect(url, function(err, db) {
  13. if (err) throw err;
  14. dbo = db.db("test_db");
  15. var collection_name = "users";
  16. var password_column = "password_"+Math.random().toString(36).slice(2)
  17. var password = "XXXXXXXXXXXXXXXXXXXXXX";
  18. // flag is flag{password}
  19. var myobj = { "username": "admin", "last_access": moment().format('YYYY-MM-DD HH:mm:ss Z')};
  20. myobj[password_column] = password;
  21. dbo.collection(collection_name).remove({});
  22. dbo.collection(collection_name).update(
  23. { name: myobj.name },
  24. myobj,
  25. { upsert: true }
  26. );
  27.  
  28. app.get('/', function (req, res) {
  29. res.sendFile(path.join(__dirname,'index.html'));
  30. })
  31. app.post('/check', function (req, res) {
  32. var check_function = 'if(this.username == #username# && #username# == "admin" && hex_md5(#password#) == this.'+password_column+'){\nreturn 1;\n}else{\nreturn 0;}';
  33.  
  34. for(var k in req.body){
  35. var valid = ['#','(',')'].every((x)=>{return req.body[k].indexOf(x) == -1});
  36. if(!valid) res.send('Nope');
  37. check_function = check_function.replace(
  38. new RegExp('#'+k+'#','gm')
  39. ,JSON.stringify(req.body[k]))
  40. }
  41. var query = {"$where" : check_function};
  42. var newvalue = {$set : {last_access: moment().format('YYYY-MM-DD HH:mm:ss Z')}}
  43. dbo.collection(collection_name).updateOne(query,newvalue,function (e,r){
  44. if(e) throw e;
  45. res.send('ok');
  46. // ... implementing, plz dont release this.
  47. });
  48. })
  49. app.listen(8081)
  50.  
  51. });
Add Comment
Please, Sign In to add comment