문제의 처음을 보면

다음과 같이 HTTP 응답 헤더를 볼 수 있냐고 물어보고 있다.

 

페이지에 들어가보면 you've already got key! :p 이라는 문자열 밖에 확인할 수 있는 것이 없다.

 

크롬 개발자 도구의 네트워크 탭에 가면 HTTP 응답 헤더를 확인할 수 있다.

헤더를 확인해 보면 플래그를 얻을 수 있다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[Wargame.kr] QR CODE PUZZLE  (0) 2019.08.25
[Wargame.kr] flee button  (0) 2019.08.25
[XSS game] Level 6  (0) 2019.08.14
[XSS game] Level 5  (0) 2019.08.08
[ XSS game] Level 4  (0) 2019.08.07

5번 문제도 alert 창을 띄워야 한다.

Sign up을 누르면 email을 입력할 수 있는 창이 보인다.

또한 url을 보면 get 방식으로 next에 confirm을 전달 받고 있다.

signup.html 파일을 보면 Next를 누르면 next의 값으로 연결되도록 링크 되어 있다.

현재 상태에서는 confirm.html로 이동할 것이다.

Next를 누를 경우 confirm.html로 이동하는 것이 아닌 alert 창을 띄우도록 next 값을 조작하여야 한다.

URL을 통해 스크립트를 전달하려면 javascript:js코드 의 형태로 전달할 수 있다.

URL의 next 값에 javascript:alert(1);을 넣고 next 를 누르면 클리어 할 수  있다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[Wargame.kr] already_got  (0) 2019.08.25
[XSS game] Level 6  (0) 2019.08.14
[ XSS game] Level 4  (0) 2019.08.07
[XSS game] Level 3  (0) 2019.08.06
[XSS game] Level 2  (0) 2019.08.06

level 4도 alert(경고)창을 띄워야 한다.

입력창에 값을 주면 그 수에 해당하는 초만큼 로딩을 하다가, 다음과 같은 경고창이 뜬 후 초기 화면으로 돌아간다.

소스 코드를 보면 timer.html 파일에 timer이라는 변수로 값을 받는 변수가 있다.

여기에 timer 부분에 공격 코드를 주입해야 하는 것 같다.

이 timer의 값은 입력창에서 입력받는 값이다.

3');alert('1 의 값을 주어 입력하면 1을 출력하는 alert 창을 띄울 수 있다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[XSS game] Level 6  (0) 2019.08.14
[XSS game] Level 5  (0) 2019.08.08
[XSS game] Level 3  (0) 2019.08.06
[XSS game] Level 2  (0) 2019.08.06
[XSS game] Level 1  (0) 2019.08.06

이번에도 역시 alert(경고) 창을 띄워야 한다.

이미지 버튼을 누르면 이미지 번호에 따라서 url의 frame#뒤의 값이 변한다.

소스코드의 index.html을 보면

num이라는 변수에 이미지 번호를 대입한다.

저 변수의 값에 공격 코드를 주입하면 문제를 해결할 수 있다.

공격 코드 : 4.jpg' onerror='alert(1);'

4.jpg는 존재하지 않는 이미지이기 때문에 alert창을 띄운다.

 

'Security & Hacking > Wargame' 카테고리의 다른 글

[XSS game] Level 5  (0) 2019.08.08
[ XSS game] Level 4  (0) 2019.08.07
[XSS game] Level 2  (0) 2019.08.06
[XSS game] Level 1  (0) 2019.08.06
[webhacking.kr] Challenge 18  (0) 2019.06.21

level 1과 같이 <script>alert(1);</script> 코드를 주입해보면  위 코드가 필터링 된다.

저 문자열에 있는 여러 문자열을 포함하여 시도해보니 '<알파벳' 을 필터링 하는 것 같다.

script 태그를 사용할 수 없기에 image태그를 이용하여 우회할 수 있다.

<img src=1 onerror="alert(1);">태그를 이용하면 지정한 이미지를 로드할 수 없을 때 alert 코드를 실행시킨다.

위 태그를 주입하면 클리어가 가능하다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[ XSS game] Level 4  (0) 2019.08.07
[XSS game] Level 3  (0) 2019.08.06
[XSS game] Level 1  (0) 2019.08.06
[webhacking.kr] Challenge 18  (0) 2019.06.21
[webhacking.kr] Challenge 17  (0) 2019.06.13

첫번째 문제다.

위에 있는 문제 설명을 읽어보면 alert(경고창)을 띄우라고 한다.

평범한 js코드를 주입하면 문제 클리어가 가능하다

<script>alert(1);</script>

 

'Security & Hacking > Wargame' 카테고리의 다른 글

