Web
-
python MITM proxy install for windowWeb 2024. 11. 21. 04:54
python에서 MITM proxy를 설치하고 기본적인 사용 예제를 정리해보자 설치python 가상환경(venv) 설치python mitmproxy 설치https를 위한 인증서 설치python 가상환경(venv)설치python -m venv ./venv → 현재 디렉토리에 venv라는 폴더 생성.\venv\Scripts\activate→ venv 가상환경 실행※ vscode위에서 사용 시 인터프리터 변경 필요(venv)(venv) USER 가 뜨면 성공 python mitmproxy 설치pip install mitmproxy https를 위한 인증서 설치 테스트를 위한 셀레니움을 같이 설치해준다pip install selenium mitmproxy와 selenium 연결 (mitm.py)from sele..
-
CGI / FAST CGI && WAS vs CGI vs SpringWeb 2024. 7. 31. 21:32
본 문서는 공부를 하는 과정에서 사용하는 필기이다. 정확한 정보가 아닐 수 있으니 다른 문헌도 참고하길 바란다.CGICommon Gateway Interface 라고 한다. 웹 서버에서 동적으로 처리하지 못하는 정보를 처리하기 위해 환경 변수를 통하여 외부 프로그램에 보내는 데, 이 과정에서 웹 서버가 사용하는 인터페이스이다. 사실상 웹 서버는 유저가 요청한 파일을 읽어서 출력하는 것을 목적으로 하지, 데이터를 처리하는 것을 목적으로 하지 않는다. 그래서 데이터의 처리를 외부 프로그램에 맡기는데, 이 과정에서 외부 프로그램에 처리해야 하는 데이터를 주고 받는 부분이 CGI이다. FAST CGIFAST CGI는 Open Market이 자신들의 문제를 해결하기 위해 개발CGI는 데이터의 처리를 위해 각각의 ..
-
Web Scanner / Fuzzer 차이Web 2024. 7. 15. 15:35
공부를 하는 중 Web Scanner와 Fuzzer의 차이가 궁금했다. Fuzzer와 Scanner(이하 퍼저 / 스캐너) 모두 취약점을 발굴하고 점검을 하는 도구라고 생각했지만, 친구들과 얘기하며 조사해본 결과 미묘한 차이가 있다는 것에 결론이 났다. 다음은 토의한 내용을 바탕으로 정리해본 글이다. 필자의 생각이 가미 되어 있으므로 참고용으로 사용하면 좋을 것 같다.Fuzzing (Fuzz testing)먼저 퍼저에 대해 알아볼 필요가 있다. 퍼즈 테스팅(Fuzz testing) 또는 퍼징(fuzzing)은 (종종 자동화 또는 반자동화된) 소프트웨어 테스트 기법으로서, 컴퓨터 프로그램에 유효한, 예상치 않은 또는 무작위 데이터를 입력하는 것이다. 이후 프로그램은 충돌이나 빌트인 코드 검증의 실패, 잠재..
-
HTTP packetWeb 2024. 6. 7. 21:57
Request# example[Request]Method URI HTTP_VersionHEADERBody# header[Request]POST /somerequest HTTP/1.1Host: a.comContent-Type: application/x-www-form-urlencodedContent-Length: 100User-Agent: Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko)Chorom/114.0.0.0 Safari/537.36Referer: Cookie: session=somesessionvaluesparam1=parameter # bodymethodGET : URL 쿼리를 통해 파리미터를 담아..
-
PrototypeWeb/Node.js 2024. 6. 7. 21:48
자바 스크립트에서 객체 지향을 하기 위해 사용하는 개념prototype은 생성자 함수가 실행될 때 반환해주는 프로퍼티__proto__ 는 상위 prototype을 접근할 때 사용사용 예시function Ultra(this.test = "testing"){}Ultra.prototype.hello = "world"function Super(){}Super.prototype = new Ultra()function Sub(){}Sub.prototype = new Super()var o = new Sub()순서변수 o에 넣기 위한 생성자 함수 new Sub() 실행Sub의 prototype 즉, 변수 o 에게 반환해주기 위한 객체를 생성하기 위해 prototype사용Sub.prototype이 생성자 함수 new ..
-
ExpressWeb/Node.js 2024. 6. 7. 21:47
프론트엔드에서 온 Request를 API를 통해서 받은 뒤, 백엔드에서 데이터를 조회, DB 조회 등 역할을 수행하고 Response를 보내는 웹 프레임 워크를 만들고 사용하는 것설치npm i express기본 예제const express = require('express')const app = express()app.get('/', function (req, res) { res.send('Hello World')})app.listen(3000)설명app.get('/', function(req, res){ res.send('Hello World!')})// HTTP Get 메소드 루트 라우팅 콜백 함수 버전app.get('/', (req, res) =>{ res.send('Hello World!')})..
-
Node.js 기초Web/Node.js 2024. 6. 7. 21:46
Node jsjavascript를 브라우저가 아닌 로컬 환경에서 실행시키기 위해 도와줌설치https://nodejs.org/en/download/prebuilt-installernode —verisonnpm -vnpmnode js에서 모듈을 가져와 쓰기 위한 패키지npm install 패키지명 으로 사용npm 사용 예시figlet 사용npm install initnpm 패키지를 한번에 관리하기 위함npm install figletnpm install figlet --save 이랑 같은 결과를 도출-save가 현재는 default로 붙기 때문에 굳이 안해줘도 됨npm install figletnpm figlet 패키지를 설치npm install figlet -g 을 하게 되면 전역으로 설치를 하므로 패키지..