Wargame (54) 썸네일형 리스트형 Get Flag File 2 (+문제 리뉴얼) `FLAG` 파일을 구해보자1. 풀이 과정로그인 후 게시판의 파일 업로드 기능을 이용하여 임의의 파일을 등록한다.다운로드 경로를 확인해보면 `filePath` 파라미터를 통해 파일 경로를 직접 받는 것 같다.`filePath` 파라미터에 `../`을 삽입하여 임의의 시스템 파일 접근이 가능한지 테스트한다.`파일이 없습니다` 라는 알림이 뜨는 걸로 봐서 아마 필터링이 되고 있는 것 같다.`../ `차단이 단순히 문자열 치환 방식인지 확인하기 위해 다양한 우회 패턴을 시도한다. `../`를 공백으로 치환하는 방식이었고, 루트까지 접근 가능한 것을 확인했다.전 문제에도 `index.php`에 플래그가 있었기 때문에, 바로 `index.php` 파일을 찾아 응답을 확인했더니 플래그가 존재한다.2. 풀이 과정다.. Get Flag File (+문제 리뉴얼) `Flag` 파일을 얻어보자!1. 풀이 과정로그인한 뒤, 게시판에 파일 업로드 기능을 이용해 임의의 파일을 삽입한다.다운로드되는 경로를 보면 `filePath` 파라미터를 통해 파일에 접근 하는 것 같다.`../`를 이용해 경로를 역참조해본 결과, 루트까지 접근 가능한 다운로드 취약점이 존재한다.루트 디렉토리까지 역참조해 `index.php`를 열람하던중 찾았으나 이 파일은 아닌 것 같다.계속해서 찾던 중 진짜 `index.php` 파일을 발견했고 플래그 주석이 포함된 실제 코드를 확인했다.2. 풀이 과정게시판 작성 시 POST 요청을 분석하면 게시글 업로드 처리 경로를 확인할 수 있다.`notice_write_process.php` 내부 코드를 통해 파일 업로드 디렉토리가 `.files/$usernam.. Web Shell 3 (+문제 리뉴얼) 서버에 존재하는 `flag` 파일을 획득하는 문제이다. 로그인 후 인사말 페이지에서 `lang` 파라미터 값에 따라 파일을 `include` 하는 것으로 보이며, 이 부분에 LFI 취약점이 있을 것 같다.테스트를 통해 상위 디렉토리 접근을 시도한 결과, 실제로 `/etc/passwd` 파일이 노출되며 LFI 취약점이 존재함을 확인했.LFI 취약점과 연계하기 위해서 파일 업로드 할 수 있는 곳을 찾는다.파일이름은 올릴 수 있는 확장자로 설정하되 해당 파일 내용은 php 코드로 작성한다.파일 경로를 확인해준다.`include` 하는 경로를 테스트 하며 찾아냈고, 웹 쉘이 제대로 작동하는 것을 볼 수 있다.`find` 명령어를 이용해 플래그를 획득했다리뉴얼 문제문제 설명은 똑같은 것 같다.일단 로그인을 먼저 .. [Dream hack] proxy-1 문제 설명Raw Socket Sender가 구현된 서비스입니다.요구하는 조건을 맞춰 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다.풀이 과정@app.route('/socket', methods=['GET', 'POST'])def login(): if request.method == 'GET': return render_template('socket.html') elif request.method == 'POST': host = request.form.get('host') port = request.form.get('port', type=int) data = request.form.get('data') re.. [Dreamhack] php-1 문제 설명php로 작성된 Back Office 서비스입니다.LFI 취약점을 이용해 플래그를 획득하세요. 플래그는 /var/www/uploads/flag.php에 있습니다. 풀이 과정먼저 리스트에 들어가서 `flag.php`를 클릭해보면 Permission denied가 출력된다.View`view.php`는 `flag` 문자열이 포함된 파일명 요청을 대소문자 구분 없이 차단한다.`index.php` 코드를 살펴보면 `page` 파라미터를 그대로 include 해서 임의 파일 실행(LFI)이 가능하다.`view.php`에서 파일 경로(`/uploads/flag.php`)를 알게 됐고, `index.php?page=../uploads/flag`로 접근했더니 can you see $flag? 문구만 출력된다.코.. [Dreamhack] simple-ssti 문제 설명존재하지 않는 페이지 방문시 404 에러를 출력하는 서비스입니다.SSTI 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 풀이 과정해당 사이트에 접속해보면 링크 목록이 존재한다.각각 들어가봤더니 내가 입력한 경로가 그대로 출력되는 것을 확인할 수 있다.해당 경로에 임의의 스크립트를 삽입했더니 실행되는 모습이다.XSS로는 실질적으로 획득할 정보가 없다고 판단하여, 추가로 SSTI 공격을 시도해 보았다.그 결과, 연산이 그대로 계산되어 출력되는 것을 확인할 수 있었다.`{{config}}` 를 이용해 설정들을 출력해 확인했고, `SECRET_KEY`에 플래그가 포함된 것을 확인했다. [Dreamhack] image-storage 문제 설명php로 작성된 파일 저장 서비스입니다.파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다. 풀이 과정사이트에 접속하면 `Upload` 페이지가 존재한다.임의의 파일을 업로드 한 후 `List` 페이지에 들어오면 다운로드 받을 수 있게 구현돼있다.웹쉘을 업로드 해준다.해당 경로를 파악한다.웹쉘이 정상작동되고, `find` 명령어를 이용해 `flag.txt` 경로를 찾는다.플래그 획득 Web Shell 2 🔒Web Shell 2웹 서버에서 플래그 파일을 찾는 문제이다.사이트에 접속하여 회원가입을 한 뒤, 로그인한다.업로드 시 확장자 검사로 인해 `"업로드할 수 없는 확장자의 파일입니다."`라는 알림이 뜬다.브라우저에서 확장자 검사를 하고 있다.하지만 이 검사는 클라이언트(브라우저)에서만 동작하므로 프록시 툴을 이용하면 우회가 가능하다.원래 이미지 파일(.png)로 업로드 시도 후 인터셉터를 켜서 요청을 가로챈다.파일이름을 `webshell.php`로 변경하고 파일 내용도 웹쉘 코드로 바꿔준다.업로드 시 `"업로드 될 수 없는 파일"` 알림이 떠도 실제로는 서버에 파일이 저장되었을 수 있다.경로 확인을 위해 정상 이미지 업로드 후 경로(폴더 구조)를 파악한다.해당경로의 `webshell.php`를 요청했더.. 이전 1 2 3 4 ··· 7 다음