javascript challenge 입니다.



소스를 보시면 unlock이라는 변수에 한번에 들어오지 않는 계산식이 보입니다.

해당 계산을 모두 마친 후에 input 태그에 입력하면 password가 나오게 됩니다.



'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 21  (0) 2018.12.05
[webhacking.kr] prob 20  (0) 2018.12.04
[webhacking.kr] prob 16  (0) 2018.12.04
[webhacking.kr] prob 15  (0) 2018.12.04
[webhacking.kr] prob 14  (0) 2018.12.04

wsad 키를 통해서 게임처럼 상하좌우로 움직일 수 있습니다.

또한 마우스를 통해서 지울 수 도 있습니다.



문제의 해답을 찾기 위해 소스를 확인해 보면 mv()함수를 통해서 상하좌우로 이동하는 것을 알 수 있습니다.

근데 cd==124가 입력되면 특정 페이지로 이동하는 코드가 적혀있습니다.


124는 ASCII CODE로 | 입니다. 해당 값을 누르게 되면 페이지를 이동하게 되고 password를 알려주게 됩니다.


'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 20  (0) 2018.12.04
[webhacking.kr] prob 17  (0) 2018.12.04
[webhacking.kr] prob 15  (0) 2018.12.04
[webhacking.kr] prob 14  (0) 2018.12.04
[webhacking.kr] prob 12  (0) 2018.12.04

??? 해당 값으로 인증하면 풀립니다..

'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 17  (0) 2018.12.04
[webhacking.kr] prob 16  (0) 2018.12.04
[webhacking.kr] prob 14  (0) 2018.12.04
[webhacking.kr] prob 12  (0) 2018.12.04
[webhacking.kr] prob 11  (0) 2018.12.04

javascript challenge 입니다.



소스를 보시면 URL에서 .kr의 위치를 찾아 30을 곱한 값을 해당 input태그에 입력하면 성공하게 됩니다.




'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 16  (0) 2018.12.04
[webhacking.kr] prob 15  (0) 2018.12.04
[webhacking.kr] prob 12  (0) 2018.12.04
[webhacking.kr] prob 11  (0) 2018.12.04
[webhacking.kr] prob 10  (0) 2018.12.04

javascript challenge 입니다.

소스에 script 부문에 ASCII CODE로 되어있는 문자들이 많이 보이게 됩니다.

해당 부분을 복사해 콘솔로 가져가면 쉽게 원래 문자열을 얻을 수 있습니다.



ck는 URL에서 =을 찾은 후 =을 포함한 뒤에 문자열을 가져오게 됩니다.

결국 맨아래 if문에서 ck에 들어있는 값이랑 해당 값을 비교해서 동일하면 패스워드라고 알려줍니다.


간단하게 해당 부분을 console에 복사해 실행해보면 특정 문자열이 나오게 되고 해당 문자열을 URL의 넣어주면 성공하게 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var enco='';
var enco2=126;
var enco3=33;
var ck=document.URL.substr(document.URL.indexOf('='));
 
 
for(i=1;i<122;i++)
{
enco=enco+String.fromCharCode(i,0);
}
 
function enco_(x)
{
return enco.charCodeAt(x);
}
 
if(ck=="="+String.fromCharCode(enco_(240))+String.fromCharCode(enco_(220))+String.fromCharCode(enco_(232))
          +String.fromCharCode(enco_(192))+String.fromCharCode(enco_(226))+String.fromCharCode(enco_(200))
          +String.fromCharCode(enco_(204))+String.fromCharCode(enco_(222-2))+String.fromCharCode(enco_(198))
          +"~~~~~~"+String.fromCharCode(enco2)+String.fromCharCode(enco3))
{
alert("Password is "+ck.replace("=",""));
}
cs





FLAG AUTH에 값을 넣어주면 성공!


'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 15  (0) 2018.12.04
[webhacking.kr] prob 14  (0) 2018.12.04
[webhacking.kr] prob 11  (0) 2018.12.04
[webhacking.kr] prob 10  (0) 2018.12.04
[webhacking.kr] prob 6  (0) 2018.12.04

단순한 정규표현식 문제입니다.



$pat="/[1-3][a-f]{5}_.*39.120.150.6.*\tp\ta\ts\ts/";

차례대로 해석을 하자면 다음과 같습니다.

  [1-3]   : 1~3 중 하나의 문자

  [a-f]    : a~f 중 하나의 문자

  {5}      : 앞의 문자 5회 반복

  .         : 줄 바꿈을 제외한 문자 하나

  *        : 앞의 문자 0회 이상의 횟수

  \t      : TAB문자 (Hex값 %09)



알맞게 입력하시면 성공하게 됩니다.




[참고]


PHP 정규표현식 상세: http://ir.php.net/manual/kr/regexp.reference.php

'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 14  (0) 2018.12.04
[webhacking.kr] prob 12  (0) 2018.12.04
[webhacking.kr] prob 10  (0) 2018.12.04
[webhacking.kr] prob 6  (0) 2018.12.04
[webhacking.kr] prob 5  (0) 2018.12.04



