목록Web (72)
김승현

문제 file download 취약점이 있어서 그걸 활용해서 flag.py를 다운받으라는 문제인 것 같다. 풀이 접속하면 메뉴엔 Home, Upload My Memo가 있고 Please upload your memo!가 출력되어 있다. upload my memo에 가보자. filename과 content를 우리 마음대로 작성할 수 있는 것 같다. 이렇게 작성해서 한번 업로드 해보자. 그러면 이렇게 업로드가 되고 입력한 내용이 저장되어 있다. 근데 주소창을 잘 보면 메뉴에 없던 read라는 path로 읽는 걸 볼 수 있다. 소스 코드를 한 번 확인 해보자. #!/usr/bin/env python3 import os import shutil from flask import Flask, request, ren..

문제 php로 작성된 파일 저장 서비스고 /flag.txt의 플래그를 파일 업로드 취약점을 이용해서 플래그를 얻으라고 한다. 풀이 접속하면 메뉴엔 home, list, upload가 있다. 그리고 이미지를 업로드하고 공유하라고 출력되어 있다. list로 먼저 들어가보자. 아직 사진을 업로드 하지 않아서 그런지 아무것도 없다. upload로 가보자. 진짜로 파일을 업로드 하는 메뉴다. 아무 사진이나 업로드 하고 list를 보자. share.PNG를 업로드함) upload 버튼을 누르면 path를 적어준다. list를 다시 확인해보자. 이렇게 share.PNG가 있는 걸 볼 수 있다. 누르면 사진이 정상적으로 보인다. html 확장자를 이용해서 xss 공격도 가능한 걸로 보인다. 웹셸을 업로드 해보자. 함께..

