webhacking.kr 1번, 10번, 12번 풀이

드디어 200점대로 진입했다 오예!! 다시 1번으로 돌아왔으니 초심도 되찾고 열심히 풀어보기로 했다ㅎㅎ
(다 풀고나서 깨달았는데 12번이 이번주차 문제가 아니었는데 혼자 착각하고 풀어버렸다ㅜㅜ)

💡 1번 문제 풀이

<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>=6) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>5) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>

1번 php 소스코드를 보면 개발자 도구를 열어 쿠키값을 확인해야겠다는 생각이 먼저 든다. 확인해 보면 user_lv가 이미 등록되어있고 값은 1로 설정되어있다.
이 값이 5보다 커야하는데 6이상이 되면 안되기 때문에 대충 5.5로 바꿔줬더니 그냥 바로 풀려버렸다. 이게 어떻게 200점짜리야 2점이어도 믿겠다>< 자만금지

💡 10번 문제 풀이


문제 열자마자 처음보는 그림에 당황했다ㅋㅋ 일단 뭔지 몰라서 저 동그라미에 마우스를 올려보니 O가 yOu로 바뀌었고, 클릭할때마다 조금씩 오른쪽으로 이동하는 걸 볼 수 있었다.

<td>
<a id="hackme" style="position:relative;left:0;top:0"
onclick="this.style.left=parseInt(this.style.left,10)+1+'px';
if(this.style.left=='1600px')this.href='?go='+this.style.left"
onmouseover="this.innerHTML='yOu'" 
onmouseout="this.innerHTML='O'">O</a><br>
<font style="position:relative;left:1600;top:0" color="gold">|<br>|<br>|<br>|<br>Goal</font>
</td>

코드를 보니 1600번 클릭하면 goal이구나를 알 수 있는데, 귀차니즘이 지배한 손은 1600번 클릭따위하지 않고 이미 코드를 바꾸고 있음ㅎㅎ
onclick="this.style.left=parseInt(this.style.left,10)+1+'px'; 를
onclick="this.style.left=parseInt(this.style.left,10)+1599+'px';
바꾸고 새로고침한 다음에 클릭 한 번만 하면 바로 풀린다~!
사실 10번도 정말 넘무 쉽긴했는데 다만 처음보는 문제에 쫄면 안되겠다는 걸 느꼈다.

💡 12번 문제 풀이

12번 문제에서 헤매서 좀 아쉬움이 남는다ㅜㅜ 스크립트 중 일부를 가져왔는데 처음 이걸 보고 든 생각은 '다 지워야될 것 같군'이었다. 다 지우고 이리저리 코드 수정을 해봤는데 안되길래 이상해서 검색해봤더니 이 이상한 문자들이 aaencode라는 인코딩 방식으로 암호화가 된 것이었다.

゚ω゚ノ= /`m´)ノ ~┻━┻   //*´∇`*/ ['_']; o=(゚ー゚)  =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ 

근데 너무 이상하게도 사이트에 들어가 디코딩하려고 했는데 내 컴에서는 안돼서.. 결국 다른 블로그를 참고해버렸다ㅜㅜ 밑의 코드가 디코딩 결과라고 한다! 이 코드를 콘솔 창에서 돌려보면 =youaregod(물결7개)! 이라는 플래그값이 나오고 이를 url에 치면 풀리는 문제였다.

(function anonymous(
) {
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)){
  location.href="./"+ck.replace("=","")+".php";
}
})

알고 보면 간단하지만 알기까지가 힘들었던 12번,, aaencode라는게 있다는 것도 처음 알았다. 진작에 알았더라면 다 지우고 코드 만지는 삽질은 안할 수 있었을텐데ㅋㅋ쿠ㅜ

😎 느낀점

역시 아는게 힘이다!

좋은 웹페이지 즐겨찾기