WriteUp/Root-me.org

    Root-me :  JSON Web Token (JWT) - Introduction

    Root-me : JSON Web Token (JWT) - Introduction

    admin 으로 로그인 하라고 씌여있다. (the objective is to login as admin) JWT 문제인 만큼 JWT값을 확인해 보도록 하자. (since it is a JWT problem, lets find JWT value) 먼저 guest로 로그인하면 어떤 값이든 줄것 같다. (login as guest would give us some values...) 쿠키값에 JWT 값이 들어있었다. (I could find JWT value inside the cookie) 한번 디코딩해 보자.(lets decode it) jwt.io/ 우리는 payload 값만 admin으로 변조하면 성공이다.(we have to change the username value into admin) 여기서..

    Root-me[web_client] : Javascript - Webpack

    Root-me[web_client] : Javascript - Webpack

    이번에 새로 나온 문제다. 이상한 사이트가 반겨주는데, 사실 사이 자체에서 취약점을 찾는데에는 실패했다. 소스코드를 봐도 이상한 점이 별로 없었다. related resource에서 보니 webpack 이라는 것을 이용한 문제인 것 같아서 webpack vulnerablities 를 검색해 보니 다음과 같은 CVE를 찾아볼 수 있었다. webpack 이 서버인가 보다. 여기서 소스 코드를 볼수 있다고 한다. 웹소켓 서버 자체에서의 취약점인가 보다. 소스 코드르 보니 Webpack:// 부분이 보인다. 저게 CVE 에서 명시된 ws:// 부분인가 보다. 그럼 저기에서는 소스 코드를 볼 수 있다는 뜻인 것 같은데 한번 확인해 보자. 소스 부분을 보니 저 사이트의 소스코드 전체가 노출이 되는 것 같다. 그래서..

    Command & Control - level 2

    Command & Control - level 2

    ch2.dmp 파일이 있다. 지난 학기에 실습을 했던적이 있었는데, DumpIt으로 메모리를 dmp 해서 추출하는 것이였다. 이때 volatility를 사용하라고 하셨는데 그냥 string 추출해서 보는 방법도 있었다. 일단 문제를 보면 WorkStation 의 HostName 을 알아야 한다고 한다. 이런건 보통 레지스트리 정보에 들어가 있다. 해당 경로에 저장되어 있다고 한다. 한번 보도록 하자. 툴을 사용해야 하는데 사용할수 있는게 문제에서는 volatility를 준거 같다. volatility는 뭔가 사용이 어색하다....ㅎㅎ 그래서 이 문제는 String 추출로 풀겠다. 커맨드 창에 다음과 같이 입력하면 된다. 그리고 나서 메모장으로 열어서 ComputerName을 검색해주면 되겠다. 이렇게 보..

    Root-me : [Web_Server]HTTP - Cookies

    Root-me : [Web_Server]HTTP - Cookies

    쿠키는 서브웨이가 맛있다. 문제를 보자. 이렇게 나온다. 이메일을 입력하면 이메일을 어딘가에 저장하고, admin만 볼수 있는 것 같다. 해당 링크를 누르니까 아래에 다음과 같이 뜬다. http://challenge01.root-me.org/web-serveur/ch7/?c=visiteur 링크가 이런것을 보아 c 가 접속자의 상태를 주는 것 같은데 admin을 넣어보자. 오케이 쿠키를 체크하는 과정이 있는 것 같다. 이제 admin 쿠키를 탈취하여 c=admin 주면 문제가 풀리겠다. 쿠키값이 visiteur 로 이전에 c와 같은 값으로 설정되어 있다. 이걸 admin으로 바꾸고 넣어보자. pass 가 나온다.

    Root-me : [Web_Server]File upload - MIME

    Root-me : [Web_Server]File upload - MIME

    이전 문제랑 동일 한거같은데, 이제 확장자 필터링 하는 부분이 다를 것 같다. 이전 문제랑 같은 접근으로, 이름에 힌트가 있는 것은 확실하다. MIME type 가 뭔지 알아보자. -> http로 전달할때 문서의 type를 전달하는 것. MIME를 보고 필터링 하는거 같다. 그렇다면 burp 같은 걸로 잡아서 MIME 를 변조한 뒤 전달해주면 될 것 같으니 시도해 보도록 하자. 현재 MIME type 이 application/octet-stream 이다. 이를 image/jpg 로 변조해서 전달하면 pass할 수 있을 것이다. 하지만 이전 문제 필터링이랑 같이 사용한다면 pass 할 수 없다. 일단 파일 업로드한 것을 실행해 보자. 동일한 경로상에 존재하는 것을 확인할 수 있다.

    Root-me : [Web_Server]File upload - Double extensions

    Root-me : [Web_Server]File upload - Double extensions

    파일 업로드 문제다. 이전부터 깊게 연습해보고 싶었는데 이번 기회에 제대로 풀어보도록 하자. /.passwd 를 실행하도록 코드를 짜면 된다. 보통 웹쉘을 만들어서 inject 해줘야 하는데 다음과 같은 형식으로 코드를 짜줘야 한다.

    Root-me : [Web_Server]Install files

    Root-me : [Web_Server]Install files

    Statement에 없고 제목쪽에 힌트가 주어져 있다. 사실 바로 힌트인지는 몰랐고, 문제 들어가서 알았다. 코드가 이거밖에 없었기 때문이다. 그래서 phpbb가 의미하는게 있는지 찾아보기로 했다. 전자 게시판 프로그램이란다… ㅇㅋ 한참을 찾아보다가 phpbb 설치 메뉴얼에서 답을 찾았다. install 디렉토리를 지우지 않으면, 엄청나게 취약할 수 있다는 점이다. 그래서 문제이름이 install files 인가 보다. 디렉토리를 찾았다. install.php를 보자. karambar

    Root-me : [Web_Server] HTTP - Verb tampering

    Root-me : [Web_Server] HTTP - Verb tampering

    일단 시작하자마자 alert 창이 하나 뜬다 HTTP verb tempering 이라는 취약점이 존재하는 것 같다. 이는 의도한 것보다 많은 접근을 허용하는 취약점으로, HTTP Method 중 특정 메소드에 적용되는 보안사항이, 다른 메소드에는 적용되지 않는 것이다. HTTP verb를 알아보자. GET,HEAD,POST,PUT,DELETE,CONNECT,OPTIONS,TRACE,PATCH…. 많다. 익숙한 것도 있지만 아닌것도 있음. 이제 문제를 보자. 이 request 에서는 GET 메소드로 요청하고 있다. 해당 보안 접속도 GET 메소드 하에서 유효한 것으로 볼 수 있다. 즉 GET을 POST로 바꿔보면 그대로네,,, PUT으로 바꿔보자. password 가 나타나는 것을 확인 할 수 있다. a2..

    Root-me : [Web_Server] HTTP - Improper redirect

    Root-me : [Web_Server] HTTP - Improper redirect

    index.php 를 열어야 하는데 지금 redirection 때문에 login.php로 가는것을 확인할 수 있다. 아무 일 없어보이지만, response를 잡아서 보면 코드를 보내주는 것을 확인할 수 있다. CWE-698: Execution After Redirect 해당 취약점은 302 Found 를 반환해줄 때 리다이렉트 이전의 페이지의 소스코드가 Response에서 노출된다는 취약점이다. ExecutionAfterRedirectIsBad

    Root-me : [Web_Server] HTTP - POST

    Root-me : [Web_Server] HTTP - POST

    버튼을 누르면 저렇게 숫자가 나간다. 이 숫자가 나가는 방식이 POST 방식으로 전달되는 것 같으니, Burp Suite 로 잡아서 POST 값을 변조해주면 되겠다. score를 9999999로 변조해주자. Flag : H7tp_h4s_N0_s3Cr37S_F0r_y0U