Wargame/dreamhack

    [dreamhack web] pathtraversal

    [dreamhack web] pathtraversal

    pathtraversal 사용자의 정보를 조회하는 API 서버입니다. Path Traversal 취약점을 이용해 /api/flag에 있는 플래그를 획득하세요! Reference Server-side Basic dreamhack.io Get User Info 화면에서 userid 값을 입력할 수 있다. 기본값인 guest를 넣으면 아래와 같이 userid, level, password가 json 형태로 표시된다. admin을 넣으면 아래와 같이 출력된다. 두 경우 모두 userid 값이 기본값인 'guest'로 바뀌기 전, guest와 admin이 각각 0, 1로 설정되는 것을 볼 수 있다. 그렇다면 guest, admin 대신 다른 값을 넣으면? 위처럼 'undefined'가 잠시 뜨고 다시 기본값으로 ..

    [dreamhack web] file-download-1

    [dreamhack web] file-download-1

    Upload My Memo 메뉴에서 Filename과 Content를 채워 넣으면 메인 화면 리스트에 추가되고 아래처럼 내용을 볼 수 있다. 바로 위 화면을 분석해보자면 {filename 값 + Memo}가 리스트에서 선택한 파일의 제목이 되고 Content 안에는 입력한 content 값이 그대로 들어가는 것을 알 수 있다. 문제 지문에서 'flag.py'를 다운로드 받으라고 했으니 flag.py 파일을 만들면 될 듯하다. 리스트에서 선택하면 보여지는 화면이 다운로드라고 생각하면 될 것 같다. 추가로 이 문제는 파일 다운로드 취약점을 이용하는 것이니 filename=flag.py가 아니라, 디렉터리 이동이 필수적일 것이다. 디렉터리가 어떻게 구성되어 있는지는 모르지만 일단 바로 윗 디렉터리로 가보자. ..

    [dreamhack web] cookie, simple_sqli

    [dreamhack web] cookie, simple_sqli

    cookie 먼저 코드를 보면, default account 정보가 나와있다. Login 폼으로 이동해 로그인해보자. 그러면 guest로 로그인된다. 이 때 쿠키를 보면 username 쿠키값으로 guest가 들어가있다. guest로 로그인했을 때 'username=guest'였으므로 admin으로 로그인했을 땐 'username=admin'일 것이다. 따라서 value를 admin으로 수정한 뒤 저장, 새로고침해본다. 플래그 등장 simple_sqli 먼저 로그인 폼으로 이동하자. 아래처럼 guest/guest로 로그인을 시도해보았다. 그럼 이렇게 얼럿이 뜬다. 얼럿에 뜨는 문자열을 'hello admin'으로 뜨게 하면 될 것 같다. 다음은 admin/admin으로 로그인 시도한 것이다. 즉 비밀번호..