webhacking.kr 1번

1번을 풀기 전에 이번주에 동아리에서 학습한 쿠키와 php에 관해서 간단하게 정리를 해보려고 한다.

풀이는 밑에 단락 구분해두겠음.

 

web에 대한 간단한 정리

 

HTML은 로직을 이용한 작업이 불가능하다. 동적인 웹서비스를 위해서는 스크립트 언어가 필수적인데

우리가 흔히 아는 CSS와 SSS로 나눌 수 있다.

 

CSS : Client Side Script의 약어로 클라이언트측이 사용하는 스크립트 언어

SSS : Sever Side Script의 약어로 서버측이 사용하는 스크립트 언어

 

CSS는 웹브라우저에서 소스보기를 사용하면 클라이언트에게 그대로 노출이 된다는 보안상의 문제가 있다.

따라서 취약점이 될 부분은 SSS를 사용하는 것이 좋다.

 

또한 서버측 언어에서만 DB와 연동이 가능하다. 만약 CSS로 DB와 연동이 가능하다면 클라이언트도 DB에 접속이 가능하기 때문에 문제가 발생한다.

 

사용자 이벤트는 CSS에서만 관리가 가능하고 서버와 연동시키지 않아도 될 작업들은 CSS를 이용하므로 서버의 트래픽 발생이 감소된다.

 

Java Script

  • 가장 많이 사용되는 CSS다.
  • 객체지향적이고 다양한 환경에서 사용이 가능하다.

PHP

  • SSS다.
  • C언어 기반으로 제작되어지고 오픈소스 웹 프로그래밍 언어다.
  • 다양한 환경에서 호환이 가능하고 빠른 처리 속도로 널리 사용되는 언어다.
  • 오늘 풀 문제에서도 PHP의 간단한 문법을 읽는다.

 

ASP, JSP등이 있는데 오늘 문제에서 사용되지 않으므로 종류만 파악하고 넘어가도록 한다.

 

 

쿠키에 대해 알아보자

 

쿠키에 대해 알아보기 앞서 HTTP에 대해 정리가 필요하다.

HTTP는 사용자와 서버 사이에 이루어지는 요청/응답 프로토콜이다. 80번 포트를 사용한다.

 

사용자 요청에 서버가 응답하여 주는 단방향성 특징

이 때문에 서버에는 각 사용자들의 정보를 식별 불가

그래서 서버에서는 쿠키를 사용자들에게 주고

사용자들은 각 요청 시마다 자신의 쿠키값을 첨부하여 서버에 요청한다.

서버는 쿠키값을 통해 사용자들의 정보를 식별한다.

 

 

웹해킹 문제에 쿠키가 등장한다는 것은?

 

  • 쿠키는 공개 값이기 때문에 보안에 취약하다.
  • 쿠키변조 프로그램에서 변조가 가능하다.

 


1번 문제 풀이를 시작하겠다.

 

첫 화면에서 보이는 veiw source를 클릭하면 다음과 같은 코드가 뜬다.

php부분을 살펴보면 solve함수가 있는 부분의 조건을 살펴봐야한다.

쿠키의 값이 5보다 커야 한다는 것.

하지만 윗줄을 보면 쿠키값이 6이상일때는 쿠키가 1로 설정되게 바뀐다.

 

즉 쿠키의 값은 6보다 작고 5보다 큰 값이어야 한다.

 

이 문제를 풀기위해 나는 크롬 확장프로그램인

EditThisCookie라는 프로그램을 사용했다.

 

이 프로그램을 실행시키면 쿠키값인 user_lv을 변형시킬 수 있는데 나는 이 값을 5.1로 변형시켜 보겠다.

 

새로고침을 하면 위와같이 변하고 문제가 풀리게 된다.

'문제풀이 > 보안 writeup' 카테고리의 다른 글

webhacking.kr 14번  (0) 2021.01.20
webhacking.kr 24번  (0) 2021.01.20
webhacking.kr 19번  (0) 2021.01.19
webhacking.kr 17번  (0) 2021.01.08
webhacking.kr 10번  (0) 2021.01.08
myoskin