[Dreamhack Web - Lv 2] simple-ssti
Wargame/Dreamhack 2021. 12. 1. 01:05

문제 정보 존재하지 않는 페이지 방문시 404 에러를 출력하는 서비스입니다. SSTI 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 풀이 힌트 1. Flask config 또는 subprocess.Popen 문제 풀이 더보기 SSTI 취약점에 대해서는 드림핵의 웹해킹 강의를 보고 좀 알고 있었다. 또한 다른 사람들도 자신의 블로그에 SSTI 취약점에 대한 글을 많이 적어서 많이는 알지 못해도 조금이라도 알고 있었다. 라온화이트햇 : https://core-research-team.github.io/2021-05-01/Server-Side-Template-Injection(SSTI) 문제 페이지를 확인해보니, 404Error 페이지와 robots.txt 페이지가..

[Dreamhack Web - Lv 1] Tomcat Manager
Wargame/Dreamhack 2021. 11. 24. 03:41

문제 정보 드림이가 톰캣 서버로 개발을 시작하였습니다. 서비스의 취약점을 찾아 플래그를 획득하세요. 플래그는 /flag 경로에 있습니다. 풀이 힌트 1. 공격 백터 파악 2. Path Traversal 취약점 3. Tomcat의 Manager 설정 파일 문제 풀이 더보기 문제 페이지에 들어가니, 위와 같은 사이트가 나왔다. 공격 백터를 찾기위해 페이지를 조사 했지만, robots.txt도 없고 설명에서도 별다른 내용이 없었다. 그래서 페이지 소스코드 보기를 하여 코드를 살펴보니, /image.jsp이라는 페이지를 찾을 수 있었다. 공격 백터로 /image.jsp의 file 파라미터를 이용하면 될 듯 싶다. /image.jsp의 file 파라미터를 이용하여 index 페이지에서 본 사진을 불려왔다. 내가 ..

[Dreamhack Web - Lv 1] csrf-2
Wargame/Dreamhack 2021. 11. 22. 01:49

문제 정보 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. 풀이 힌트 1. 공격 백터 파악 2. 코드 분석 또는 웹 스파이터를 통해 숨겨진 파라미터 파악 문제 풀이 더보기 문제 페이지에 접속하니 위와 같은 사이트가 나왔다. 전에 풀었던 CSRF-1은 로그인 기능은 없었는데, 이번 문제에선 있는 것을 봐서 사용자의 계정에 관련한 공격을 진행하는 것으로 보인다. 일단 공격 백터에 대해서 조사해보겠다. vuln(csrt) 페이지 Get 메소드로 param 파라미터에 입력값을 넣으면 페이지에 그대로 적용되는 페이지가 나왔다. 공격 백터 : Get 메소드 param 파라미터 flag 페이지 저번 문제처럼 입력값을 넣으면 셀레리움을 이용하여 vuln ..

[Dreamhack Web - Lv 1] xss-2
Wargame/Dreamhack 2021. 11. 14. 16:12

문제 정보 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 풀이 힌트 1. Xss 우회 문제 풀이 더보기 문제 사이트로 들어가면 xss-1와 똑같은 사이트가 나온다. 처음엔 "잘 못 설정된 건가?"라는 생각을 했지만, vuln(xss) page에서 xss를 삽입하니 xss에 xss 필터링이 걸어져 있는 것 같았다. xss-1 문제에선 잘 실행되었던 것이 현재는 작동을 안하고 있다. on 이벤트도 막힌 것으로 보인다. 인터넷에 "xss 방화벽 우회"라고 검색하니, 다양한 우회 방법이 나왔다. 그 중 와 같은 형식으로 우회하는 방법으로 시도하니, xss가 먹히는 것을 볼 수 있었다. xss 우..

[Dreamhack Web - Lv 1] devtools-sources
Wargame/Dreamhack 2021. 11. 13. 22:24

문제 정보 개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요. 풀이 힌트 1. control + shift + f 문제 풀이 더보기 문제 파일을 다운받아서 index.html을 열어보니, 위와 같은 사이트가 나왔다. 문제 설명에서 개발자 도구의 Sources을 이용하여 Flag를 찾으라는 문제이니, 입력값을 통해 공격하는 문제가 아니라고 판단하여 F12를 눌려서 개발자 도구를 열었다. 많은 파일이 존재하였고, 모든 파일을 열어서 확인하는 건 시간 낭비라 생각하였다. 크롬에서도 같은 생각을 했는지, 개발자 도구엔 여러 파일에서 한번에 검색 가능한 기능을 제공하고 있다. 빨간색 박스로 표시된 검색 기능을 이용하면 된다. 나는 일단 flag를 검색해봤는데, css 파일에서 flag를 발견하였다..