[XSS game] Level 3  (0) 2019.08.06
[XSS game] Level 2  (0) 2019.08.06
[webhacking.kr] Challenge 18  (0) 2019.06.21
[webhacking.kr] Challenge 17  (0) 2019.06.13
[webhacking.kr] Challenge 16  (0) 2019.06.08

문제를 보면 sql 인젝션 문제인 것 같다. 

 

페이지 소스를 보면 hi admin을 출력해야 하는 것 같다. get방식으로 no의 값을 받는다. 

erigi 함수를 보면 sql 인젝션을 방어하기 위해 필터링하는 문자들이 보이는데 공백문자도 필터링하고있다.

이는 %0a 로 우회할 수 있다.

또한 mysql_query 함수를 보면 id는 guest로 지정하고 있고 no값만 get방식으로 받고 있다.

우선 입력창에 1을 입력하면 결과값으로 hi guest가 출력된다. guest의 no 값은 1이다.

admin의 no 값은 1보다 큰 값일 것이라고 추측할 수 있다.

 

url에 get 방식으로 "no=12 or no>1" 을 우회하여 "?no=12%0aor%0ano>1" 을 전달하면 문제가 해결된다.

guest의 no 값은 1 이기 때문에 12는 거짓이므로 뒤에 no>1을 참으로 하여 admin으로 인식되어 문제가 해결된다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[XSS game] Level 2  (0) 2019.08.06
[XSS game] Level 1  (0) 2019.08.06
[webhacking.kr] Challenge 17  (0) 2019.06.13
[webhacking.kr] Challenge 16  (0) 2019.06.08
[webhacking.kr] Challenge 14  (0) 2019.06.06

문제에 들어가면 입력창이 하나가 있다.

소스 코드의 스크립트 부분을 보면

unlock라는 변수에 복잡한 식이 있고, sub라는 함수에서 Password를 출력하는데,

입력값이 unlock라는 값과 같으면 Password를 출력한다.

unlock의 값을 콘솔창에 붙여넣기 하면 저 식의 값을 구할 수 있다.

unlock의 값은 9997809307이고, 이 값을 입력창에 입력하면 Password가 출력된다.

이 Password값을 인증하면 문제가 해결된다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[XSS game] Level 1  (0) 2019.08.06
[webhacking.kr] Challenge 18  (0) 2019.06.21
[webhacking.kr] Challenge 16  (0) 2019.06.08
[webhacking.kr] Challenge 14  (0) 2019.06.06
[webhacking.kr] Challenge12  (0) 2019.06.06

문제를 보면 *이 있고 이 페이지 에서는 힌트가 없을 것 같아서, 페이지 소스를 봤다.

스크립트의 mv함수를 보면 cd의 값에 따라 조건문을 수행한다.

조건문을 수행할 수 있는 cd의 값은 100, 97, 119, 115, 124 인데,

cd가 124 일 경우 location.href를 통해 새 페이지로 이동한다. 이 조건을 만족 시켜야 할 것 같다.

여기 이 값들은 아스키코드의 값이고, 100은 d, 97은 a, 119는 w, 115는 s, 124는 | 이다.

키보드로 | 를 누르면 password를 알려주는 페이지를 볼 수 있다.

이 값을 auth에 인증하면 문제가 해결 된다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[webhacking.kr] Challenge 18  (0) 2019.06.21
[webhacking.kr] Challenge 17  (0) 2019.06.13
[webhacking.kr] Challenge 14  (0) 2019.06.06
[webhacking.kr] Challenge12  (0) 2019.06.06
[webhacking.kr] Challenge 15  (0) 2019.03.08

문제에 들어가면 입력창이 하나가 있다.

페이지의 소스를 보면 다음과 같은 스크립트를 볼 수 있다.

위 내용을 해석해보면 ul의 값과 input_pwd(입력값)이 같으면 password를 출력하는데

ul 값은 url에서 ".kr"의 시작위치 곱하기 30을 한 값이다.

http://webhacking.kr/challenge/javascript/js1.html 에서 .kr은 17번째 index에서 시작하고, 17*30=510 이다.

510을 입력하면 password가 출력되고, 이 값을 인증하면 문제가 해결된다.

'Security & Hacking > Wargame' 카테고리의 다른 글

[webhacking.kr] Challenge 17  (0) 2019.06.13
[webhacking.kr] Challenge 16  (0) 2019.06.08
[webhacking.kr] Challenge12  (0) 2019.06.06
[webhacking.kr] Challenge 15  (0) 2019.03.08
[webhacking.kr] Challenge 11  (0) 2019.03.07

+ Recent posts