모의해킹하다가 XSS와 같은 공격포인트를 발견하거나 키로거를 제작했는데, 정보를 전송할 웹서버가 없고 구축하기도 번거로워 그냥 "브라우저에 쿠키값만 띄워서 보여주기"하거나 또는 "무결성 검증 안함" 등으로 보고서를 마친 경우가 종종 있습니다.
nodejs를 이용하면 빠르게 테스트용 웹서버를 구축할 수 있더군요. 덩달아 보고서의 퀄리티도 올라가겠지요.
디렉터리 하나 만들고 디렉터리 안에서 'npm init' 명령어를 입력합니다.
package name, version, description, entry point 등등 입력하면 package.json 파일이 생성됩니다.
'npm install express --save' 명령어로 express 서버 설치합니다.
nodemon이 없다면 'npm install nodemon -g' 명령어로 설치합니다. // nodemon은 app.js 파일을 수정하고 저장하면 자동으로 서버를 다시 시작해줌.
app.js 파일을 작성합니다.
서버에 접속하면 'Hello World'를 response로 반환하고 request 'muffin' 파라미터의 값을 console에 출력하는 간단한 웹서버입니다.
// node_modules 에 있는 express 관련 파일을 가져온다.
var express = require('express')
// express 는 함수이므로, 반환값을 변수에 저장한다.
var app = express()
// 3000 포트로 서버 오픈
app.listen(3000, function() {
console.log("start! express server on port 3000")
})
// request 와 response 라는 인자를 줘서 콜백 함수를 만든다.
app.get('/', function(req,res) {
// res.sendFile(__dirname + "/public/main.html")
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World');
// muffin 변수에 저장되어있는 console.log로 출력
console.log({data:req.query.muffin});
})
'nodemon app.js' 명령어로 웹서버를 구동합니다.
구동된 웹 서버에 파라미터와 함께 접속하니 다음과 같이 로그가 찍히고 있습니다.
※ 출처
https://www.moesif.com/blog/technical/logging/How-we-built-a-Nodejs-Middleware-to-Log-HTTP-API-Requests-and-Responses/ (How we built a Node.js Middleware to Log HTTP API Requests and Responses)
https://nodejs.dev/learn/get-http-request-body-data-using-nodejs (Get HTTP request body data using Node.js)
https://selosele.github.io/2020/11/23/nodejs-create-webserver/ (node.js 로 간단한 웹서버 띄워보기)
'Information Security > Tip' 카테고리의 다른 글
모의해커 회사선택 팁 (0) | 2022.05.22 |
---|---|
VBA Invert Range Selection (0) | 2022.01.03 |
ARM SystemCall Table (0) | 2021.08.10 |
VSCode SFTP Sync 설정 (0) | 2021.07.20 |
File Hash 확인 프로그램 (0) | 2020.12.24 |