[Dreamhack Web - Lv 1] session
Wargame/Dreamhack 2021. 11. 12. 16:56

문제 정보 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. 풀이 힌트 1. 무차별 공격 문제 풀이 더보기 더보기 문제 사이트에 들어가니, 이와 같은 페이지가 출력되었다. 기능은 Login 기능만 있는 사이트이다. 공격 백터는 POST로 서버로 넘어가는 username과 password가 있었다. 혹시 guest / guest로 로그인이 되는지 확인해봤는데, guest로 로그인이 성공하였다. 바로 세션 쿠키를 확인해본 결과 이상한 값이 있는 것을 볼 수 있었다. 일단 숫자 + 소문자 알파벳을 조합한 값이나 어떤 값을 HEX로 인코딩한 것이 세션 쿠키라는 것을 추측할 수 있었다. 일단 세션 쿠기가 hex로 이루어져있다고 생..

[Dreamhack Web - Lv 1] mongoboard
Wargame/Dreamhack 2021. 11. 10. 15:55

문제 정보 node와 mongodb로 구성된 게시판입니다. 비밀 게시글을 읽어 FLAG를 획득하세요. MongoDB < 4.0.0 풀이 힌트 1. MongDB의 ObjectID 구조 참고 사이트 : https://docs.mongodb.com/manual/reference/method/ObjectId/ 문제 풀이 더보기 더보기 문제 페이지에 들어가니, 서버가 생성될 때 자동으로 값들이 등록이 된 것을 볼 수 있었다. 현재 눈으로 보이는 특이점은 FLAG 게시물은 no가 없다는 것이다. 첫번째 페이지에 들어가니, 위와 같은 게시물 내용이 있었다. FLAG 게시물은 Secret Document라는 Alert가 떴다. 여기까지 확인해본 결과, 이 페이지는 싱글 페이지로 제작된 페이지로 보였다. 개발자 도구를 ..

[Dreamhack Web - Lv 1] funjs
Wargame/Dreamhack 2021. 11. 6. 03:30

문제 정보 입력 폼에 데이터를 입력하여 맞으면 플래그, 틀리면 NOP !을 출력하는 HTML 페이지입니다. main 함수를 분석하여 올바른 입력 값을 찾아보세요 ! 풀이 힌트 1. Java Script 2. JS 난독화 문제 풀이 더보기 더보기 문제 파일을 다운로드하여 브라우저로 열어보니, input이 위치가 계속 변경되고 있었다. 나는 일단 간단하게 tab 키를 이용하여 input에 커서를 넣어 test를 입력하여 submit 버튼을 클릭하였다. 그 결과 NOP!이라는 문구가 출력되었다. 코드를 보기위해 개발자 도구를 살펴봤는데, NOP! 문구는 img 파일로 출력되고 있었다. head 태그 내에 많은 JS 코드가 있어서 분석을 위해 개발자 도구의 소스에서 분석하기로 하였다. var box; windo..

[Dreamhack Web - Lv 1] Carve Party
Wargame/Dreamhack 2021. 11. 1. 15:49

문제 정보 할로윈 파티를 기념하기 위해 호박을 준비했습니다! 호박을 10000번 클릭하고 플래그를 획득하세요! 풀이 힌트 1. Javascript 확인 문제 풀이 더보기 이번 문제는 파일을 다운로드하여 로컬에서 풀이하는 문제이다. 다운로드하여 열어본 페이지는 위와 같다. 클릭할 때마다 카운트가 줄어졌다. 개발자 도구를 이용하여 코드를 확인해본 결과, 클릭 시 count가 증가를 하였다. 또한 count가 특정 범위로 넘어갔을 때 style이 적용됐다. 나는 위와 같은 코드를 이용하여 9999번의 클릭을 하였다. 그리고 마지막 한번의 클릭을 직접해줘서 flag값을 얻을 수 있었다.

[Dreamhack Web - Lv 1] Mango
Wargame/Dreamhack 2021. 11. 1. 02:47

문제 정보 이 문제는 데이터베이스에 저장된 플래그를 획득하는 문제입니다. 플래그는 admin 계정의 비밀번호 입니다. 플래그의 형식은 DH{…} 입니다. {‘uid’: ‘admin’, ‘upw’: ‘DH{32alphanumeric}’} 풀이 힌트 1. NoSQL Injection 2. MongoDB 문법 문제 풀이 더보기 더보기 문제 서버의 index은 /login?uid=guest&upw=guest이라는 문구를 출력하고 있었다. 나는 해당 출력 값을 복사하여 서버에게 요청해보니, guest이라는 값을 출력해줬다. uid와 upw가 MongoDB에 들어가는 파라미터로 보인다. 알아낸 공격 백터 uid와 upw를 이용하여 NoSQL Injection을 시도하겠다. 나는 uid = 'admin' and up..