소스를 확인해보면 onclick 부분에 <a>태그를 클릭할 때마다 posLeft가 1씩 증가하고, 800이 되었을 때 href가 활성화됩니다.

임의로 ?go=800 으로 이동해보면 "no hack"이라는 문구가 나오게 됩니다.



결국 800번 클릭하면 해결이 되는 문제인데 800번을 누르기 쉽지 않으니 임의로 799로 바꾼 후 한번 클릭해 주면 문제가 해결됩니다.




Chrome에서는 클릭을 해도 이동이 되지 않으니 explorer에서 하시면 쉽게 해결할 수 있습니다.


'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 12  (0) 2018.12.04
[webhacking.kr] prob 11  (0) 2018.12.04
[webhacking.kr] prob 6  (0) 2018.12.04
[webhacking.kr] prob 5  (0) 2018.12.04
[webhacking.kr] prob 4  (0) 2018.12.04

ID/PW가 각각 보여지고 있습니다.



guest/123qwe를 가지고

  ① base64 encode 20회

  ② 1~8 숫자를 특정 문자열로 치환

  ③ cookie 값으로 저장

을 하고 있습니다.



아래 소스에서는 위에 코드를 역으로 하고 있습니다.

  ① cookie 값을 가져옴

  ② 특정 문자열을 1~8로 치환

  ③ base64 decode 20회

  ④ 해당 값이 admin/admin이면 성공




쿠키 값을 확인해보면 password와 user라는 이름으로 특정 값이 있습니다.

이 값들은 기존에 설정되어 있는 값인 guest/123qwe의 값들입니다.



admin/admin의 값이 필요하므로 해당 값을 base64 encode 20회 후 문자열 치환을 해주고 쿠키 값을 변경해주면 성공하게 됩니다.


'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 11  (0) 2018.12.04
[webhacking.kr] prob 10  (0) 2018.12.04
[webhacking.kr] prob 5  (0) 2018.12.04
[webhacking.kr] prob 4  (0) 2018.12.04
[webhacking.kr] prob 1  (0) 2018.12.04



Login 버튼을 누르면 로그인 폼이 나오게 됩니다.

a/a라는 값을 넣었을 때 id가 admin이여야 한다는 메시지가 나오게 됩니다.




그래서 Join버튼으로 가입을 해보고자 눌러보면 Access_Denied라는 alert창이 나오게 됩니다.



소스를 보시면 버튼을 누르면 alert 메시지를 띄우는 script가 작성되어 있었습니다.

Login 버튼을 누를 때는 mem/login.php 로 이동하는 것을 보고 URL에 mem을 추가해봤습니다.



URL에 mem을 추가해서 이동해보니 join.php와 login.php가 있었고 join.php로 이동해봅니다.



join.php로 이동하면 빈 화면이 반겨주게 되는데 소스를 확인해보면 script로 아래와 같은 문자열이 적혀있었습니다.


복잡해 보이지만 해석해보면

① document.cookie의 oldzombie 라는 값이 있는가?

② document.URL의 mode=1 이 있는가?

입니다.



cookie값에 oldzombie를 추가하고, URL의 ?mode=1를 추가해주면 join 폼이 나오게 됩니다.



admin으로 가입을 시도해보면 해당 계정은 이미 존재한다고 나옵니다.



소스를 확인해보면 id의 길이가 5로 제한되어 있는 것으로 보아 DB에 저장되는 값은 5글자로 제한되어 있다고 짐작할 수 있습니다.

해당 글자 수를 6으로 늘리고 id에 admin과 공백을 넣어주고 가입을 시도하면 DB에 저장될 때 앞 5자리만 저장하고 뒤에 값들은 버리게 됩니다.




'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 11  (0) 2018.12.04
[webhacking.kr] prob 10  (0) 2018.12.04
[webhacking.kr] prob 6  (0) 2018.12.04
[webhacking.kr] prob 4  (0) 2018.12.04
[webhacking.kr] prob 1  (0) 2018.12.04

해당 문자열을 보면 알파벳 대소문자와 숫자로만 이루어져 있고, 맨 마지막에 =가 있는 것을 보니

base64로 encoding 되어 있다는 것을 알 수 있습니다.



해당 값을 decode하면

c4033bff94b567a190e33faa551f411caef444f2 이 값이 되는데 글자 수가 40자리이고 알파벳과 숫자로 이루어져 있는 것을 보아

sha1으로 encoding 되어 있는 것을 알 수 있습니다.


해당 값을 decode하면

a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 이 값이 나오고 다시 sha1으로 decode하면


읽을 수 있는 password를 얻을 수 있습니다.



'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 11  (0) 2018.12.04
[webhacking.kr] prob 10  (0) 2018.12.04
[webhacking.kr] prob 6  (0) 2018.12.04
[webhacking.kr] prob 5  (0) 2018.12.04
[webhacking.kr] prob 1  (0) 2018.12.04

+ Recent posts