After cloning this repository, you could setup just like normal express project.
yarn --frozen-lockfile
Then copy for the .env
and customize with your system. Run this query below in mysql or mariadb.
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) NOT NULL,
`password` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_unique` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
CREATE TABLE `posts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`slug` varchar(100) NOT NULL,
`title` varchar(100) NOT NULL,
`body` text DEFAULT NULL,
`image` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `posts_unique` (`slug`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci;
INSERT INTO test.posts (slug,title,body,image) VALUES
('hello-world','Hello World','Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue interdum velit euismod in. Neque egestas congue quisque egestas diam. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. In massa tempor nec feugiat nisl. Cras pulvinar mattis nunc sed. Dui sapien eget mi proin sed libero enim sed. Nam at lectus urna duis. Consectetur purus ut faucibus pulvinar elementum integer enim neque. Eget nulla facilisi etiam dignissim diam. Neque laoreet suspendisse interdum consectetur. Sed turpis tincidunt id aliquet risus feugiat in. Amet mattis vulputate enim nulla. Tristique nulla aliquet enim tortor at auctor. Enim facilisis gravida neque convallis a cras semper. Egestas fringilla phasellus faucibus scelerisque eleifend donec pretium vulputate. Amet consectetur adipiscing elit ut aliquam purus sit.',NULL),
('japan','Japanese Temple','Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue interdum velit euismod in. Neque egestas congue quisque egestas diam. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. In massa tempor nec feugiat nisl. Cras pulvinar mattis nunc sed. Dui sapien eget mi proin sed libero enim sed. Nam at lectus urna duis. Consectetur purus ut faucibus pulvinar elementum integer enim neque. Eget nulla facilisi etiam dignissim diam. Neque laoreet suspendisse interdum consectetur. Sed turpis tincidunt id aliquet risus feugiat in. Amet mattis vulputate enim nulla. Tristique nulla aliquet enim tortor at auctor. Enim facilisis gravida neque convallis a cras semper. Egestas fringilla phasellus faucibus scelerisque eleifend donec pretium vulputate. Amet consectetur adipiscing elit ut aliquam purus sit.','/img/david-edelstein.jpg'),
('city','Beautiful Night Cities Light','Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue interdum velit euismod in. Neque egestas congue quisque egestas diam. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. In massa tempor nec feugiat nisl. Cras pulvinar mattis nunc sed. Dui sapien eget mi proin sed libero enim sed. Nam at lectus urna duis. Consectetur purus ut faucibus pulvinar elementum integer enim neque. Eget nulla facilisi etiam dignissim diam. Neque laoreet suspendisse interdum consectetur. Sed turpis tincidunt id aliquet risus feugiat in. Amet mattis vulputate enim nulla. Tristique nulla aliquet enim tortor at auctor. Enim facilisis gravida neque convallis a cras semper. Egestas fringilla phasellus faucibus scelerisque eleifend donec pretium vulputate. Amet consectetur adipiscing elit ut aliquam purus sit.','/img/jezael-melgoza.jpg'),
('sky','Beautiful Skies','Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue interdum velit euismod in. Neque egestas congue quisque egestas diam. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. In massa tempor nec feugiat nisl. Cras pulvinar mattis nunc sed. Dui sapien eget mi proin sed libero enim sed. Nam at lectus urna duis. Consectetur purus ut faucibus pulvinar elementum integer enim neque. Eget nulla facilisi etiam dignissim diam. Neque laoreet suspendisse interdum consectetur. Sed turpis tincidunt id aliquet risus feugiat in. Amet mattis vulputate enim nulla. Tristique nulla aliquet enim tortor at auctor. Enim facilisis gravida neque convallis a cras semper. Egestas fringilla phasellus faucibus scelerisque eleifend donec pretium vulputate. Amet consectetur adipiscing elit ut aliquam purus sit.','/img/guillaume-galtier.jpg'),
('fuji','Fuji-san is a Mountain','Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue interdum velit euismod in. Neque egestas congue quisque egestas diam. Sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi. In massa tempor nec feugiat nisl. Cras pulvinar mattis nunc sed. Dui sapien eget mi proin sed libero enim sed. Nam at lectus urna duis. Consectetur purus ut faucibus pulvinar elementum integer enim neque. Eget nulla facilisi etiam dignissim diam. Neque laoreet suspendisse interdum consectetur. Sed turpis tincidunt id aliquet risus feugiat in. Amet mattis vulputate enim nulla. Tristique nulla aliquet enim tortor at auctor. Enim facilisis gravida neque convallis a cras semper. Egestas fringilla phasellus faucibus scelerisque eleifend donec pretium vulputate. Amet consectetur adipiscing elit ut aliquam purus sit.','/img/jj-ying.jpg');
%2e%2e%2f
is encoded form of ../
and you should remember to encode the url for directory traversing. https://owasp.org/www-community/attacks/Path_Traversal. Patch could delete the path.resolve
and using the root
parameter.
By using SQLMap to automate testing were sufficient to get users and dump tables. A preventive measure could be taken such as escaping the query.