Ringster's Techblog

Tech, Mobile, Internet

Webhacking.kr – 가입 및 Problem 1

leave a comment »

AWS에 올려놓은 앱 DB용 테스트 서버의 접속 로그를 확인해보니 brute force 시도가 확인되었다.
SMTP 로그인 시도인 것을 보니 초창기에 이것저것 설정하면서 설치했던 메일서버를 악용하려는 스패머들인것 같은데,
Web 쪽이나 서버 운영에 대한 지식이 부족하다 보니 이런 시도가 계속되고 있었다는 것도 한창이 지나서야 알게 됐다.

계기가 생긴 차에 웹 보안이나 해킹 관련 정보를 공부해봐야 겠다는 생각이 들었다.
깊이 파고들 필요는 없겠지만 일반적인 공격 방법에 대해 알아야 좀 더 안전한 서비스/서버를 만들 수 있을테니까.
정보를 얻을 수 있는 사이트들을 검색하다보니 http://webhacking.krhttp://hack-me.org와 같은 Quiz풀이 형태의 사이트들을 발견했다. (아주 오래전에 비슷한 형태로 운영되던 hackerslab이라는 사이트가 있었는데, 지금 다시 찾아보니 200x년대 이후 방치되고 있는듯 하다.)

webhacking.kr에 가입하려고 보니, 가입부터 간단치 않다.
Decode me라는 문자열을 디코딩해야 가입이 가능한데, 문자열 형식에 디코딩 방식에 대한 힌트가 숨어있다. Site admin이 가입에 대한 방법 설명은 자제해줄 것을 공지로 요청한터라 (아무나 유입 되는 것을 막기 위한 것 같다.) 따로 언급하지 않겠다.

문제는 Challenges – Auth 메뉴를 통해 접근 가능하며, 문제 1은 다음과 같다.
webhacking_lv1

문제에 주어진 힌트대로 현재의 문제 경로에 index.phps를 추가하면 php 소스코드를 볼수있다.

<?
if(!$_COOKIE[user_lv])
{
SetCookie("user_lv","1");
echo("<meta http-equiv=refresh content=0>");
}
?>
<html>
<head>
<title>Challenge 1</title>
</head>
<body bgcolor=black>
<center>
<br><br><br><br><br>
<font color=white>
---------------------<br>
<?

$password="????";

if(eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1;

if($_COOKIE[user_lv]>=6) $_COOKIE[user_lv]=1;

if($_COOKIE[user_lv]>5) @solve();

echo("<br>level : $_COOKIE[user_lv]");

?>
<br>
<pre>
<a onclick=location.href='index.phps'>----- index.phps -----</a>
</body>
</html>

코드를 살펴보면 eregi 함수를 통해 쿠키의 user_lv값이 0-9,.를 포함하고 있지 않으면 1로 설정해주고, 쿠키의 값이 6 이상일 경우 1로 설정해줌을 알 수 있다.

쿠키의 user_lv값이 5 이상 6이하가 됐을 때 @solve(); 호출을 통해 인증되는 형태이므로, 쿠키 값을 5~6 사이의 적당한 값으로 수정하면 된다. 쿠키 수정을 하기 위한 툴을 검색해본 결과, 크롬 플러그인 형태인 EditThisCookie(Chrome 링크)가 있어 설치하고, webhacking.kr로부터 받은 쿠키의 user_lv값을 5.5로 수정하자 해당 문제의 풀이가 완료되었다.

쿠키에 중요한 정보를 저장하지 않아야 한다는 것은 상식이지만, 생각보다 많은 사이트들이 중요한 정보를 쿠키를 통해 클라이언트에 전달하고 있다. 이러한 쿠키가 얼마나 쉽게 위변조 될 수 있는지에 대해 실질적으로 알 수 있게 해주는 문제라 하겠다.

Advertisements

Written by Ringster

2015/01/16 , 시간: 5:58 오전

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

Jay Jin, Programmer&Designer

Fork my brain because I'm ready to commit

쉐어보드

쉐어메이트에 관한 모든 것

jamesjungkuelee's biotech story

Biotech, entrepreneur, life

Communications as Ikor

기업 위기관리의 모든 것

Charles Pyo Ventures

시도와 실패, 성장의 기록. 2막에서도 계속되는 모험들.

VentureBeat

News About Tech, Money and Innovation

Open API, Cloud, DevOps 와 eBook

Open API, eBook, Cloud, DevOps

Economics of almost everything

Tech, Mobile, Internet

cylee

Tech, Mobile, Internet

gorekun.log

고어쿤로그

Google Developers Korea 블로그

Tech, Mobile, Internet

Android Developers Blog

Tech, Mobile, Internet

최피디의 앱스 개발기

기술, 앱스, SNS, 창업

D2 Blog

Tech, Mobile, Internet

All of Software

Tech, Mobile, Internet

'Startup's Story Platform’

'Startup's Story Platform’

%d 블로거가 이것을 좋아합니다: