본문 바로가기

WEB

(5)
Relative Path Overwrite 브라우저와 서버의 path 해석을 다르게 하여 임의의 파일을 브라우저에 로드하게 하는 공격 방식입니다. 예를들어 다음과 같은 URL이 있다고 생각해봅시다. http://www.test.com/path/to/script.js 이제 이 URL을 다음과 같이 바꾸어 브라우저에 입력했다고 생각합시다. 일반적인 상식에 따르면 해당 페이지는 404에러가 뜰 것입니다. /을 %2f으로 url encoding했기 때문입니다. http://www.test.com/path%2fto%2fscript.js 하지만 몇몇 사이트에서는 위와 같이 /을 %2f로 바꾸어도 script.js 파일에 정상적으로 접근이 가능합니다. 서버가 path를 해석하는 과정에서 %2f를 /으로 변환하여 해석하기 때문입니다. 이는 여러가지 원인이 있을..
Redpwn CTF 2020 / post-it-notes Keyword : SSRF, HTTP Request Smuggling Web server와 API서버가 주워집니다. Web Server는 외부에서 접근가능한 서버입니다. API Server는 로컬에서만 접속이 가능합니다. ## Command injection vulernalbiliry In Internal API Server def get_note(nid): stdout, stderr = subprocess.Popen(f"cat 'notes/{nid}' || echo it did not work btw", shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE, stdin = subprocess.PIPE).communicate() if stde..
Web cache deception attack 유튜브에 올라온 Black Hack 컨퍼런스 영상을 보던 중 어썸한 기법을 찾아서 정리 겸 남깁니다. 제 글이 부족하기도 하고 참고링크에 있는 유튜브 영상에 잘 설명되어 있으니, 공부 용도로 보시는 이 글을 분들은 유튜브 영상을 보는 걸 추천합니다. 웹알못이 작성한 글이니 틀린 내용을 발견하시면 지적 부탁드립니다. Background 1. Front-End server란? 현재 서비스 중인 많은 웹서버는 Front-End와 Back-End 구조로 이루어져 있습니다. Front-End 서버는 유저(브라우저)와 Back-End 서버 사이에서 이 둘의 연결을 이어주는 서버를 말합니다. Front-End 서버는 두가지 용도로 사용됩니다. 이를 간략하게 설명하면 다음과 같습니다. load balancer : 한 ..
SOP, CORS, CSP 보호되어 있는 글입니다.
javascript proto pollution 공부중입니다... What is prototype 자바스크립트는 객체지향 언어이지만 C++이나 JAVA와 같은 class가 없다. 대신 protoype이라는 개념이 등장한다.(prototype에 대해서 잘 설명한 글의 링크가 밑에 있다. 따라서 자세한 개념 설명보다는 prototype pollution에 필요한 내용 위주로 설명겠다.) class 개념이 없기 때문에 자바스크립트에서 객체를 생성할 때는 함수와 new 키워드를 이용한다. var test = function(a,b,c){ this.a=a; this.b=b; this.c=c; } a = new test(1,2,3) b = new test(4,5,6) a.dd=1; b.dd=1; 이때 a와 b 객체는 {"dd":1}라는 공통적인 요소를 가지고 있..