webhacking.kr 15번, 16번 풀이

julia·2021년 3월 15일
0

웹해킹 초보에겐 살짝 당황스러웠던 15번..
작년에 Burpsuite 도구를 조금 익혀 둔 덕에 멘탈 잡고 버프를 켰다ㅋㅋㅋ
막상 버프스위트로 intercept하고 나니 정말 50점짜리 문제라는게 실감이 됐던 문제ㅎㅎ

💡 15번 문제 풀이

  • 인터셉트 후 포워딩
  • alert, location 코드 두 줄 지워주기
  • forward 후 윈도우에 뜨는 flag 링크 클릭

<인터셉트 후 포워딩 시켜준 화면>

<코드 두 줄 지운 화면 - 밑에 hi 뭐시기는 내가 했다는 걸 증명하기 위해 그냥 재미로 써봤다>

<결과 화면 - 마지막으로 저 링크를 클릭하면 끝!>

이렇게나 간단..하다니.... 갑자기 워게임에 쫄아 있던 나도 자신감이 생긴다. 물론 점점 더 어려워지겠지만ㅜㅜ



다음 16번 풀이로 넘어가보면~~
16번은 솔직히 재밌었다. 15번보다도 별 내용은 없는데 그냥 신박하다고 느껴졌던 문제.

💡 16번 문제 풀이

  • 스크립트에 적혀있는 함수를 분석
  • 해당 아스키코드를 입력

문제에 들어가게 되면 위의 화면처럼 별이 세 개가 뜨는데, 처음에 뭔지 몰라서 아무 키보드나 뚱땅거리다가 밑의 이미지처럼 별이 움직이는 걸 볼 수 있었다. 별들이 예뻐서 검사를 누르기 싫어졌던ㅋㅋㅋ

검사를 눌러 스크립트를 확인해보면 이렇게 뜨는데, 정말 친절하게도 do it! 이라는 주석을 옆에 달아줬네,,?><

<script> 
document.body.innerHTML+="<font color=yellow id=aa style=position:relative;left:0;top:0>*</font>";
function mv(cd){
  kk(star.style.left-50,star.style.top-50);
  if(cd==100) star.style.left=parseInt(star.style.left+0,10)+50+"px";
  if(cd==97) star.style.left=parseInt(star.style.left+0,10)-50+"px";
  if(cd==119) star.style.top=parseInt(star.style.top+0,10)-50+"px";
  if(cd==115) star.style.top=parseInt(star.style.top+0,10)+50+"px";
  if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it!
}
function kk(x,y){
  rndc=Math.floor(Math.random()*9000000);
  document.body.innerHTML+="<font color=#"+rndc+" id=aa style=position:relative;left:"+x+";top:"+y+" onmouseover=this.innerHTML=''>*</font>";
}
</script>

키보드를 눌렀을 때 별이 움직였던 걸로 보아 cd==124 여기서 124이라는 숫자에 해당하는 아스키 코드값을 알면 되는 것 같다.
124는 엔터 위에 있는 \를 쉬프트해서 누른 | 이 값을 의미하므로, 다시 돌아가 화면에서 | 를 누르면 문제가 바로 풀린다!!

😎 느낀점

15 16번을 풀면서 느낀 점은, 문제를 보고 먼저 겁먹기보단 내가 할 수 있는 작업을 최대한 침착하게 생각해야 한다는 것이다. 15번처럼 내가 쓸 수 있는 툴을 고르고 나면 바로 문제가 술술 풀릴 수 있으니 말이다:)

profile
Move Forward

0개의 댓글