nosql injection in meteor.js application

16
NOSQL INJECTION IN APPS Vietnam WWW.DESIGNVELOPER.COM

Upload: designveloper

Post on 12-Apr-2017

87 views

Category:

Software


5 download

TRANSCRIPT

Page 1: NoSQL Injection in Meteor.js Application

NOSQL INJECTION IN APPS

Vietnam

WWW.DESIGNVELOPER.COM

Page 2: NoSQL Injection in Meteor.js Application

1.INTRODUCTION

WWW.DESIGNVELOPER.COM

Page 3: NoSQL Injection in Meteor.js Application

Hello!I am Son Leo At Designveloper for > 2

yearso Work with Meteor for > a

year

You can find me at:@sonlexqt

Page 4: NoSQL Injection in Meteor.js Application

Required: familiarity with

WWW.DESIGNVELOPER.COM

Page 5: NoSQL Injection in Meteor.js Application

Don’t get me wrong !

is NOT INSECURE

WWW.DESIGNVELOPER.COM

Page 6: NoSQL Injection in Meteor.js Application

SQL InjectionQueries use STRINGs as the control mechanism.

WWW.DESIGNVELOPER.COM

Page 7: NoSQL Injection in Meteor.js Application

Exploits of a Mom

// queryINSERT INTO Students VALUES ( '$Name' )// inputRobert'); DROP TABLE Students; --// resultINSERT INTO Students VALUES ( 'Robert' ); DROP TABLE Students; --' )

source: https://xkcd.com/327

WWW.DESIGNVELOPER.COM

Page 8: NoSQL Injection in Meteor.js Application

SQL Injection - One more example// querySELECT * FROM users WHERE username='peter’AND (password= ('$PWD'))// input' OR '1'='1’// resultSELECT * FROM users WHERE username='peter' AND (password='' OR '1'='1')

WWW.DESIGNVELOPER.COM

Page 9: NoSQL Injection in Meteor.js Application

NoSQL InjectionQueries use OBJECTs as the control mechanism.

WWW.DESIGNVELOPER.COM

Page 10: NoSQL Injection in Meteor.js Application

2.DEMO TIME

Meteor-shop web application

WWW.DESIGNVELOPER.COM

Page 11: NoSQL Injection in Meteor.js Application

Let’s play a role of a hacker !With NoSQL Injection skill.

WWW.DESIGNVELOPER.COM

Page 12: NoSQL Injection in Meteor.js Application

3.SOLUTIONS

WWW.DESIGNVELOPER.COM

Page 13: NoSQL Injection in Meteor.js Application

“MAKE

ASSERTIONS ON USER

INPUT DATA

WWW.DESIGNVELOPER.COM

Page 14: NoSQL Injection in Meteor.js Application

CHECK to the rescuehttps://atmospherejs.com/meteor/check

Check whether a value matches a

pattern$ meteor add check

check(slug, String);

ERROR: Expected String, got Object

WWW.DESIGNVELOPER.COM

Page 15: NoSQL Injection in Meteor.js Application

CHECK-CHECKERhttps://atmospherejs.com/east5th/check-checker Scan the code to detect methods / publish

functions which haven’t checked for its input data.

$ meteor add east5th:check-checker

WWW.DESIGNVELOPER.COM

Page 16: NoSQL Injection in Meteor.js Application

Thanks!Any questions?

o meteor-shop demo application https://github.com/sonlexqt/meteor-shop

WWW.DESIGNVELOPER.COM