1
1
var mysql = require ( 'mysql2' ) ;
2
2
var classValidator = require ( 'class-validator' ) ;
3
+ //var mysql = require('mysql2/promise')
3
4
4
- let requirements = {
5
- host : 'localhost' ,
6
- user : 'root' ,
7
- password : 'compsec2' ,
8
- database : 'sqldatabase'
9
- } ;
10
- var connection = mysql . createConnection ( requirements ) ;
11
-
12
- function bypassedValidation ( emailInput , passwordInput ) {
5
+ function bypassedValidation ( emailInput , passwordInput , connection ) {
13
6
const sqlquery1 = `SELECT * FROM login WHERE email = ${ emailInput } AND password = ${ passwordInput } ` ;
14
- connection . query ( sqlquery1 , function ( error , rows ) {
15
- if ( error ) throw error ;
16
- console . log ( rows ) ;
7
+ return new Promise ( function ( resolve , reject ) {
8
+ connection . query ( sqlquery1 , function ( error , rows ) {
9
+ if ( error ) {
10
+ reject ( new Error ( error ) )
11
+ }
12
+ else {
13
+ resolve ( rows ) ;
14
+ }
15
+
16
+ } ) ;
17
17
} ) ;
18
-
19
- return ;
18
+
20
19
}
21
- class attackSchema {
20
+ class intendedSchema {
22
21
email ;
23
22
password
24
23
}
24
+
25
25
let param = {
26
26
email : ' " OR 1=1--' ,
27
27
password : ' " OR 1=1--' ,
28
28
constructor : false
29
29
} ;
30
30
31
- let test1Param = Object . assign ( attackSchema , param ) ;
32
- console . log ( "This is the merged schema:" )
33
- console . log ( test1Param ) ;
34
31
35
32
36
- classValidator . validate ( test1Param ) . then ( errors => {
37
- if ( errors . length > 0 ) {
38
- console . log ( 'invalid email and or password, unable to validate user' , errors ) ;
39
- } else {
40
- console . log ( 'valid email and password, user successfully validated. Relevant Database Information:' ) ;
41
- bypassedValidation ( test1Param . email , test1Param . password ) ;
42
- }
43
- } ) ;
33
+ function jsonHandle ( emailInput )
34
+ {
35
+ console . log ( "into the json" ) ;
36
+ let requirements = {
37
+ host : 'localhost' ,
38
+ user : 'root' ,
39
+ password : 'compsec2' ,
40
+ database : 'sqldatabase'
41
+ } ;
42
+ var connection = mysql . createConnection ( requirements ) ;
43
+
44
+ let test1Param = Object . assign ( intendedSchema , param ) ;
45
+ console . log ( "This is the merged schema:" )
46
+ console . log ( test1Param ) ;
47
+
48
+
49
+ return new Promise ( function ( resolve , reject ) {
50
+ classValidator . validate ( test1Param ) . then ( ( errors ) => {
51
+ if ( errors . length > 0 ) {
52
+ console . log ( 'invalid email and or password, unable to validate user' , errors ) ;
53
+ resolve ( "Class validator failed to validate user " ) ;
54
+ } else {
55
+ console . log ( 'valid email and password, user successfully validated. Relevant Database Information:' ) ;
56
+ bypassedValidation ( test1Param . email , test1Param . password , connection ) . then ( ( results ) => {
57
+ resolve ( results ) ;
58
+ } )
59
+
60
+ }
61
+ } ) ;
62
+ } ) ;
63
+
64
+ }
44
65
45
- return ;
66
+ module . exports = {
67
+ jsonHandle
68
+ }
0 commit comments