전체 글

전체 글

    [Root-me] : Logs analysis - web attack

    일단 파일에서 order 값이 injection 값인거 같다. base64로 인코딩 된 것 같으니 디코딩 해주자. def base64ToString(b): return base64.b64decode(b).decode('utf-8') ASC, (select (case field(concat(substring(bin(ascii(substring(password,1,1))),1,1),substring(bin(ascii(substring(password,2,1))),2,1)), concat(char(48),char(48)),concat(char(48),char(49)),concat(char(49),char(48)),concat(char(49),char(49)) when 1 then TRUE when 2 then..

    JSON Web Token (JWT) - Weak secret

    JSON Web Token (JWT) - Weak secret

    JWT 토큰 문제다. 이전에 다른 사이트에서도 다뤘던 적이 있는 문젠데. 문제 제목을 보아하니, secret key 값이 쉬운 값인가보다. 일단 토큰을 해석해보자. 이제 role 의 값은 admin으로 수정해서 올려주면 되겠다. 사실 그전에 토큰의 비밀값을 찾아줘야 하는데, 여기서는 jwtcat 라는 툴을 사용했다. 다운로드는 알아서 받아보시고...! 바로 진행하겠다. vared@DESKTOP-SGQOMCP:jwtcat$ optional arguments: -h, --help show this help message and exit -c CHARSET, --charset CHARSET User-defined charset (default: abcdefghijklmnopqrstuvwxyzABCDEFGHIJ..

    Root-me : File upload - Null byte

    Root-me : File upload - Null byte

    느낌상 웹쉘을 올려야 하는 문제인 것 같다. NB : only GIF, JPEG or PNG are accepted 다음과 같은 필터링이 있기 때문에, 다음과 같이 이름을 수정해서 올려주면 된다. 찾으라는 문구가 있을줄 알았는데 바로 패스워드가 있다. Clear!

    Root me : Directory traversal

    Root me : Directory traversal

    이전 문제에서 살짝 봤던 Directory Traversal 문제다. photo gallery 의 hidden section 을 찾아야 한다. 먼저 문제를 보면. 이런 방식으로 다뤄진다. galerie = "경로" 를 입력해주는 방식인가 보다. 이제 숨겨진 것을 찾기 위해서 galerie 값에 경로들을 입력해주면 된다. 아무 입력값도 주지 않았는데 이렇게 나왔다. 86hwnX2r가 숨겨진 디렉토리 인가보다. 들어가보니 비밀번호 파일이 있다. 이건 인텐이 아닌것 같고, 원래는 DotDotpwn 이라는 툴을 이용해서 해야 하는 것으로 알고 있다. 다음과 같이 이용하면 된다. 근데 너무 오래걸리니까 뭐 생략하고 위에 풀이로 가자. Clear!

    Rootme : Insecure Code Management

    Rootme : Insecure Code Management

    문제를 보면 생각보다 별건 없다. 다른 지정된 입력값이 있는 것도 아니고, (guest/guest or admin/admin) 인젝션이 되는것도 아니다. 그래서 문제 지문의 documentation 을 보았다. git 에 대한 거더라. 여기서 File Directory Traversal 문제가 된다. 흔히 이제 git을 사용해보면 clone 된 repository가 다음과 같이 생성이 된다. 여기 생기는 저 .git 을 통해서 내용을 보는 것이다. 한번 해보자. 뭔가가 나왔다. 여기 있는 파일들을 잘 보자. 보통 이런 정보는 로그에 기록으로 남으니까 log 를 보자. HEAD 파일이 존재하고 다음과 같은 내용이 있다. 커밋 내용이 적혀 있는데, 이제 비밀번호를 바꾼 커밋이 있으니 해당 부분을 보면 되겠다..

    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) 여기서..

    Dreamhack : csrf-1

    xss 문제랑 상당히 양식이 비슷하다. 해야하는 행동도 비슷할 것 같다. 먼저 코드를 보자. #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for, session, g from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' def read_url(url, cookie={'name': 'name', 'value': ..

    DreamHack : xss-1

    일단 3개의 페이지가 나오는데 돌아가면서 구경을 좀 했다. xss는 코드를 주입하는 부분이고, memo는 입력된 코드를 볼수 있는데 flag에서 입력을 하면 다 hello로 나온다. memo 에 가서 hello 대신 스크립트를 넣어주면 되겠다고 생각했다 ?memo = 이렇게 넣어주려고 했는데, 해당 문자열이 필터링 당하는 것 같다. "