[어설픈] webhacking.kr 12번 문제풀이

2019. 2. 26. 10:23Web Hacking/Webhacking.kr

안녕하세요!

오늘은 250점짜리의

webhacking.kr 12번 문제풀이를

해보도록 하겠습니다!


문제에 들어가보니

이렇게 javascript challenge라고 

적혀있네요!


근데 저건 말고 뭐 아무것도 없었어요

힌트가 될만한 게 ....


그래서 항상 그렇듯

개발자 도구를 켜서

소스를 봤습니다!


그랬더니 <script>태그가 있고

string.fromcharcode( )함수가 있네요!

문자 그 자체로만 봐도, 

charcode(숫자)에서 온 string(문자)


즉, 숫자코드를 문자로 변환하는 함수죠!




그래서 앞 부분 WorkTimeFun=은 떼어 놓고

string.fromcharcode( )함수와 인자들만 복사해서

console창에 붙여넣으니


아래와 같은 

식별할 수 있는 코드가 나오네요!




근데 자바스크립트 문제에서

이렇게 자바스크립트 코드가 주어지면

사실상 문제 풀이는 

9부능선을 지났다고 보시면 됩니다!


왜냐하면 이제 저희가 해야 할 일은

코드를 보고 알맞게 console창에서

실행시키면 되기 때문이죠!


그냥 갖다가 붙여넣기만 하면되는데

그래도 풀이니까

코드를 살짝보자면,

변수 enco는 빈칸으로 선언

변수 enco2는 126으로 선언

변수 enco3는 33으로 선언

변수 ck는 document.url에서 있는 값을 substring 함수로 자르는데

얼마나 자를지는 

안에 있는 document.url에서 

문자열 =의 index값에 근거

(이 문제에선 별로 안 중요해요)


그리고 빈칸인 enco에 

루프가 121번 돌면서

charcode인 숫자를

문자로 변환해주네요!

그러면서 변환을 매번 할 때마다

enco에 값이 계속 추가돼요!


근데 여기서는 string.fromcharcode(i,0)

이 꼴로 되어 있는데

뒤에 ,0 이렇게 있는 이유는

저게 없으면 문자열이 

띄어쓰기 없이 다 붙어서 출력돼서

띄어쓰기 역할해주는 거에요!


그리고 함수 enco_(x)는

저희가 인자 x에 하나의 문자를 넣으면

그 문자에 대한 charcode 값을 반환해줘요!

한 마디로 string.fromcharcode의 반대죠!



어쨌든 저렇게 미리 설정할 부분을 console창에

먼저 입력을 해놓고!


if문 안에 있는 부분 중에서 ck=="="부분을 빼고

String.fromcharcode부분부터 긁어와서 

console창에 실행시키려고 붙여 넣었습니다!

 

왜 if문안에 있는 코드를 가져왔나?

if문안에 있는 조건이면

"Password is "이라고 출력한다고 함수 제일 밑에

적혀있어서 조건을 참이 되는 값을 찾으려 구여!


왜 ck 앞부분은 생략했냐?

if 조건문이 참일때

출력 되는 함수에서

ck.replace되어있길래

아 ck=="=" 이 부분은

어차피 없어지는구나 해서

버렸습니다!


그래서 결국에 해당코드를 실행시켰더니!

아래와 같이 youaregod~~~~~~~!

이라고 떴습니다




그래서 이 값을 인증하는 곳으로가서

대입하니 아래와 같이 

clear라는 창이 떴습니다!


오늘도 고생하셨습니다!