HackThisSite Realistic :: Chicago American Nazi Party

문제 :: http://www.hackthissite.org/playlevel/2/

사용자 삽입 이미지
올린사람 : DestroyFascism

메시지 : 난 당신이 매우 감탄할 만한 해킹 기술을 지녔다고 알고 있어요. 음, 이 인종차별 모임은 무식한 인종차별 사생아의 대중 집회를 운영하기 위해 웹사이트를 사용하고 있습니다. 우리는 그런 안하무인격의 일이 일어나는 것을 용납할 수 없습니다. 만약 당신이 그들의 관리자 페이지에 접근하여 메인 페이지에 메시지를 남길 수 있다면, 우리는 영원히 감사할 것입니다.

이번 문제는 앞의 문제와 달리 다소 전문적인 지식이 필요합니다. 하지만 그렇게 어려운 문제는 아니구요. 구글에서 조금 검색해보면 금방 풀 수 있을 겁니다. 이 문제에서 이용되는 기술은 실제 웹사이트들에 적용될 수 있고, 실제로 먹혀들어서 관리자 권한을 얻을 수도 있습니다. 가장 기초적인 기술에 해당하고, 반대로 웹사이트를 구축하는 분들은 여기에 분명한 방어책을 가지고 있어야 합니다.

아래는 이 문제를 풀기 위한 힌트입니다.

  1. 웹 해킹의 기초는 html 소스를 분석하는 것…
  2. SQL Injection

최소한 1~2시간은 고민해본 다음에 풀이를 보세요.

여기서부터는 풀이입니다.html 소스를 보면 하단에 아래와 같은 코드가 있습니다.

<center>
      <a href="update.php"><font color="#000000">update</font></a>
</center>


/update 로 가는 링크지요. 글색깔을 바탕색과 똑같이 해놔서 눈에는 안 보이는거죠. 뭐, 드래그를 하면 바로 보이긴 합니다만.

링크를 따라 들어가면 username과 password를 입력하는 칸이 있고 “질의 보내기”라는 버튼이 있습니다. 이를 바탕으로 DB에 접근할 수 있는 SQL이 쓰였다는 것을 유추할 수 있죠. 문제의 내용대로 관리자 페이지에 접근하고 메시지를 남길려면 관리자로 로그인을 해야겠죠? 이럴 때 SQL Injection을 이용할 수 있습니다.

SQL Injection에도 다양한 접근 방법이 있는데, 가장 기초적인 것으로는 ‘ or 1=1– 류의 알려진 패턴을 이용하요 로그인하는 방법이 있습니다. 알려진 패턴으로는 다음과 같은 것들이 있지요.

  • ‘ or 1=1–
  • ” or 1=1–
  • or 1=1–
  • ‘ or ‘a’=’a
  • ” or “a”=”a
  • ‘) or (‘a’=’a
  • ‘ or password like ‘%

위의 문자열을 username과 password에 입력해서 버튼을 눌러줍니다. 이 문제 같은 경우는 가장 많이 쓰이는 첫 번째 패턴이 먹힙니다. 그러면, 관리자로 로그인 되어서 짜잔!

참고 문헌

SQL injection in Wikipedia :: http://en.wikipedia.org/wiki/SQL_injection
Web Hacking 1탄 SQL Injection :: http://8220.tistory.com/1166334277

Similar Posts

0 Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다