안녕하세요. 오늘은 웹해킹 56문제를 풀어보겠습니다.

홈페이지로 들어가 56번 문제를 눌러주세요.

음 보드가 하나 나오네요.일단 소스를 봅시다.

빨간색 부분을 보시면 HellSonic을 눌렀을때 어딘가로 이동된다는 군요. 그럼 한번 눌러 봅시다.

???? HellSonic이 아이디였나 봅니다. 순위는 2위이고.. 밑에 금액은 20이라 되있네요.

밑의 challenges를 눌러 봅시다.

HellSonic이 여태까지 푼 문제가 나오는군요. 진짜 많이 푸셨네요. 일단 얻을게 없으니 

뒤로 가봅시다. 이 challenges 말고 다른 버튼은 동작을 안합니다. 텍스트 칸처럼 보인 것도 눌러보니 입력이 안되더군요. 흠... 문제로 다시 돌아갑니다.

이 HellSonic 앞엔 Thanks to 가 나와있습니다. 즉 HellSonic한테 고맙다라는 인사를 한 것이지요. 제 생각엔 HellSonic이 문제출자자인것 같습니다. 문제를 내줘서 고맙다라는 소리지요. 즉 실제문제와는 아무런 관계가 없다고 볼 수 있습니다.

다시 문제를 살펴봅시다.

subject쪽에 하이퍼링크로 되있는 글자가 두개 있습니다. 한 번 눌러 봅시다.

readme를 눌렀을때

hi~를 눌렀을 때..

guest 쪽은 hi라고 나왔지만 admin쪽은 접근 거부 라고 나오네요. 아무래도 이번 문제는 admin으로 접속하는 것 같습니다.

그 밑에 보시면 검색버튼이 있습니다. 음 뭘 검색하라는 걸까요? 그래서 보드에 있는 내용 전부를 닥치는 대로 입력해보았습니다. 그랬더니 3가지 경우를 찾을 수 있었습니다.

1. 검색한 값이 hi~일때

2. 검색한 값이 0일때


3. 그외의 나머지값일때

음 일단 주목할 점은 1번인것 같습니다. hi~를 검색했더니 guest가 나왔습니다. 대문자로 입력을 해도 똑같이 나오더군요. 대소문자 구별을 안하는 것 같습니다. 보통은 subject의 값으로 로그인 할 수 있을거라고 생각하겠지만 readme를 검색했더니 3번의 결과가 나왔습니다. 즉 이 검색창에 무언가를 입력해서 admin으로 접속 할 수 있도록 하는 것이 이번 문제인것 같습니다.

일단 guest의 hi~를 하나씩 나누어 검색해보았습니다. 그러자 i와 ~은 guest를 출력했는데 h하나만은 admin과 guest를 둘다 검색하였습니다. ?? 뭔가 이상해서 알파벳 전부를 하나씩 넣어보기로 했습니다. 하나씩 다 해보니 다음과 같은 결과가 나왔습니다.

k와 p를 넣었을때 admin이 출력되었습니다.

정리를 해보면 

admin : 0 h k p

guest : 0 h i ~ 

입니다. 그런데 곰곰히 생각해보니 hi는 특수문자가 들어갑니다. 혹시 admin도 들어가는지 시험하기 위해 모든 특수문자 ~!@#$%^&*()_+|-=\`<>?,./:";'{}[]를 다 넣어 보았습니다. 그러자 몇개를 더 알게 되었습니다.

admin : 0 h k p . % _ 이 하나라도 들어갈 경우 출력된다.

guest : 0 h i ~ % _ 이 하나라도 들어갈 경우 출력된다.

여기서 %는 어느 문자열에나 올 수 있기 때문에 제외시킵시다. 그리고 _는 임의의 숫자나 문자입니다. 다른 말로 어떠한 수나 문자가 될 수도 있다는 뜻입니다. 그렇기 때문에 _을 클릭하면 둘다 출력되는 것입니다. 

예를 들어 guest의 값이 hi~ 이면 검색창에 ___이 세개를 넣어도 guest가 검색이 됩니다.

그런데? ____이렇게 4개를 넣으면 guest의 값은 나오지 않습니다. 왜냐하면 guest의 글자수는 3개이기때문에 4자리가 오면 당연히 검색되지 않는 것이지요. 다들 여기서 눈치채셨겟지요? _를 이용하면 우리가 구하고자 하는 admin의 글자수를 알수 있습니다. ____부터 하나씩 늘려가며 검색을 해봐서 admin의 글자수를 봅시다.

_______부턴 admin이 검색되지 않습니다. 즉 admin은 6글자다 라는 추측이 나옵니다.

그러면  admin의 값은 ?????? 이군요. 지금부터 한자리씩 맞춰봅시다.

간단합니다. 여기서 0_란 말은 0으로 시작하는 임의의 수입니다. 만약 값이 00, 01 02 03 04 등, 자릿수가 맞고 0으로 시작하면 0_으로 다 검색시킬 수 있습니다. 그렇기 때문에 우리는 첫수를 알기 위해 0_____부터 ._____까지를 다 검색해봅시다. 딱 하나가 admin으로 뜨는군요.

그렇습니다. 첫자리는 k입니다. 첫자리수를 구하셧으면 반복해줍시다.

k0____ 부터 k.____까지 입니다. 참고로 반복된 문자가 있을 수 있습니다. 마찬가지로 하나가 뜨는군요. 두자리 수도 k입니다.

다시 kk0___ 부터 kk.___까지 검색합시다. 이것도 노가다네요.... 세번째 자리수는 .입니다. 

kk.0__부터 kk..__까지 검색합시다. 네번째 자리수는 p입니다.

kk.p0_부터 kk.p._까지 검색합시다. 다섯번째 자리수는 h입니다.

kk.ph0부터 kk.ph.까지 검색합시다. 마지막 자리수는 p입니다.

그렇다면 admin의 값은 kk.php입니다. 딱 봐도 주소군요. 문제 뒷자리에 적어줍시다.

엔터를 눌러주시면

네 이것으로 문제풀이를 마치겠습니다.




'Webhacking' 카테고리의 다른 글

webhacking - 35번 문제  (0) 2015.07.29
webhacking - 32번 문제  (0) 2015.07.29
webhacking - 47번 문제  (0) 2015.07.17
Webhacking - 33번 문제  (2) 2015.07.11
Webhacking - 27번문제  (2) 2015.07.10
Posted by englishmath
,