해당 문제의 내용은 다음과 같다. 접속 정보로 주어진 홈페이지를 들어가보면 아래와 같은 화면이 나오고 로그인 페이지만 이렇게 보이는 것을 볼 수 있었다. 이걸로만으로는 문제풀 수 없을 것 같아 함께 있었던 문제 파일을 다운로드 받았더니 아래 이미지와 같이 Python 유형의 app.py 파일이 있는 것을 알 수 있었다 해당 파일을 열어보면 아이디와 비밀번호가 딕셔너리 형태로 정의되어 있다. 이 부분을 통해 admin은 FLAG 값으로 정해진 것을 볼 수 있었다. users = { 'guest': 'guest', 'user': 'user1234', 'admin': FLAG } 우선 guest로 로그인을 해보았다. guest로 로그인하면 admin이 아니라는 문구가 나온다. 로그인을 하면 아래 이미지와 같이..
분류 전체보기
보호되어 있는 글입니다.
보호되어 있는 글입니다.
해당 문제에 해당하는 내용은 아래와 같다. 접속 정보에 나와있는 페이지를 들어가면 FLAG 게시글에 해당하는 'no' 부분은 값이 없는 것을 볼 수 있었다. 첫번째 게시글과 관련된 내용은 아래 사진과 같고, 'no'값이 없는 게시글을 제외하고는 아래 이미지처럼 화면에 메시지가 뜨는 것을 확인할 수 있다. FLAG 게시글에 대한 정보를 얻고자 클릭해보았더니 다음과 같이 Alert로 경고문이 뜬 것을 볼 수 었다. 밑에 Write 버튼을 누르면 아래와 같은 화면이 나오고 게시판에 글을 등록할 수 있는 시스템인 것 같다. 새로운 게시물을 작성하여 업로드하고자 임의의 값을 넣어 게시물을 작성해주었다. 'Save' 버튼을 누르고 이전 화면으로 돌아가니 가장 마지막 줄에 내가 입력한 값들이 있는 것을 확인할 수 있..
문제 사이트에 들어가면 다음과 같이 문제 파일과 간단한 로그인 서비스가 구현된 웹사이트를 하나 볼 수 있었다. 본격적으로 문제 해결에 앞서, 문제에서 주어진 코드를 살펴보자. 이 부분은 guest와 user의 아이디, 비밀번호가 나와있고 admin은 FLAG값임을 알 수 있었다. users = { 'guest': 'guest', 'user': 'user1234', 'admin': FLAG } 다음은 메인 페이지와 관련된 코드이다. @app.route('/') def index(): session_id = request.cookies.get('sessionid', None) try: username = session_storage[session_id] except KeyError: return render..
이번 문제의 내용은 아래와 같다. 문제 파일을 다운로드 받으면 이렇게 총 3가지의 php 파일이 있는데 이 파일들은 위 문제의 접속 정보에 안내되어 있는 사이트에서 사용된 파일인 것 같다. 문제 사이트는 아래 이미지와 같이 되어있었고, 파일 업로드의 취약점을 이용해서 문제를 푸는 것 같다. upload.php 파일을 보니 따로 파일 확장자에 대한 필터링을 하지 않는 것을 볼 수 있었다. 따라서 flag가 존재하는 /flag.txt 경로로 이동하는 command를 실행하는 php문을 작성해서 업로드하면 될 것 같다. 다음과 같이 /flag.txt로 이동하는 코드를 작성해주고 getFlag.php 파일로 저장해주었다. 다시 사이트로 돌아가서 우리가 만든 php 파일을 업로드 해주었더니 위 쪽 탭의 List로..