문제 특정 host에 ping 패킷을 보내는 서비슨데 거기에 command injection을 이용해서 플래그를 얻으라는 것 같다. 풀이 메뉴에는 Home, Ping이 있고 Welcom this sis ping playground!가 출력되어 있다. Ping을 들어가보자. 우리 호스트에 핑을 보내보자는 것 같다. 일단 저기 적혀있는 8.8.8.8을 넣어보자. 핑을 보냈다는 말인 것 같다. 이번엔 8.8.8.8과 command injection을 같이 해보자. 정해진 양식이 있는 것 같다. 이젠 소스코드로 가보자! 코드 초반부 subprocess를 import 하는데 쉘 명령 등 다른 프로세스를 실행하고 출력 결과를 가져올 수 있게 해주는 라이브러리이다. 그리고 FLASK를 가져오고 APP = FLASK(..

문제 db에 저장된 플래그를 얻으라고 하고 admin 계정의 비밀번호가 flag라고 한다. 풀이 문제에 접속하면 /login?uid=guest&upw=guest가 뜬다. 주소 뒤에 붙여보자. guest로 로그인이 됐다. mongodb로 제작됐기 때문에 배운 걸 활용 + 검색한 내용으로 작성해 봤다. http://host3.dreamhack.games:23138/login?uid[$gt]=ad.&upw[$ne]= admin을 검색하려고 했는데 guest가 떴다. gt의 경우 입력값보다 필드의 값이 큰 경우를 가리킨다. 참고한 블로그! 다른 것들도 많아서 도움이 될 것 같다. MongoDB 강의 4. Query로 원하는 값만 선택하기 ($lt, $lte, $gt, $gte, $ne, $and, $or) | ..

문제 로그인 서비스가 있는 사이트고 sql injection 취약점을 통해서 플래그를 얻으면 된다고 한다. 풀이 방법은 함께실습 강의에 다 있으니까 코드는 필요한 거만 보고 하는 방식으로 하겠습니다! 풀이 사이트에 접속을 하면 이런 식으로 Home About Contact Login 메뉴가 있고 그 밑에 Login이 있다. Login으로 가보자. games/login으로 이동하면 이렇게 userid와 password를 입력하는 칸과 login 버튼이 있다. 개발자도구 - Elements에서도 딱히 힌트가 없는 것 같으니까 소스코드로 가보자. 여기서 db.excute 두 번째 줄에 guest/guest와 admin/랜덤값의 계정을 database에 생성하는 걸 볼 수 있다. 로그인 해보고 싶지만 딱히 별 ..

문제 url을 확인하는 기능과 여러 기능이 구현된 서비스인데 여기에서 CSRF 취약점을 이용해서 플래그를 얻으라고 한다. 풀이 접속해보면 앞선 문제들을 섞은 듯이 vuln page, flag, login이 있고 please login이라고 출력되어있다. 일단 vuln부터 보자. csrf-1 문제와 마찬가지로 필터링이 되어있는 것 같다. 다음 flag 페이지로 가보자. 지금까지 나온 flag 엔드포인트와는 딱히 다른 점이 없는 것 같다. login으로 가보자. 로그인 창이 있다. 이번엔 사이트의 코드를 보자. 딱히 주석으로 된 힌트는 없는 것 같으니까 이번엔 소스코드를 분석해보자. 코드 초반부 Flask, selenium의 webdriver, urllib, os를 import 했다. app = Flask(..

문제 여러 기능과 url을 확인하는 기능이 있는 봇이고 여기에 CSRF 취약점을 활용해서 플래그를 얻으라고 한다. 코드분석은 강의에서 되어 있었기 때문에 대충 넘어가겠습니다..! 풀이 접속하면 위와 같이 나온다. 일단 vuln page를 들어가보자. vuln의 경우 강의에서 나온 것처럼 필터링이 되어있다. memo로 가보자. /memo 엔드포인트의 경우 접속할 때마다 hello가 출력된다. 주소창에 다른 값을 입력하면 출력이 되지만 render_template로 출력하기 때문에 스크립트가 적용되지 않는다. notice flag로 가보자 이렇게 admin이 아니고 localhost가 아니면 Access Denied가 뜨는 걸 볼 수 있다. flag로 가보자. 이런 식으로 해당 주소를 관리자가 접속할 수 있..

문제 여러 기능이 있고 url을 확인하는 기능을 하는 봇이 구현된 서비스라고 하고 xss 취약점을 이용해서 플래그를 얻으면 된다. 풀이 사이트를 들어가면 뜨는 창이다. vuln(xss) page부터 들어가보자. xss-1과 조건은 같은데 reflected xss 취약점이 발생하지 않았다. memo로 가보자. 이번에도 vuln을 들어갈 때마다 hello가 출력되고 있었다. flag로 가보자. 저번과 동일하게 입력하는 칸이 있다. 사이트에서 다운 받은 python파일을 보려고 했는데 저번과 코드가 똑같았다...! 코드에 대해서 조금 자세한 설명이 필요하면 아래 글을 참고해주세요 [Dreamhack : Web] xss-1 문제 xss-1 문제 같은 경우에 여러 기능이 있고 url을 확인하는 것도 있는데 거기에..

문제 xss-1 문제 같은 경우에 여러 기능이 있고 url을 확인하는 것도 있는데 거기에 xss 취약점을 이용해서 flag를 얻는 문제인 것 같다. 형식은 DH{} 이건 함께실습 문제니까 공부할 땐 하나하나 보겠지만 강의에서 대부분 코드가 설명되어 있으니까 write up엔 필요한 코드만 대충 넣고 다음 문제인 실습 문제는 코드 하나하나 자세하게 기록하겠습니다....! +) 근데 xss-2와 내용이 거의 동일해서 그냥 여기서 한 줄 한 줄 분석하고 다음 주제부터 이렇게 하겠습니다. 풀이 사이트로 들어가면 이런 식으로 만들어져있다. vuln(xss) page에 들어가면 주소에 나와있는 것처럼 reflected xss 취약점이 있는 걸 볼 수 있다. 주소의 쿼리를 고침으로써 다른 것들도 실행할 수 있는 걸 ..

문제 쿠키 인증 상태로 로그인하는 그런 사이트라고 하고 admin 계정으로 로그인 하면 된다. flag는 DH{}형식이라고 한다. 풀이 사이트에 접속하면 이런 화면을 볼 수 있다. login을 누르면 이동하는 화면 주소 host3.dreamhack.games/login 코드를 보면 이번에도 주석으로 기본적인 guest 계정을 지급한다. 로그인하자. 로그인 하면 admin이 아니라고 뭐라고 한다. 코드를 일단 한 번 보자. 코드분석의 경우 저번과 비슷해서 중요한 핵심이나 변경된 거만 쓰겠습니다..! 자세한 코드가 궁금하면 저번 코드에서 대부분 설명되어 있으니까 아래로 가셔서 확인해주세요......! [Dreamhack : Web] session-basic 문제 쿠키와 세션으로 인증해서 로그인 서비스를 제공..