Skip to content
This repository has been archived by the owner on Apr 25, 2020. It is now read-only.

Latest commit

 

History

History
60 lines (35 loc) · 2.41 KB

9차시 수업자료.md

File metadata and controls

60 lines (35 loc) · 2.41 KB

9차시 - JS로 코드 짜기

수업 목표

  • JS로 구구단을 출력할 수 있다.
  • 웹서버에서 JS로 짜여진 코드를 이해할 수 있다.
  • webhacking.kr의 JS 문제를 풀 수 있다.
  • JS 코드의 위험성에 대해 안다.

수업 순서

  1. 8차시에 배운 javascript 복습
  2. JS로 재밌는것(구구단 등) 만들기
  3. Javascript로 만들어진 로그인 페이지 해킹해보기
  4. webhacking.kr의 javascript를 활용한 문제 풀어보기
  5. JS로 만든 게임 점수 조작하기

1. 8차시 내용 복습

  • 변수 생성 법칙과 반복문을 다시 복습한다.

  • 복습한뒤 콘솔에 구구단을 출력하는 코드 짜보기

  • 랜덤함수를 이용해 가위바위보 코드 짜보기

    여기까지 복습을 했다면 Javascript에 대해 어느정도 이해했다고 간주하고 수업을 시작한다.


2. Javascript로 만들어진 로그인 페이지 해킹해보기

  • 이 과정을 거치는 이유 중 가장 큰 이유는 웹 브라우저의 '소스보기' 기능으로 소스가 노출될 수 있음을 알려주기 위함임.

  • prompt() 함수를 이용해서 사용자의 id와 password를 받고 if문으로 비교하는 페이지를 만든 후 재주껏 숨겨진 플래그를 얻도록하는 문제를 풀어본다.

  • 두번째는 XMLHttpRequest(이하 XHR)를 이용해 다른 서버에서 플래그를 받아오는 코드를 준 후 여기서 플래그를 얻도록하는 문제를 풀어본다. (XHR으로 요청하는 url에 가면 플래그가 있음)

  • 이렇게 javascript 해킹에 관심을 갖도록 한다.


3. webhacking.kr 문제 풀어보기

  • 20번 : 대표적인 Javascript challenge, CSRF 기법에 사용되는 form.submit() 에 대해서 알 수 있음.

  • 54번 : Javascript를 사용해서 패스워드를 아주 빠르게 보여주는데 소스를 볼 수 있기 때문에 패스워드를 쉽게 얻을 수 있음.

  • 17번 : 콘솔을 이용해 Javascript 난독화를 푸는 방법을 알게됨.


4. JS로 만든 게임 점수 조작하기

  • 전국청소년모의해킹대회 2017에 나온 문제임
  • Javascript로 짜여진 2048게임의 점수를 조작하는 것이 목표
  • 2048 게임이 끝나면 변수로 저장해둔 최종변수를 서버로 보냄
  • XHR을 사용해 POST를 보내는 함수가 존재하는데 이 함수를 콘솔에서 이용해 점수를 조작할 수 있다.