• 문제경로
  • 문제풀이

 

 

 

[문제경로]

https://webhacking.kr/challenge/web-01/

 

Challenge 1

 

webhacking.kr


 

 

 

[문제풀이]

1. view-source를 통해 소스 코드를 확인해 봤다.

<?php
  include "../../config.php";
  if($_GET['view-source'] == 1){ view_source(); }
  if(!$_COOKIE['user_lv']){
    SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");
    echo("<meta http-equiv=refresh content=0>");
  }
?>
<html>
<head>
<title>Challenge 1</title>
</head>
<body bgcolor=black>
<center>
<br><br><br><br><br>
<font color=white>
---------------------<br>
<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
# "user_lv" 쿠키의 값이 숫자가 아닌 경우 1로 설정  
  if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;
# "user_lv" 쿠키의 값이 4 이상인 경우, 값을 1로 설정  
  if($_COOKIE['user_lv']>3) solve(1);              
# "user_lv" 쿠키의 값이 3보다 큰 경우, solve(1) 함수를 호출  
  echo "<br>level : {$_COOKIE['user_lv']}";
?>
<br>
<a href=./?view-source=1>view-source</a>
</body>
</html>

solve(1)을 호출하게 되면 문제가 풀릴 것이다.

solve(1)을 호출하려면 "user_lv" 쿠키 값이 3보다 크고 4보다는 작은 수여야 한다.

그러면 소수점이 들어가야 될 것이다. 

 

 

2. "user_lv" 쿠키 값에 3.1을 집어넣어 보도록 하겠다.

 

그리고 새로고침 했더니 solve(1) 함수를 호출하면서 문제가 해결된 것을 확인할 수 있다.

'Wargame & CTF > Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] old-06  (0) 2024.04.10
[Webhacking.kr] old-16  (0) 2023.09.22
[Webhacking.kr] old-15  (0) 2023.09.17
[Webhacking.kr] old-17  (0) 2023.09.17
[Webhacking.kr] old-03  (0) 2023.09.15
  • 문제경로
  • 문제정보
  • 문제풀이

 

 

 

[문제경로]

https://dreamhack.io/wargame/challenges/850

 

Flying Chars

Description 날아다니는 글자들을 멈춰서 전체 문자열을 알아내세요! 플래그 형식은 DH{전체 문자열} 입니다. ❗첨부파일을 제공하지 않는 문제입니다. ❗플래그에 포함된 알파벳 중 x, s, o는 모두

dreamhack.io


 

 

 

[문제정보]


 

 

 

[문제풀이]

1. 먼저 웹서버에 접속하였다. 문제 설명에 나와있듯이 글자들이 날아다니는 것을 볼 수 있다. 이 글자들을 순서대로 조합하면 FLAG가 나오는 것 같다. 그런데 글자들이 빠르게 지나가서 눈으로 확인하기는 힘들다.

스크린샷처럼 찍으면 보이기는 하지만 글자 순서를 어떻게 조합할지 까다롭기에 다른 방법을 생각해 봤다.

 

 

2. 소스코드를 보면 날아다니는 글자의 순서가 나와있을 것이라 예측했다.

개발자 도구를 열어 sources 탭에 접근하였다. 역시나 png 확장자의 글자 이미지들이 들어있었고 코드에는 이미지 순서가 나와있었다.

 

 

3. 이제 문제 설명에 있는 대문자, 소문자 구분을 바탕으로 코드에 나온 순서대로 글자 이미지들을 조합해 보면 FLAG가 도출된다. FLAG를 DH{} 형식에 대입한 결과는 다음과 같다.

 

'Wargame & CTF > dreamhack' 카테고리의 다른 글

[Webhacking] php7cmp4re  (0) 2024.01.30
[Webhacking] Type c-j  (0) 2023.09.29
[Webhacking] devtools-sources  (0) 2023.08.21
[Webhacking] session-basic  (0) 2023.08.13
[Webhacking] cookie  (0) 2023.08.06
  • 문제경로
  • 문제정보
  • 문제풀이

 

 

 

[문제경로]

https://dreamhack.io/wargame/challenges/267

 

devtools-sources

개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요. 플래그 형식은 DH{...} 입니다. Reference Tools: Browser DevTools

dreamhack.io


 

 

 

[문제정보]


 

 

 

[문제풀이]

1. 따로 웹서버를 생성하지 않고 있기에 문제 파일을 다운로드하였다. 

문제 파일을 열어보니 다음과 같은 디렉토리와 파일로 구성되어 있었다.

문제정보에서 개발자 도구의 sources 탭을 이용해서 FLAG를 구하라 했으니 html 파일을 열어야 될 것이라고 짐작했다. 먼저 index.html 파일에 접속했다.

 

 

2. 그리고 개발자 도구의 sources 탭에 접근했다. 여기서 찾아야 하는 것은 FLAG지만 FLAG가 어떤 것인지 모르기에 Flag를 감싸고 있는 DH{} 형식을 찾아보면 될 것이다.  하지만 sources 탭에 많은 파일들이 들어있는 것을 알 수 있다.

 

파일마다 들어가서 일일히 검사하기는 힘들기에 Ctrl+Shift+F를 통한 전체검색 혹은 sources 탭 아래의 검색 기능을 활용하여 DH를 검색해 보았다.

