• 문제경로
  • 문제풀이

 

 

 

[문제경로]

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
  • 과제 설명
  • 과제 풀이

 

 

[과제 설명]

01

 

 

[과제 풀이]

1. 구름 IDE 꼭 안 써도 됨 (본인이 원하는 리눅스 개발환경 가능)

멘토님께서 원하는 리눅스 개발환경에서 진행해도 된다고 하셔서 KALI LINUX 개발환경을 택했다.

 

 

2. Sizeof 연산 타이핑해보기(선택)

01

멘토님께서 구름 IDE 개발 환경에 신나는 타이핑이라는 게 있다고 한번 해보라고 선택형 과제로 내주신 것이다.

나는 리눅스 환경이지만 실습해 볼 겸 코드를 작성하고 컴파일해서 실행결과를 확인해 봤다.

 

 

3. 오버플로 예제를 언더플로로 바꿔서 해보기

-CHAR_MIN의 값에서 -1 

01

char 자료형 범위의 최솟값에서 -1을 해 언더플로를 발생시키는 코드를 짜는 문제이다.

 

 

4. 비트 연산 프로그램 바꿔보기 

-특정 위치의 비트를 끄는 함수 구현

01

멘토님께서 설명하신 대로 다음과 같이 그대로 수행만 하면 된다.

`특정 위치만큼 1을 시프트 해야 함 (1 << position)

`1에서 만든 수를 NOT 연산으로 비트 반전 ~ (1 << position)

`비교하고 싶은 수와 ~ (1 << position) AND 연산해서 원하는 위치 비트만 끄기

 

-사용자의 입력(특정 위치 -int값)을 받도록 수정(선택)

01

clear_bit로 2라는 값을 입력하여 2번째 위치의 비트를 끄고 결과를 확인해봤다.

 

 

5. C언어가 기계어가 되는 과정 직접 해보기

 

 

-소스 코드(*.c), 헤더 파일(*.h)

 

-전처리 과정

 

-전처리 된 소스 코드 파일(*.i)

 

-컴파일 과정

 

-어셈블리어 파일(*.s)

 

-어셈블리 과정

 

-오브젝트 파일(*.o)

 

-링킹 과정

 

-실행 파일

 

'Educations > WhiteHat School' 카테고리의 다른 글

[WhiteHat School] 수료증  (0) 2024.04.02
[WhiteHat School] 화이트햇 스쿨  (0) 2024.01.23

[1차]

 

 

[2차]

1차 시험 후 2차까지의 유효기간이 2년이다. 아직 1년이라는 유효기간이 남아있었지만 내가 군대를 앞두고 있어 이번이 마지막 기회라고 생각하고 접수를 마쳤는데 실수로 환불을 눌러 재접수가 안되는 상황에 오고 말았다. ^^ 

'Certifications > Linux Master Level 2' 카테고리의 다른 글

[리눅스마스터 2급]  (0) 2024.06.28
  • 문제경로
  • 문제정보
  • 문제풀이

 

 

 

[문제경로]

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

공군 정보보호병은 가산점이 있는 자격증 내역을 명확히 명시해놓지 않는다. 그런데 육군 정보보호병 가산점에 해킹보안전문가 2급 취득이 들어있었다. 따라서 "이걸 따면 공군 정보보호병도 인정해주지 않을까?"라는 생각을 했다. 그렇기에 2급 시험을 보기 위한 자격요건으로 3급 시험을 보고 합격하였다. 하지만 합격을 했어도 자격증을 발급을 받아야지만 2급 자격시험을 볼 수 있다는 답변을 받았다. 발급비용이 5만 원이어서 이 자격증에 5만 원을 내고 발급받자니 아까워서 발급하지 않았다.(주관적인 생각입니다.) 다른 자격증이나 도전해야겠다.

 

 

  • 문제경로
  • 문제정보
  • 문제풀이

 

 

 

[문제경로]

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

[Windows]

1. ipconfig: IP 주소 출력

#ipconfig /all 옵션을 통해 MAC 주소와 Gateway 주소 확인 가능하다.

 

2. nslookup: 주어진 도메인 네임에 대한 IP 주소를 DNS (Domain Name System) 서버에서 조회하는 명령어

 

3. tracert: 지정된 목적지까지의 경로 및 시간을 보여준다.

 

4. ping: 지정된 목적지까지 걸리는 시간만 보여준다. 접속하려는 대상이 네트워크에 연결되어 있는지 확인하는 명령어. 경로는 안 보여 주기에 중간에 ip주소들은 나오지 않는다.

# ping 명령어를 이용하여 목적지(www.icqa.or.kr)와 정상적으로 통신되었다. 요청하고 응답받은 데이터의 사이즈는 32바이트이며 요청하고 응답받은 시간은 평균 2ms이다. 또한 패킷이 살아있는 홉의 개수(TTL, Time To Live)는 55개이다.

 

5. netstat: 현재 개방되어 있는 포트번호 확인

# netstat -an 443을 하면 불법적으로 443 포트를 이용하여 52.139.250.253번 IP에서 업무 pc에 원격으로 접속시도가 이뤄진 흔적을 발견할 수 있다.

 

6. arp: IP주소를 이용하여 Mac주소를 알아내는 명령어

#arp -a 옵션을 통해 arp 테이블 확인 가능하며 arp -s 옵션을 통해 특정 IP 주소에 대한 MAC 주소를 정적으로 등록 가능하다.

 

 

 

[Linux]

ifconfig: ip주소 출력

traceroute: 지정된 목적지까지의 경로 및 시간을 보여준다.

'Computer science > Network' 카테고리의 다른 글

[Network] cmd ip & my ip & localhost  (0) 2023.12.19
  • 문제경로
  • 문제정보
  • 문제풀이

 

 

 

[문제경로]

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