WEB
HTTP3 란 무엇일까
HTTP3 란 무엇일까
2020.02.17HTTP/3는 HTTP 프로토콜의 3번째 메이저 업데이트 버전이다. HTTP/2 버전이 배포된지도 약 4년 밖에 안지났는데 벌써 3버전이 배포된 것은, HTTP 프로토콜이 모든 웹 통신의 근간이 되는 프로토콜인 점, 1.1버전 이후 2버전이 발표되기 까지 걸린 시간이 18년이라는 점, 결정적으로 3버전에서는 그동안 변하지 않고 TCP를 기반으로 설계되어 왔던 토대를 모두 버리고, UDP에 근간을 두는 선택을 보면, 이번 메이저 발표는 매우 충격적이면서 이례이라고 볼 수 있다. 당장 HTTP 2버전에 대해서도 제대로 알지 못하고 있었던 나 자신에 대해서 반성하며, 지금까지의 HTTP와 함께, 완전히 새롭게 태어난 HTTP 프로토콜에 대해서 알아보는 시간을 가져보려고 한다. 지금까지의 HTTP HTTP/0...
크로미움? 크롬? 무슨차이일까
크로미움? 크롬? 무슨차이일까
2019.04.11부끄럽지만, 필자도 크로미움이라는 브라우저의 존재에 대해서 알게된 것은 오래되지 않았습니다. 작년 12월 엣지(Edge)브라우저가 고유의 엔진을 포기하고 크로미움 코드를 적용한다고 공개하면서 관심이 생겨 찾아보았더니 필자가 가장 좋아하는 브라우저인 크롬의 어머니격이 되는 존재라는 것을 확인하고 관심이 생겨, 이에 대해 간단하게 정리해 보려고 합니다. 크로미움이란? 크로미움 이라는 오픈소스 프로젝트에서 만든 브라우저 이름이 바로 크로미움입니다. 구글에서 2008년 9월 시작한 프로젝트인 크로미움은 오픈소스 프로젝트 이기 때문에 구글 직원이 아닌 사람들도 참가할 수 있으며, 이 프로젝트를 통해 만들어진 소스코드에서 커파일 된 브라우저가 바로 크로미움인 것입니다. 위키백과를 검색해 보니 크로미엄, 크로뮴 이라..
[SUNINATAS 23번] 문제풀이
[SUNINATAS 23번] 문제풀이
2018.08.26WEB Level 22써니나타스의 마지막 문제입니다. level23의 문제도 22번 문제와 같이 Blind Injection문제입니다.문제에도 "Hard Blind Sql Injection"이라고 적혀있듯, 몇가지 제약사항으로 인해 난이도가 조금더 상승한 모습을 볼 수 있습니다. 난이도를 상승시킨 요소들은 다음과 같습니다. admin 문자열 필터링 규칙 추가입력가능 문자길이 30자 제한 소스의 주석부분을 살펴보면, admin의 패스워드를 찾는 것이 이 문제의 목적인 것 같습니다. 먼저, admin의 pw를 찾아야 하는 문제이기 때문에, 인젝션하여 검색할 튜플을 특정짓기 위해서 admin이라는 id정보를 필터에 걸리지 않게 쿼리로 전달할 방법을 찾아야 했습니다. 그 결과, 제가 찾은 방법은 두가지 정도였습..
[SUNINATAS 22번] 문제풀이
[SUNINATAS 22번] 문제풀이
2018.08.17WEB Level 22써니나타스의 다음 웹 관련 문제는 level22번 문제입니다. 22번 문제는 Blind Sql Injection에 관한 문제입니다. 로그인 창이 하나있고, “Blind Sql Injection” 이라는 문구가 친절하게 써져있습니다. id와 pw를 써 넣는 곳이 있고, 이 곳에 넣은 값은 해당 프레임이 참조하는 데이터베이스의 쿼리문의 일부로 전달이 됩니다. 이 값을 개발자가 의도하지 않은 적절하지 않은 데이터를 삽입하면, 적절한 필터링이 안되어 있을 경우, 공격자가 임의로 데이터베이스를 조작하거나 참조할 수 있게 됩니다. 블라인드 SQL 인젝션의 경우에는, 데이터베이스 조작을 통해 직접적인 데이터베이스 내용을 볼 수는 없지만, 주로 참, 거짓을 판단하는 구문을 전달해, 각 상황에 따라..
[SUNINATAS 8번] 문제풀이
[SUNINATAS 8번] 문제풀이
2018.08.16WEB Level 8level8은 굉장히 간단한 문제이면서도 귀찮은 문제입니다. 물론, 공격용 코드를 작성할 줄 모른다는 가정 하에 말입니다. 문제를 간단하게 살펴보면, 로그인을 하는 것이 목적이고, 주어진 힌트정보에 따르면, admin 계정으로 로그인 할 수 있고, 그의 비밀번호는 0~9999 사이의 숫자라는 것을 알 수 있습니다. 헤더 정보를 확인해보니, 로그인 요청을 할 때, 페이지 요청방식은 POST 방식이고, 파라미터로 id, pw 두 개의 필드를 이용해 서버에 전달하고 있었습니다. 페이지 요청방식을 알아낸 이상, 코드를 만드는 것은 누워서 잠자기입니다. 파라미터의 pw 필드의 값을 0~9999 까지 변경하면서 최대 1만 번 반복하여 페이지를 요청해보면서, 응답 페이지 소스에 Password I..
[SUNINATAS 7번] 문제풀이
[SUNINATAS 7번] 문제풀이
2018.08.15WEB Level 7level7은 들어가자마자 눈이 즐겁습니다. 페이지의 동작을 확인하기 위해서, 전체 페이지의 가운데에 위치한 YES버튼을 눌러보았더니, “Fail.. Your too slow" 라는 메시지만, 뜨고 반응이 없습니다. 페이지의 소스를 확인해 보니, 주석으로 라는 힌트가 있었습니다. 정황으로 보아, 저 YES라는 버튼을 최대한 빨리 눌러야 하는 것으로 보입니다. 프록시 툴로, 페이지를 요청할 때, 아쉽지만, 아이유와 윤아의 사진, 개행 들을 모두 제거하고, 페이지와 YES버튼의 구조만 남겨두고, 요청하여 YES버튼을 재빨리 눌러보았지만, 아무리 해보아도 해결이 안되는 것으로 보아, 더 빠른 반응을 요구하거나, 서버에서 페이지를 제공한 시점으로 부터의 응답시간을 체크하는 것으로 판단이 되어..
[SUNINATAS 6번] 문제풀이
[SUNINATAS 6번] 문제풀이
2018.08.15WEB Level 6Level6에 들어가면 5개의 게시글이 올라온 게시판이 하나 나옵니다. 눈에 들어오는 1번 게시물을 보면 “Reading suninatas's Writing!^^” 이라는 힌트 아닌 힌트가 써져있습니다. 2번 게시물에는 md5 해시를 인/디코딩 할 수 있는 사이트의 링크가 보입니다. (https://md5hashing.net/) 4번과 5번 게시물에는 의미를 알 수 없는 말들이 써져있었습니다. 3번 게시물을 클릭하자, 팝업창이 하나 떴습니다. Password를 입력하라는 메시지가 떠 있었는데, 친절하게도 입력한 패스워드가 어떻게 쿼리 되는지에 대한 쿼리문이 아래에 자세하게 나와 있었습니다. 사용자가 적절한 패스워드를 입력하면, T_Web13 이라는 테이블에서 nldx값이 3인 라인의 ..
[SUNINATAS 5번] 문제풀이
[SUNINATAS 5번] 문제풀이
2018.08.08WEB Level 5 level5 에서는 자바 스크립트 난독화 기법에 대해서 설명합니다. 클라이언트 사이드에서 실행되고 해석되는 언어인 자바 스크립트는 보안적으로 취약할 수 밖에 없기 때문에 나쁜 의도를 가진 사용자들이 노출되어 있는 스크립트를 해석하여 적절하지 않은 행동을 하는데 이용하기도 하고, 자신이 공들여 만든 소스코드를 어떤 이가 쉽게 도용하여 마치 자신이 만든 것인 양 사용할 수 있는 등의 여러 가지 문제점이 존재하는, 편리하지만 동시에 굉장히 취약한 형태의 구조를 가진 언어입니다. 이런 고민을 해결하기 위하여 생겨난 개념이 “자바스크립트 난독화” 입니다. 개발자들은 원하지 않는 정보를 클라이언트 상에서 숨기려, 스크립트를 보아도 해석하기 어렵도록 이 기술을 적용하여 해석상에는 문제가 없지만,..
[SUNINATAS 4번] 문제풀이
[SUNINATAS 4번] 문제풀이
2018.08.04WEB Level 4level4에서는 두 가지 조건을 만족해야 클리어할 수 있습니다. 페이지의 소스를 보면, 그 두 가지 조건에 대한 힌트가 나와 있습니다.“”1. 50 point를 만들어라.2. 'SuNiNaTaS' 페이지의 하단에는 User-Agent 정보를 보여주고 있고, 동작 방식을 살펴보니 가운데에 위치한 Plus 버튼을 한번 누르면, 포인트의 값이 1씩 상승하는 구조인듯 하였습니다.혹시나 하여, 프록시 툴을 활용하여 Point 값을 50으로 설정하여 서버에 넘겨보았지만, 돌아온 응답에서는 숫자가 정상적으로 카운팅 되어 올라가는 것을 보아, Plus버튼에 반응하여 숫자를 카운팅하는 독자적인 함수가 서버에 존재하는 것을 유추할 수 있었습니다. 직접 눌러서 Point를 50을 만들어 보려 하였으나,..
[SUNINATAS 3번] 문제풀이
[SUNINATAS 3번] 문제풀이
2018.08.03WEB Level 3level3 페이지에 들어가면, “Write articles in Noteice Board!” 라는 문구만 나오고, 뒤로 가기, 메인 페이지로 가기 버튼 이외의 다른 동작을 할 수 있는 장치는 없습니다. 페이지를 소스 코드를 보아도 결과는 마찬가지입니다. 문제 페이지에서 말하는대로 Suninatas 메인페이지의 Notice게시판에 글을 써보기로 하였습니다.글을 작성하기 위해서, 매인 페이지에서 Notice 보드로 이동하여 글쓰기를 시도해 보려 하지만, Notice 보드에는 글쓰기 버튼이 없습니다. 여러 가지 게시판들을 들어가 봅니다. Q&A 라는 게시판을 보면, Notice 페이지와 형태가 매우 유사하고, 왼쪽 상단의 글자만 다릅니다. 만약 내가 사이트 개발자였다면, 각각의 페이지들을..
[SUNINATAS 2번] 문제풀이
[SUNINATAS 2번] 문제풀이
2018.08.03WEB Level 2 로그인창 달랑 하나 있고 아무것도 없습니다.SQL Injection에 관한 문제인가 싶어 여러가지 값들을 입력해 보았지만 아무런 반응이 없고,아무값도 입력하지 않았을 때에는 위와 같은 메시지가 뜹니다. 혹시나 싶어 페이지 소스를 보았더니, 정말 '헉' 이었습니다. 로그인 폼의 동작을 결정하는 함수의 일부분이 JavaScript로 작성되어 있었을 뿐만 아니라, 로그인 성공의 결정적인 조건이 주석으로 힌트처리가 되어 있었습니다.또한, 아무 값도 입력하지 않았을 때에 나타났던 메시지의 정체도 밝힐 수 있었습니다. 자바스크립트는 'Client Side' 동작을 수행하는 언어로서 보안적인 부분에 있어서 매우 취약하기 때문에, 웹을 구성할때 보안이 필요한 부분에는 잘 사용하지 않는 언어입니다...
[SUNINATAS 1번] 문제풀이
[SUNINATAS 1번] 문제풀이
2018.08.01문제들이 상당히 흥미롭게 구성된 워게임 사이트가 하나 있어서 문제를 풀고 리뷰해 보려고 합니다.사이트 이름은 Suninatas이며, 2012년 4월 부터 서비스를 시작하여, 지금까지 쭉 관리되어 온 것으로 보입니다.문제는 총 32개로 이루어져 있으며 그 중, 10문제가 웹 관련된 문제입니다. Suninatas는 분류상으로 WEB, BINARY, FORENSIC, SYSTEM등의 4가지 주제로 문제들이 구성되어 있으며, 각 문제들이 기초에 충실하면서도 참신한 방법으로 구성되어 있으며, 난이도가 대체적으로 높지 않은 편이어서 초보자에게 추천하는 워게임이라고 할 수 있겠습니다. Suninatas에서는 각 level을 클리어 하면, ‘AUTH KEY’ 라는 것을 제공합니다. 획득한 AUTH KEY는 해당 페이지..