아래와 같이 FLAG가 도출된 것을 확인할 수 있다.

'Wargame & CTF > dreamhack' 카테고리의 다른 글

[Webhacking] php7cmp4re  (0) 2024.01.30
[Webhacking] Type c-j  (0) 2023.09.29
[Webhacking] Flying Chars  (0) 2023.08.22
[Webhacking] session-basic  (0) 2023.08.13
[Webhacking] cookie  (0) 2023.08.06
  • 문제경로
  • 문제정보
  • 문제풀이

 

 

 

[문제경로]

https://dreamhack.io/wargame/challenges/409

 

session-basic

Description 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. 플래그 형식은 DH{...} 입니다. Reference Background: Cook

dreamhack.io


 

 

 

[문제정보]


 

 

 

[문제풀이]

1. 문제파일을 다운로드하여 소스코드를 봤다. 다음 코드를 보면 로그인할 수 있는 방법이 3가지가 있는 것 같다.

 

첫 번째 방법을 이용해 username: guest, password: guest로 로그인해 보았다.

다음과 같이 guest로 로그인되었지만 admin 계정이 아니라고 표시되는 것을 확인할 수 있다. 두 번째 방법을 이용해도 admin 계정으로 로그인하지 않는 한 이와 비슷할 것이라 추정했다. 

 

 

2. 앞의 문제설명에서 2가지 중요한 정보가 있다. 쿠키와 세션으로 인증상태를 관리하며 admin 계정을 통해서만 FLAG 획득이 가능하다는 것이다.

개발자도구를 통해 쿠키에 접근해 보았다. guest 계정의 sessionid 값이 저장되어 있었다.

지금 필요한 것은 admin 계정의 sessionid 값이다. 

 

 

3. 소스코드를 더 읽어봤더니 아래에 '/admin' 경로가 있다. 여기에서 session storage를 반환하는 코드를 발견했다.

 

따라서 '/admin' 경로로 이동했더니 admin에 해당하는 sessionid가 저장되어 있는 것을 확인할 수 있었다.

 

이 admin 계정의 sessionid 값을 쿠키의 값에 집어넣어 보았다.

 

그리고 루트 경로로 이동했더니 FLAG가 도출된 것을 알 수 있다.

 

이제 FLAG를 알았으니 웹서버에 로그인할 수 있는 세 번째 방법을 이용하여 로그인해 보겠다. username: admin, password: FLAG로 로그인했더니 wrong password라고 경고창이 뜬다. 흠..

 

'Wargame & CTF > dreamhack' 카테고리의 다른 글

[Webhacking] php7cmp4re  (0) 2024.01.30
[Webhacking] Type c-j  (0) 2023.09.29
[Webhacking] Flying Chars  (0) 2023.08.22
[Webhacking] devtools-sources  (0) 2023.08.21
[Webhacking] cookie  (0) 2023.08.06
  • 문제경로
  • 문제정보
  • 문제풀이

 

 

 

[문제경로]

https://dreamhack.io/wargame/challenges/6

 

cookie

쿠키로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. 플래그 형식은 DH{...} 입니다. Reference Introduction of Webhacking

dreamhack.io


 

 

 

[문제정보]


 

 

 

[문제풀이]

1. 문제설명에서 admin 계정으로 로그인하면 플래그를 얻을 수 있다고 하였다. 따라서 웹서버에 접속해 로그인 창에서 username에 admin, password에 admin을 넣고 로그인해 보았다. wrong password라고 경고창을 띄우고 있다.

 

 

2. 문제파일을 다운로드하여 소스코드를 봤다. 다음 코드를 보면 로그인을 할 수 있는 방법이 2가지가 있는 것 같다.

 

일단 FLAG가 무엇인지 모르니 두 번째 방법으로는 못하리라 예상했다.

username password
guest guest
admin FLAG

 

따라서 첫 번째 방법을 이용해 username: guest, password: guest로 로그인해 보았다.

다음과 같이 guest로 로그인되었지만 admin 계정이 아니라고 표시되는 것을 확인할 수 있다.

 

 

3. 앞의 문제설명에서 2가지 중요한 정보가 있다. 쿠키로 인증상태를 관리하며 admin 계정을 통해서만 FLAG 획득이 가능하다는 것이다.

개발자도구를 이용하여 애플리케이션 탭의 쿠키에 접근하였다. 현재 guest 계정으로 로그인한 상태인데 admin 계정으로 로그인하라고 했으니 쿠키 값 부분에 guest 대신 admin을 넣어 쿠키변조를 해보았다.

 

그리고 새로고침했더니 플래그가 도출된 것을 알 수 있다.

 

이제 FLAG를 구했으니 웹서버에 로그인할 수 있는 두 번째 방법을 이용하여 로그인을 시도해 보겠다.

username: admin, password: FLAG로 로그인했더니 동일하게 FLAG가 도출되는 것을 확인할 수 있다.

'Wargame & CTF > dreamhack' 카테고리의 다른 글

[Webhacking] php7cmp4re  (0) 2024.01.30
[Webhacking] Type c-j  (0) 2023.09.29
[Webhacking] Flying Chars  (0) 2023.08.22
[Webhacking] devtools-sources  (0) 2023.08.21
[Webhacking] session-basic  (0) 2023.08.13

+ Recent posts